commit 387d78522ebdd7e1b5ba7af1ef16eb4d55753cd9 Author: vine_liutk <961510893@qq.com> Date: Mon May 29 15:43:54 2023 +0800 初始化 diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..8f0de65 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,18 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 4 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +trim_trailing_whitespace = false + +[*.{yml,yaml}] +indent_size = 2 + +[docker-compose.yml] +indent_size = 4 diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..478972c --- /dev/null +++ b/.env.example @@ -0,0 +1,58 @@ +APP_NAME=Laravel +APP_ENV=local +APP_KEY= +APP_DEBUG=true +APP_URL=http://localhost + +LOG_CHANNEL=stack +LOG_DEPRECATIONS_CHANNEL=null +LOG_LEVEL=debug + +DB_CONNECTION=mysql +DB_HOST=127.0.0.1 +DB_PORT=3306 +DB_DATABASE=laravel +DB_USERNAME=root +DB_PASSWORD= + +BROADCAST_DRIVER=log +CACHE_DRIVER=file +FILESYSTEM_DISK=local +QUEUE_CONNECTION=sync +SESSION_DRIVER=file +SESSION_LIFETIME=120 + +MEMCACHED_HOST=127.0.0.1 + +REDIS_HOST=127.0.0.1 +REDIS_PASSWORD=null +REDIS_PORT=6379 + +MAIL_MAILER=smtp +MAIL_HOST=mailpit +MAIL_PORT=1025 +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_ENCRYPTION=null +MAIL_FROM_ADDRESS="hello@example.com" +MAIL_FROM_NAME="${APP_NAME}" + +AWS_ACCESS_KEY_ID= +AWS_SECRET_ACCESS_KEY= +AWS_DEFAULT_REGION=us-east-1 +AWS_BUCKET= +AWS_USE_PATH_STYLE_ENDPOINT=false + +PUSHER_APP_ID= +PUSHER_APP_KEY= +PUSHER_APP_SECRET= +PUSHER_HOST= +PUSHER_PORT=443 +PUSHER_SCHEME=https +PUSHER_APP_CLUSTER=mt1 + +VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}" +VITE_PUSHER_HOST="${PUSHER_HOST}" +VITE_PUSHER_PORT="${PUSHER_PORT}" +VITE_PUSHER_SCHEME="${PUSHER_SCHEME}" +VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..fcb21d3 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,11 @@ +* text=auto eol=lf + +*.blade.php diff=html +*.css diff=css +*.html diff=html +*.md diff=markdown +*.php diff=php + +/.github export-ignore +CHANGELOG.md export-ignore +.styleci.yml export-ignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7fe978f --- /dev/null +++ b/.gitignore @@ -0,0 +1,19 @@ +/.phpunit.cache +/node_modules +/public/build +/public/hot +/public/storage +/storage/*.key +/vendor +.env +.env.backup +.env.production +.phpunit.result.cache +Homestead.json +Homestead.yaml +auth.json +npm-debug.log +yarn-error.log +/.fleet +/.idea +/.vscode diff --git a/README.md b/README.md new file mode 100644 index 0000000..4d39dc0 --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +1. composer install 安装依赖包 +2. php artisan key:g 生成唯一key +3. php artisan admin:install +4. php artisan db:seed \ No newline at end of file diff --git a/app/Admin/Components.php b/app/Admin/Components.php new file mode 100644 index 0000000..ea688ff --- /dev/null +++ b/app/Admin/Components.php @@ -0,0 +1,183 @@ +TreeSelectControl() + ->name($name)->label($label) + ->showIcon(false) + ->labelField($labelField) + ->valueField($valueField)->source($apiUrl); + } + + /** + * 排序字段 + */ + public function sortControl($name ='sort', $label = '排序'){ + return amisMake()->NumberControl() + ->name($name)->label($label) + ->displayMode('enhance') + ->value(0) + ->min(0); + } + + /** + * 2位小数输入框 + */ + public function decimalControl($name ='decimal', $label = '数值'){ + return amisMake()->NumberControl() + ->name($name)->label($label) + ->kilobitSeparator(true) + ->percision(2) + ->step(0.01) + ->value(0.00) + ->min(0); + } + + /** + * 富文本编辑器 + */ + public function fuEditorControl($name ='content', $label = '内容', $uploadUrl = ''){ + return amisMake()->RichTextControl()->vendor('tinymce') + ->options([ + "menubar" => false, + "min_height" => 500, + "plugins" => 'image link table lists charmap emoticons code table fullscreen', + "toolbar" => "undo redo | bold italic underline strikethrough | fontfamily fontsize blocks | alignleft aligncenter alignright alignjustify | image link | outdent indent | numlist bullist table | forecolor backcolor removeformat | charmap emoticons | code fullscreen", + "toolbar_mode" => "wrap", + "help_tabs" => [], + "convert_urls" => false, + // "quickbars_selection_toolbar" => "fontsize forecolor backcolor", + // "quickbars_insert_toolbar" => false, + ]) + ->receiver(admin_url('upload_rich')) + ->name($name) + ->label($label); + + //froala去除授权提示;(但是保存会有额外内容,需要处理) + // + } + + public function enableControl($name = 'is_enable', $label= '状态', $mode = 'horizontal'){ + return amisMake()->SwitchControl() + ->name($name)->label($label) + ->mode($mode) + ->onText(__('admin.extensions.status_map.enabled'))->offText(__('admin.extensions.status_map.disabled')); + } + + public function keywordsTagControl($name = 'tags', $label= '标签', $typeKey = ''){ + return amisMake()->TagControl() + ->name($name)->label($label) + ->options(Keyword::getByParentKey($typeKey)->pluck('name', 'id')->toArray()); + } + + public function keywordsTag($label = '标签'){ + return amisMake()->Tag()->label($label)->displayMode('rounded')->color('inactive'); + } + + /** + * 生成统计图config + * 折线图或者柱状图 + */ + public function chartLineBarConfig($title = '', array $x , array $y){ + $yAxisData = []; + $seriesData = []; + if(!isset($y[0])){ + $_y = $y; + $y = [0=>$_y]; + } + $i = 0; + $tips = '{b0}'; + foreach($y as $item) { + //tips + $tips.= '
{a'.$i.'}: {c'.$i.'}'.($item['unit'] ?? ''); + //纵坐标 + $yAxisData[] = [ + 'name'=>$item['name'].($item['unit'] ?? ''), + 'type' =>'value', + 'axisTick' => true, + 'alignTicks' => true, + 'axisLine' => [ + 'show' => true, + 'lineStyle' => [ + 'color' => $item['color'] ?? '' + ] + ], + 'axisLabel'=> [ + 'formatter'=>'{value} '.($item['unit'] ?? '') + ] + ]; + //数据 + $_series = [ + 'name' => $item['name'] ?? '', + 'data' => $item['data'] ?? [], + 'type' => $item['type'] ?? 'line', + 'yAxisIndex' => $i, + ]; + switch($item['type']){ + case 'line': + $_series = array_merge($_series, [ + 'smooth'=> true, + 'symbol'=> 'none', + 'lineStyle' => [ + 'color' => $item['color'] ?? '' + ], + 'areaStyle' => [ + 'color' => $item['color'] ?? '' + ], + ]); + break; + case 'bar': + break; + } + $seriesData[] = $_series; + $i++; + } + + return [ + 'title' => [ + 'text' => $title, + ], + "tooltip" => [//提示 + 'trigger'=>'axis',//坐标轴触发 + 'axisPointer' => [ + 'type' => 'cross' + ], + // 'formatter' => $tips + ], + 'grid' => [ + 'left' => '8%', + 'right' => '8%', + ], + 'xAxis' => [ + 'type' => 'category', + 'data' => $x, + ], + 'yAxis' => $yAxisData, + 'series' => $seriesData + ]; + } + + /** + * 生成饼状图config + * -todo + */ + public function chartPieConfig(){ + return ; + } +} \ No newline at end of file diff --git a/app/Admin/Controllers/AuthController.php b/app/Admin/Controllers/AuthController.php new file mode 100644 index 0000000..594631f --- /dev/null +++ b/app/Admin/Controllers/AuthController.php @@ -0,0 +1,10 @@ +basePage()->css($this->css())->body([ + Grid::make()->columns([ + $this->frameworkInfo()->md(5), + Flex::make()->items([ + $this->pieChart(), + $this->cube(), + ]), + ]), + Grid::make()->columns([ + $this->lineChart()->md(8), + Flex::make()->className('h-full')->items([ + $this->clock(), + $this->hitokoto(), + ])->direction('column'), + ]), + ]); + + return $this->response()->success($page); + } + + /** + * 一言 + */ + public function hitokoto() + { + return Card::make() + ->className('h-full clear-card-mb') + ->body( + Custom::make()->html(<< +
+
+ +
+
+ +
+ ——  + + + + +
+HTML + + )->onMount(<< response.json()) + .then(data => { + const hitokoto = document.querySelector('#hitokoto_text') + hitokoto.href = `https://hitokoto.cn/?uuid=\${data.uuid}` + hitokoto.innerText = data.hitokoto + document.querySelector('#hitokoto_from_who').innerText = data.from_who + document.querySelector('#hitokoto_from').innerText = data.from + }) + .catch(console.error) +JS + ) + ); + } + + public function clock(): Card + { + return Card::make()->className('h-full bg-blingbling')->header([ + 'title' => '时钟', + ])->body([ + Custom::make() + ->name('clock') + ->html('
') + ->onMount(<< { + clock.innerHTML = (new Date()).toLocaleTimeString(); + requestAnimationFrame(tick); +}; +tick(); + +const clockDate = document.getElementById('clock-date'); +clockDate.innerHTML = (new Date()).toLocaleDateString(); +JS + + ), + ]); + } + + public function frameworkInfo(): Card + { + return Card::make()->className('h-96')->body( + Wrapper::make()->className('h-full')->body([ + Flex::make()->className('h-full')->direction('column')->justify('center')->items([ + Image::make()->src(url(config('admin.logo'))), + Wrapper::make()->className('text-3xl mt-9')->body(config('admin.name')), + Flex::make()->className('w-64 mt-5')->justify('space-around')->items([ + Action::make() + ->level('link') + ->label('GitHub') + ->blank(true) + ->actionType('url') + ->blank(true) + ->link('https://github.com/slowlyo/owl-admin'), + Action::make() + ->level('link') + ->label('OwlAdmin 文档') + ->blank(true) + ->actionType('url') + ->link('https://learnku.com/docs/owl-admin'), + Action::make() + ->level('link') + ->label('Amis 文档') + ->blank(true) + ->actionType('url') + ->link('https://aisuda.bce.baidu.com/amis/zh-CN/docs/index'), + ]), + ]), + ]) + ); + } + + public function pieChart(): Card + { + return Card::make()->className('h-96')->body( + Chart::make()->height(350)->config("{ + tooltip: { trigger: 'item' }, + legend: { bottom: 0, left: 'center' }, + series: [ + { + name: 'Access From', + type: 'pie', + radius: ['40%', '70%'], + avoidLabelOverlap: false, + itemStyle: { borderRadius: 10, borderColor: '#fff', borderWidth: 2 }, + label: { show: false, position: 'center' }, + emphasis: { + label: { show: true, fontSize: '40', fontWeight: 'bold' } + }, + labelLine: { show: false }, + data: [ + { value: 1048, name: 'Search Engine' }, + { value: 735, name: 'Direct' }, + { value: 580, name: 'Email' }, + { value: 484, name: 'Union Ads' }, + { value: 300, name: 'Video Ads' } + ] + } + ] +}") + ); + } + + public function lineChart(): Card + { + $randArr = function () { + $_arr = []; + for ($i = 0; $i < 7; $i++) { + $_arr[] = random_int(10, 200); + } + return '[' . implode(',', $_arr) . ']'; + }; + + $random1 = $randArr(); + $random2 = $randArr(); + + $chart = Chart::make()->height(380)->className('h-96')->config("{ +title:{ text: '会员增长情况', }, +tooltip: { trigger: 'axis' }, +xAxis: { type: 'category', boundaryGap: false, data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, +yAxis: { type: 'value' }, +grid:{ left: '7%', right:'3%', top: 60, bottom: 30, }, +legend: { data: ['访问量','注册量'] }, +series: [ + { name: '访问量', data: {$random1}, type: 'line', areaStyle: {}, smooth: true, symbol: 'none', }, + { name:'注册量', data: {$random2}, type: 'line', areaStyle: {}, smooth: true, symbol: 'none', }, +]}"); + + return Card::make()->className('clear-card-mb')->body($chart); + } + + public function cube(): Card + { + return Card::make()->className('h-96 ml-4 w-8/12')->body( + Html::make()->html(<< + .cube-box{ height: 300px; display: flex; align-items: center; justify-content: center; } + .cube { width: 100px; height: 100px; position: relative; transform-style: preserve-3d; animation: rotate 10s linear infinite; } + .cube:after { + content: ''; + width: 100%; + height: 100%; + box-shadow: 0 0 50px rgba(0, 0, 0, 0.2); + position: absolute; + transform-origin: bottom; + transform-style: preserve-3d; + transform: rotateX(90deg) translateY(50px) translateZ(-50px); + background-color: rgba(0, 0, 0, 0.1); + } + .cube div { + background-color: rgba(64, 158, 255, 0.7); + position: absolute; + width: 100%; + height: 100%; + border: 1px solid rgb(27, 99, 170); + box-shadow: 0 0 60px rgba(64, 158, 255, 0.7); + } + .cube div:nth-child(1) { transform: translateZ(-50px); animation: shade 10s -5s linear infinite; } + .cube div:nth-child(2) { transform: translateZ(50px) rotateY(180deg); animation: shade 10s linear infinite; } + .cube div:nth-child(3) { transform-origin: right; transform: translateZ(50px) rotateY(270deg); animation: shade 10s -2.5s linear infinite; } + .cube div:nth-child(4) { transform-origin: left; transform: translateZ(50px) rotateY(90deg); animation: shade 10s -7.5s linear infinite; } + .cube div:nth-child(5) { transform-origin: bottom; transform: translateZ(50px) rotateX(90deg); background-color: rgba(0, 0, 0, 0.7); } + .cube div:nth-child(6) { transform-origin: top; transform: translateZ(50px) rotateX(270deg); } + + @keyframes rotate { + 0% { transform: rotateX(-15deg) rotateY(0deg); } + 100% { transform: rotateX(-15deg) rotateY(360deg); } + } + @keyframes shade { 50% { background-color: rgba(0, 0, 0, 0.7); } } + +
+
+
+
+
+
+
+
+
+
+HTML + + ) + ); + } + + private function css(): array + { + return [ + '.clear-card-mb' => [ + 'margin-bottom' => '0 !important', + ], + '.cxd-Image' => [ + 'border' => '0', + ], + '.bg-blingbling' => [ + 'color' => '#fff', + 'background' => 'linear-gradient(to bottom right, #2C3E50, #FD746C, #FF8235, #ffff1c, #92FE9D, #00C9FF, #a044ff, #e73827)', + 'background-repeat' => 'no-repeat', + 'background-size' => '1000% 1000%', + 'animation' => 'gradient 60s ease infinite', + ], + '@keyframes gradient' => [ + '0%{background-position:0% 0%} + 50%{background-position:100% 100%} + 100%{background-position:0% 0%}', + ], + '.bg-blingbling .cxd-Card-title' => [ + 'color' => '#fff', + ], + ]; + } +} diff --git a/app/Admin/Controllers/KeywordController.php b/app/Admin/Controllers/KeywordController.php new file mode 100644 index 0000000..f6e7748 --- /dev/null +++ b/app/Admin/Controllers/KeywordController.php @@ -0,0 +1,60 @@ +baseCRUD() + //关闭查询 + ->filterTogglable(false) + //去掉分页-start + ->loadDataOnce(true) + ->footerToolbar([]) + //去掉分页-end + ->headerToolbar([ + $this->createButton(true), + amis('reload')->align('right'), + amis('filter-toggler')->align('right'), + ]) + ->columns([ + // TableColumn::make()->name('id')->label('ID')->sortable(true), + TableColumn::make()->name('name')->label('名称'), + TableColumn::make()->name('key')->label('KEY'), + TableColumn::make()->name('value')->label('值'), + TableColumn::make()->name('created_at')->label('创建时间')->type('datetime')->sortable(true), + $this->rowActionsOnlyEditAndDelete(true), + ]); + + return $this->baseList($crud); + } + + public function form(): Form + { + return $this->baseForm()->body([ + Components::make()->parentControl(admin_url('api/keywords/tree-list')), + TextControl::make()->name('name')->label('名称')->required(true), + TextControl::make()->name('key')->label('KEY')->required(true), + TextControl::make()->name('value')->label('值')->required(true), + amisMake()->NumberControl()->name('sort')->value(0)->min()->label('排序'), + ]); + } + + public function getTreeList(Request $request){ + return $this->service->getTree(); + } +} diff --git a/app/Admin/Controllers/LiveContinueController.php b/app/Admin/Controllers/LiveContinueController.php new file mode 100644 index 0000000..87ee3fd --- /dev/null +++ b/app/Admin/Controllers/LiveContinueController.php @@ -0,0 +1,57 @@ +baseCRUD() + ->filterTogglable(false) + ->headerToolbar([ + ...$this->baseHeaderToolBar(), + ]) + ->filter( + $this->baseFilter()->body([ + amisMake()->TextControl('name', '名称')->size('md'), + amisMake()->TextControl('card_no', '身份证')->size('md'), + amisMake()->TextControl('floor_name', '楼栋')->size('md'), + amisMake()->SelectControl('nurse_lv', '护理等级')->options(Keyword::getByParentKey('nurse_lv')->pluck('name', 'id'))->checkAll(true)->multiple(true)->size('md'), + amis('button')->label(__('admin.reset'))->actionType('clear-and-submit'), + amis('submit')->label(__('admin.search'))->level('primary'), + ])->actions([]) + ) + ->columns([ + // TableColumn::make()->name('id')->label('ID')->sortable(), + TableColumn::make()->name('name')->label('姓名'), + TableColumn::make()->name('age')->label('年龄')->sortable(), + TableColumn::make()->name('card_no')->label('身份证')->copyable(true), + TableColumn::make()->name('floor_name')->label('楼栋'), + TableColumn::make()->name('nurse_lv')->type('mapping')->map(Keyword::getByParentKey('nurse_lv')->pluck('name', 'id'))->label('护理等级')->className('text-primary')->sortable(), + TableColumn::make()->name('client_name')->label('委托人'), + TableColumn::make()->name('client_phone')->label('委托人-手机号')->copyable(true), + TableColumn::make()->name('avliable_at')->label('截至时间')->type('datetime')->sortable(true), + amisMake()->Operation()->label(__('admin.actions'))->buttons([ + + ]), + ]); + + return $this->baseList($crud); + } + public function form(): Form + { + return $this->baseForm()->body([ + + ]); + } +} diff --git a/app/Admin/Controllers/LiveInController.php b/app/Admin/Controllers/LiveInController.php new file mode 100644 index 0000000..8e6fc90 --- /dev/null +++ b/app/Admin/Controllers/LiveInController.php @@ -0,0 +1,57 @@ +baseCRUD() + ->filterTogglable(false) + ->headerToolbar([ + ...$this->baseHeaderToolBar(), + ]) + ->filter( + $this->baseFilter()->body([ + amisMake()->TextControl('name', '名称')->size('md'), + amisMake()->TextControl('card_no', '身份证')->size('md'), + amisMake()->TextControl('floor_name', '楼栋')->size('md'), + amisMake()->SelectControl('nurse_lv', '护理等级')->options(Keyword::getByParentKey('nurse_lv')->pluck('name', 'id'))->checkAll(true)->multiple(true)->size('md'), + amis('button')->label(__('admin.reset'))->actionType('clear-and-submit'), + amis('submit')->label(__('admin.search'))->level('primary'), + ])->actions([]) + ) + ->columns([ + // TableColumn::make()->name('id')->label('ID')->sortable(), + TableColumn::make()->name('name')->label('姓名'), + TableColumn::make()->name('age')->label('年龄')->sortable(), + TableColumn::make()->name('card_no')->label('身份证')->copyable(true), + TableColumn::make()->name('floor_name')->label('楼栋'), + TableColumn::make()->name('nurse_lv')->type('mapping')->map(Keyword::getByParentKey('nurse_lv')->pluck('name', 'id'))->label('护理等级')->className('text-primary')->sortable(), + TableColumn::make()->name('client_name')->label('委托人'), + TableColumn::make()->name('client_phone')->label('委托人-手机号')->copyable(true), + TableColumn::make()->name('live_in_at')->label('入住时间')->type('datetime')->sortable(true), + amisMake()->Operation()->label(__('admin.actions'))->buttons([ + + ]), + ]); + + return $this->baseList($crud); + } + public function form(): Form + { + return $this->baseForm()->body([ + + ]); + } +} diff --git a/app/Admin/Controllers/OldmenController.php b/app/Admin/Controllers/OldmenController.php new file mode 100644 index 0000000..5b85c8d --- /dev/null +++ b/app/Admin/Controllers/OldmenController.php @@ -0,0 +1,106 @@ +baseCRUD() + ->filterTogglable(false) + ->headerToolbar([ + $this->createButton(true, 'lg'), + ...$this->baseHeaderToolBar(), + ]) + ->filter( + $this->baseFilter()->body([ + amisMake()->TextControl('name', '名称')->size('md'), + amisMake()->TextControl('card_no', '身份证')->size('md'), + amisMake()->TextControl('floor_name', '楼栋')->size('md'), + amisMake()->SelectControl('nurse_lv', '护理等级')->options(Keyword::getByParentKey('nurse_lv')->pluck('name', 'id'))->checkAll(true)->multiple(true)->size('md'), + amis('button')->label(__('admin.reset'))->actionType('clear-and-submit'), + amis('submit')->label(__('admin.search'))->level('primary'), + ])->actions([]) + ) + ->columns([ + // TableColumn::make()->name('id')->label('ID')->sortable(), + TableColumn::make()->name('name')->label('姓名'), + TableColumn::make()->name('age')->label('年龄')->sortable(), + TableColumn::make()->name('card_no')->label('身份证')->copyable(true), + TableColumn::make()->name('floor_name')->label('楼栋'), + TableColumn::make()->name('nurse_lv')->type('mapping')->map(Keyword::getByParentKey('nurse_lv')->pluck('name', 'id'))->label('护理等级')->className('text-primary')->sortable(), + TableColumn::make()->name('client_name')->label('委托人'), + TableColumn::make()->name('client_phone')->label('委托人-手机号')->copyable(true), + TableColumn::make()->name('live_in_at')->label('入住时间')->type('datetime')->sortable(true), + TableColumn::make()->name('created_at')->label(__('admin.created_at'))->type('datetime')->sortable(true), + amisMake()->Operation()->label(__('admin.actions'))->buttons([ + $this->rowEditButton(true, 'lg'), + $this->rowDeleteButton() + ]), + ]); + + return $this->baseList($crud); + } + + public function form(): Form + { + return $this->baseForm()->body([ + amisMake()->FieldSetControl()->title('居住人信息')->collapsable(true)->body([ + amisMake()->GroupControl()->body([ + amisMake()->TextControl('name', '姓名')->required(true), + amisMake()->RadiosControl('sex', '性别')->options([ + 1=>'男',2=>'女' + ])->required(true), + ]), + amisMake()->GroupControl()->body([ + amisMake()->TextControl('card_no', '身份证号码')->required(true), + amisMake()->DateControl('birthday', '出生日期')->format('YYYY-MM-DD')->required(true), + ]), + amisMake()->InputCityControl('card_city_code', '地区选择')->placeholder('请选择城市地区')->searchable('true')->required(true), + amisMake()->GroupControl()->body([ + amisMake()->TextControl('card_address', '详细地址')->required(true), + ]), + + amisMake()->GroupControl()->body([ + amisMake()->TextControl('floor_name', '楼栋'), + amisMake()->TextControl('agreement_no', '协议号码'), + ]), + amisMake()->RadiosControl('nurse_lv', '护理等级')->options(Keyword::getByParentKey('nurse_lv')->pluck('name', 'id'))->required(true)->disabledOn('data.id > 0'), + ]), + amisMake()->FieldSetControl()->className('mt-10')->title('委托人信息')->collapsable(true)->body([ + amisMake()->GroupControl()->body([ + amisMake()->TextControl('client_name', '姓名')->required(true), + amisMake()->TextControl('client_phone', '手机号')->required(true), + ]), + amisMake()->InputCityControl('client_city_code', '地区选择')->placeholder('请选择城市地区')->searchable('true')->required(true), + amisMake()->GroupControl()->body([ + amisMake()->TextControl('client_address', '详细地址')->required(true), + ]), + ]), + ]); + } + + public function detail(): Form + { + return $this->baseDetail()->body([ + TextControl::make()->static()->name('id')->label('ID'), + TextControl::make()->static()->name('created_at')->label(__('admin.created_at')), + TextControl::make()->static()->name('updated_at')->label(__('admin.updated_at')) + ]); + } +} diff --git a/app/Admin/Controllers/SettingController.php b/app/Admin/Controllers/SettingController.php new file mode 100644 index 0000000..e24c4f1 --- /dev/null +++ b/app/Admin/Controllers/SettingController.php @@ -0,0 +1,48 @@ +basePage()->body($this->form()); + + return $this->response()->success($page); + } + + public function form() + { + return $this->baseForm() + ->redirect('') + ->api($this->getStorePath()) + ->data(settings()->all()) + ->panelClassName('') + ->title('') + ->body( + Tabs::make()->tabs([ + Tab::make()->title('基本设置')->body([ + amisMake()->NumberControl('live_continue_day','续住提醒')->value(0)->size('lg')->description('设置该项,提前对应天数在续住列表中显示提醒;0天则直到欠费才提醒'), + ]) + ]) + ); + } + + public function store(Request $request) + { + $data = $request->only([ + 'live_continue_day' + ]); + + return settings()->adminSetMany($data); + } +} \ No newline at end of file diff --git a/app/Admin/bootstrap.php b/app/Admin/bootstrap.php new file mode 100644 index 0000000..b3d9bbc --- /dev/null +++ b/app/Admin/bootstrap.php @@ -0,0 +1 @@ + config('admin.route.domain'), + 'prefix' => config('admin.route.prefix'), + 'middleware' => config('admin.route.middleware'), +], function (Router $router) { + + $router->group([ + 'prefix' => 'api', + ], function (Router $router) { + $router->get('keywords/tree-list', '\App\Admin\Controllers\KeywordController@getTreeList')->name('api.keywords.tree-list'); + }); + + $router->resource('dashboard', \App\Admin\Controllers\HomeController::class); + + $router->resource('system/settings', \App\Admin\Controllers\SettingController::class); + + //字典表 + $router->resource('keywords', \App\Admin\Controllers\KeywordController::class); + + $router->resource('oldmen', \App\Admin\Controllers\OldmenController::class)->names('oldmen'); + + $router->get('live-in', '\App\Admin\Controllers\LiveInController@index'); + + $router->get('live-continue', '\App\Admin\Controllers\LiveContinueController@index'); +}); diff --git a/app/Console/Commands/VerifyNeedPayArrear.php b/app/Console/Commands/VerifyNeedPayArrear.php new file mode 100644 index 0000000..ef6b2b7 --- /dev/null +++ b/app/Console/Commands/VerifyNeedPayArrear.php @@ -0,0 +1,37 @@ +where('need_pay', Oldmen::PAY_NOTICE) + ->whereDate('avliable_at', '>', now())->update([ + 'need_pay' => Oldmen::PAY_ARREAR + ]); + } +} diff --git a/app/Console/Commands/VerifyNeedPayContinue.php b/app/Console/Commands/VerifyNeedPayContinue.php new file mode 100644 index 0000000..5c345e3 --- /dev/null +++ b/app/Console/Commands/VerifyNeedPayContinue.php @@ -0,0 +1,37 @@ +where('need_pay', Oldmen::PAY_NORMAL) + ->whereDate('avliable_at', Carbon::now()->subDays(settings()->get('live_continue_day', 0)))->update([ + 'need_pay' => Oldmen::PAY_NOTICE + ]); + } +} diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php new file mode 100644 index 0000000..a6e3e86 --- /dev/null +++ b/app/Console/Kernel.php @@ -0,0 +1,30 @@ +command('inspire')->hourly(); + + $schedule->command('app:verify-need-pay-continue')->dailyAt('00:01');//更新续费列表 + $schedule->command('app:verify-need-pay-arrear')->dailyAt('01:01');//更新欠费状态 + } + + /** + * Register the commands for the application. + */ + protected function commands(): void + { + $this->load(__DIR__.'/Commands'); + + require base_path('routes/console.php'); + } +} diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php new file mode 100644 index 0000000..56af264 --- /dev/null +++ b/app/Exceptions/Handler.php @@ -0,0 +1,30 @@ + + */ + protected $dontFlash = [ + 'current_password', + 'password', + 'password_confirmation', + ]; + + /** + * Register the exception handling callbacks for the application. + */ + public function register(): void + { + $this->reportable(function (Throwable $e) { + // + }); + } +} diff --git a/app/Filters/Admin/OldmenFilter.php b/app/Filters/Admin/OldmenFilter.php new file mode 100644 index 0000000..51c0a96 --- /dev/null +++ b/app/Filters/Admin/OldmenFilter.php @@ -0,0 +1,37 @@ +where('name', 'like', '%'.$name.'%'); + } + + /** + * 身份证 + */ + public function cardNo($cardNo){ + return $this->where('card_no', 'like', $cardNo.'%'); + } + + /** + * 身份证 + */ + public function floorName($floorName){ + return $this->where('floor_name', 'like', $floorName.'%'); + } + + public function nurseLv($nurseLv){ + if(strpos($nurseLv, ',')){ + return $this->whereIn('nurse_lv', explode(',', $nurseLv)); + }else{ + return $this->where('nurse_lv', $nurseLv); + } + } +} diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php new file mode 100644 index 0000000..77ec359 --- /dev/null +++ b/app/Http/Controllers/Controller.php @@ -0,0 +1,12 @@ + + */ + protected $middleware = [ + // \App\Http\Middleware\TrustHosts::class, + \App\Http\Middleware\TrustProxies::class, + \Illuminate\Http\Middleware\HandleCors::class, + \App\Http\Middleware\PreventRequestsDuringMaintenance::class, + \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, + \App\Http\Middleware\TrimStrings::class, + \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, + ]; + + /** + * The application's route middleware groups. + * + * @var array> + */ + protected $middlewareGroups = [ + 'web' => [ + \App\Http\Middleware\EncryptCookies::class, + \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, + \Illuminate\Session\Middleware\StartSession::class, + \Illuminate\View\Middleware\ShareErrorsFromSession::class, + \App\Http\Middleware\VerifyCsrfToken::class, + \Illuminate\Routing\Middleware\SubstituteBindings::class, + ], + + 'api' => [ + // \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class, + \Illuminate\Routing\Middleware\ThrottleRequests::class.':api', + \Illuminate\Routing\Middleware\SubstituteBindings::class, + ], + ]; + + /** + * The application's middleware aliases. + * + * Aliases may be used instead of class names to conveniently assign middleware to routes and groups. + * + * @var array + */ + protected $middlewareAliases = [ + 'auth' => \App\Http\Middleware\Authenticate::class, + 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, + 'auth.session' => \Illuminate\Session\Middleware\AuthenticateSession::class, + 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, + 'can' => \Illuminate\Auth\Middleware\Authorize::class, + 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, + 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class, + 'signed' => \App\Http\Middleware\ValidateSignature::class, + 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, + 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, + ]; +} diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php new file mode 100644 index 0000000..d4ef644 --- /dev/null +++ b/app/Http/Middleware/Authenticate.php @@ -0,0 +1,17 @@ +expectsJson() ? null : route('login'); + } +} diff --git a/app/Http/Middleware/EncryptCookies.php b/app/Http/Middleware/EncryptCookies.php new file mode 100644 index 0000000..867695b --- /dev/null +++ b/app/Http/Middleware/EncryptCookies.php @@ -0,0 +1,17 @@ + + */ + protected $except = [ + // + ]; +} diff --git a/app/Http/Middleware/PreventRequestsDuringMaintenance.php b/app/Http/Middleware/PreventRequestsDuringMaintenance.php new file mode 100644 index 0000000..74cbd9a --- /dev/null +++ b/app/Http/Middleware/PreventRequestsDuringMaintenance.php @@ -0,0 +1,17 @@ + + */ + protected $except = [ + // + ]; +} diff --git a/app/Http/Middleware/RedirectIfAuthenticated.php b/app/Http/Middleware/RedirectIfAuthenticated.php new file mode 100644 index 0000000..afc78c4 --- /dev/null +++ b/app/Http/Middleware/RedirectIfAuthenticated.php @@ -0,0 +1,30 @@ +check()) { + return redirect(RouteServiceProvider::HOME); + } + } + + return $next($request); + } +} diff --git a/app/Http/Middleware/TrimStrings.php b/app/Http/Middleware/TrimStrings.php new file mode 100644 index 0000000..88cadca --- /dev/null +++ b/app/Http/Middleware/TrimStrings.php @@ -0,0 +1,19 @@ + + */ + protected $except = [ + 'current_password', + 'password', + 'password_confirmation', + ]; +} diff --git a/app/Http/Middleware/TrustHosts.php b/app/Http/Middleware/TrustHosts.php new file mode 100644 index 0000000..c9c58bd --- /dev/null +++ b/app/Http/Middleware/TrustHosts.php @@ -0,0 +1,20 @@ + + */ + public function hosts(): array + { + return [ + $this->allSubdomainsOfApplicationUrl(), + ]; + } +} diff --git a/app/Http/Middleware/TrustProxies.php b/app/Http/Middleware/TrustProxies.php new file mode 100644 index 0000000..3391630 --- /dev/null +++ b/app/Http/Middleware/TrustProxies.php @@ -0,0 +1,28 @@ +|string|null + */ + protected $proxies; + + /** + * The headers that should be used to detect proxies. + * + * @var int + */ + protected $headers = + Request::HEADER_X_FORWARDED_FOR | + Request::HEADER_X_FORWARDED_HOST | + Request::HEADER_X_FORWARDED_PORT | + Request::HEADER_X_FORWARDED_PROTO | + Request::HEADER_X_FORWARDED_AWS_ELB; +} diff --git a/app/Http/Middleware/ValidateSignature.php b/app/Http/Middleware/ValidateSignature.php new file mode 100644 index 0000000..093bf64 --- /dev/null +++ b/app/Http/Middleware/ValidateSignature.php @@ -0,0 +1,22 @@ + + */ + protected $except = [ + // 'fbclid', + // 'utm_campaign', + // 'utm_content', + // 'utm_medium', + // 'utm_source', + // 'utm_term', + ]; +} diff --git a/app/Http/Middleware/VerifyCsrfToken.php b/app/Http/Middleware/VerifyCsrfToken.php new file mode 100644 index 0000000..9e86521 --- /dev/null +++ b/app/Http/Middleware/VerifyCsrfToken.php @@ -0,0 +1,17 @@ + + */ + protected $except = [ + // + ]; +} diff --git a/app/Models/Keyword.php b/app/Models/Keyword.php new file mode 100644 index 0000000..bbb008b --- /dev/null +++ b/app/Models/Keyword.php @@ -0,0 +1,64 @@ +format('Y-m-d H:i:s'); + } + + protected static function boot() + { + parent::boot(); + // 监听 Keyword 的创建事件,用于初始化 path 和 level 字段值 + static::creating(function ($keyword) { + // 如果创建的是一个根类目 + if (! $keyword->parent_id) { + // 将层级设为 1 + $keyword->level = 1; + // 将 path 设为 - + $keyword->path = '-'; + } else { + // 将层级设为父类目的层级 + 1 + $keyword->level = $keyword->parent->level + 1; + $keyword->type_key = $keyword->parent->key; + // 将 path 值设为父类目的 path 追加父类目 ID 以及最后跟上一个 - 分隔符 + $keyword->path = $keyword->parent->path.$keyword->parent_id.'-'; + } + }); + } + + public function parent() + { + return $this->belongsTo(static::class, 'parent_id'); + } + + public function children() + { + return $this->hasMany(static::class, 'parent_id'); + } + + public static function getByParentKey(String $key) + { + return self::query()->where('type_key', $key)->get(); + } + + public static function tagsMap(String $key){ + $list = self::query()->where('type_key', $key)->get()->pluck('name', 'id')->toArray(); + return array_map(function($item){ + return Components::make()->keywordsTag($item); + }, $list); + } +} diff --git a/app/Models/Oldmen.php b/app/Models/Oldmen.php new file mode 100644 index 0000000..46150f1 --- /dev/null +++ b/app/Models/Oldmen.php @@ -0,0 +1,53 @@ + 'datetime:Y-m-d', + ]; + + protected $fillable = [ + 'name', 'sex', 'birthday', 'card_no', 'card_city_code', 'card_province_id', 'card_city_id', 'card_area_id', 'card_address', 'card_complete_address', + 'client_name', 'client_phone', 'client_city_code', 'client_province_id', 'client_city_id', 'client_area_id', 'client_address', 'client_complete_address', + 'floor_name', 'agreement_no', 'nurse_lv', + 'live_in', 'live_in_at', 'avliable_at', 'need_pay', 'bonds' + ]; + + protected static function boot() + { + parent::boot(); + // 监听 oldman 的创建事件,用于初始化 位置信息 + static::saving(function ($oldmen) { + if($oldmen->card_city_code){ + list($cardProvince, $cardCity, $cardArea) = Zone::codeToZone($oldmen->card_city_code); + $oldmen->card_province_id = $cardProvince?->id ?? 0; + $oldmen->card_city_id = $cardCity?->id ?? 0; + $oldmen->card_area_id = $cardArea?->id ?? 0; + $oldmen->card_complete_address = ($cardProvince?->name ?? '未知').'-'.($cardCity?->name ?? '未知').'-'.($cardArea?->name ?? '未知').$oldmen->card_address; + } + if($oldmen->client_city_code){ + list($clientProvince, $clientCity, $clientArea) = Zone::codeToZone($oldmen->client_city_code); + $oldmen->client_province_id = $clientProvince?->id ?? 0; + $oldmen->client_city_id = $clientCity?->id ?? 0; + $oldmen->client_area_id = $clientArea?->id ?? 0; + $oldmen->client_complete_address = ($clientProvince?->name ?? '未知').'-'.($clientCity?->name ?? '未知').'-'.($clientArea?->name ?? '未知').$oldmen->client_address; + } + }); + } +} diff --git a/app/Models/User.php b/app/Models/User.php new file mode 100644 index 0000000..4d7f70f --- /dev/null +++ b/app/Models/User.php @@ -0,0 +1,45 @@ + + */ + protected $fillable = [ + 'name', + 'email', + 'password', + ]; + + /** + * The attributes that should be hidden for serialization. + * + * @var array + */ + protected $hidden = [ + 'password', + 'remember_token', + ]; + + /** + * The attributes that should be cast. + * + * @var array + */ + protected $casts = [ + 'email_verified_at' => 'datetime', + 'password' => 'hashed', + ]; +} diff --git a/app/Models/Zone.php b/app/Models/Zone.php new file mode 100644 index 0000000..519d76a --- /dev/null +++ b/app/Models/Zone.php @@ -0,0 +1,45 @@ +belongsTo(self::class, 'parent_id'); + } + + public function children() + { + return $this->hasMany(self::class, 'parent_id'); + } + + public static function codeToZone($code = null) + { + $province = $city = $area = null; + $zone = self::where('code', $code)->first(); + if($zone){ + if($zone->type == 'area'){ + $area = $zone; + $city = $area->parent; + $zone = $city; + } + if($zone->type == 'city'){ + $city = $zone; + $province = $city->parent; + $zone = $province; + } + if($zone->type == 'province'){ + $province = $zone; + } + } + return array($province, $city, $area); + } +} diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php new file mode 100644 index 0000000..ec393db --- /dev/null +++ b/app/Providers/AppServiceProvider.php @@ -0,0 +1,25 @@ + + */ + protected $policies = [ + // + ]; + + /** + * Register any authentication / authorization services. + */ + public function boot(): void + { + // + } +} diff --git a/app/Providers/BroadcastServiceProvider.php b/app/Providers/BroadcastServiceProvider.php new file mode 100644 index 0000000..2be04f5 --- /dev/null +++ b/app/Providers/BroadcastServiceProvider.php @@ -0,0 +1,19 @@ +> + */ + protected $listen = [ + Registered::class => [ + SendEmailVerificationNotification::class, + ], + ]; + + /** + * Register any events for your application. + */ + public function boot(): void + { + // + } + + /** + * Determine if events and listeners should be automatically discovered. + */ + public function shouldDiscoverEvents(): bool + { + return false; + } +} diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php new file mode 100644 index 0000000..1cf5f15 --- /dev/null +++ b/app/Providers/RouteServiceProvider.php @@ -0,0 +1,40 @@ +by($request->user()?->id ?: $request->ip()); + }); + + $this->routes(function () { + Route::middleware('api') + ->prefix('api') + ->group(base_path('routes/api.php')); + + Route::middleware('web') + ->group(base_path('routes/web.php')); + }); + } +} diff --git a/app/Services/Admin/BaseService.php b/app/Services/Admin/BaseService.php new file mode 100644 index 0000000..92665ed --- /dev/null +++ b/app/Services/Admin/BaseService.php @@ -0,0 +1,49 @@ +query()->orderByDesc('sort')->get()->toArray(); + return array2tree($list); + } + + public function getModelFilter() + { + return $this->modelFilterName; + } + + public function listQuery() + { + $model = $this->getModel(); + $filter = $this->getModelFilter(); + + $query = $this->query(); + if($this->withRelationships){ + $query->with($this->withRelationships); + } + + if ($filter) { + $query->filter(request()->input(), $filter); + } + + return $query->orderByDesc($model->getUpdatedAtColumn() ?? $model->getKeyName()); + } + + public function getDetail($id) + { + return $this->query()->with($this->withRelationships)->find($id); + } +} diff --git a/app/Services/Admin/KeywordService.php b/app/Services/Admin/KeywordService.php new file mode 100644 index 0000000..6680469 --- /dev/null +++ b/app/Services/Admin/KeywordService.php @@ -0,0 +1,108 @@ +query()->find($parent_id); + + do { + if ($parent->parent_id == $id) { + return true; + } + // 如果没有parent 则为顶级 退出循环 + $parent = $parent->parent; + } while ($parent); + + return false; + } + + public function list() + { + return ['items' => $this->getTree()]; + } + + public function store($data): bool + { + if ($this->hasRepeated($data)) { + return false; + } + + $columns = $this->getTableColumns(); + + $model = $this->getModel(); + + foreach ($data as $k => $v) { + if (!in_array($k, $columns)) { + continue; + } + + $model->setAttribute($k, $v); + } + + return $model->save(); + } + + public function update($primaryKey, $data): bool + { + if ($this->hasRepeated($data, $primaryKey)) { + return false; + } + + $columns = $this->getTableColumns(); + + $parent_id = Arr::get($data, 'parent_id'); + if ($parent_id != 0) { + if ($this->parentIsChild($primaryKey, $parent_id)) { + $this->setError('父级不允许设置为当前子权限'); + return false; + } + } + + $model = $this->query()->whereKey($primaryKey)->first(); + + foreach ($data as $k => $v) { + if (!in_array($k, $columns)) { + continue; + } + + $model->setAttribute($k, $v); + } + + return $model->save(); + } + + public function hasRepeated($data, $id = 0): bool + { + $query = $this->query()->when($id, fn($query) => $query->where('id', '<>', $id)); + + if ((clone $query)->where('key', $data['key'])->exists()) { + $this->setError('KEY重复'); + return true; + } + + return false; + } + + public function delete(string $ids): mixed + { + $ids = explode(',', $ids); + if(count($ids) == 1){ + $this->query()->where('path', 'like', '%-'.$ids[0].'-%')->delete(); + } + + return $this->query()->whereIn('id', $ids)->delete(); + } +} diff --git a/app/Services/Admin/LiveContinueService.php b/app/Services/Admin/LiveContinueService.php new file mode 100644 index 0000000..2b5572f --- /dev/null +++ b/app/Services/Admin/LiveContinueService.php @@ -0,0 +1,28 @@ +getModelFilter(); + + $query = $this->query(); + if($this->withRelationships){ + $query->with($this->withRelationships); + } + + if ($filter) { + $query->filter(request()->input(), $filter)->whereIn('need_pay', [Oldmen::PAY_NOTICE, Oldmen::PAY_ARREAR]); + } + + return $query; + } +} diff --git a/app/Services/Admin/LiveInService.php b/app/Services/Admin/LiveInService.php new file mode 100644 index 0000000..df1241c --- /dev/null +++ b/app/Services/Admin/LiveInService.php @@ -0,0 +1,28 @@ +getModelFilter(); + + $query = $this->query(); + if($this->withRelationships){ + $query->with($this->withRelationships); + } + + if ($filter) { + $query->filter(request()->input(), $filter)->where('live_in', Oldmen::STATUS_LIVE); + } + + return $query; + } +} diff --git a/app/Services/Admin/OldmenService.php b/app/Services/Admin/OldmenService.php new file mode 100644 index 0000000..dedcd14 --- /dev/null +++ b/app/Services/Admin/OldmenService.php @@ -0,0 +1,71 @@ +hasRepeated($data)) { + return false; + } + + $columns = $this->getTableColumns(); + + $model = $this->getModel(); + + foreach ($data as $k => $v) { + if (!in_array($k, $columns)) { + continue; + } + + $model->setAttribute($k, $v); + } + + return $model->save(); + } + + public function update($primaryKey, $data): bool + { + if ($this->hasRepeated($data, $primaryKey)) { + return false; + } + + $columns = $this->getTableColumns(); + + $model = $this->query()->whereKey($primaryKey)->first(); + + foreach ($data as $k => $v) { + if (!in_array($k, $columns)) { + continue; + } + + $model->setAttribute($k, $v); + } + + return $model->save(); + } + + public function hasRepeated($data, $id = 0): bool + { + $query = $this->query()->when($id, fn($query) => $query->where('id', '<>', $id)); + + if ((clone $query)->where('card_no', $data['card_no'])->exists()) { + $this->setError('该身份证号码已存在'); + return true; + } + + return false; + } +} diff --git a/artisan b/artisan new file mode 100644 index 0000000..67a3329 --- /dev/null +++ b/artisan @@ -0,0 +1,53 @@ +#!/usr/bin/env php +make(Illuminate\Contracts\Console\Kernel::class); + +$status = $kernel->handle( + $input = new Symfony\Component\Console\Input\ArgvInput, + new Symfony\Component\Console\Output\ConsoleOutput +); + +/* +|-------------------------------------------------------------------------- +| Shutdown The Application +|-------------------------------------------------------------------------- +| +| Once Artisan has finished running, we will fire off the shutdown events +| so that any final work may be done by the application before we shut +| down the process. This is the last thing to happen to the request. +| +*/ + +$kernel->terminate($input, $status); + +exit($status); diff --git a/bootstrap/app.php b/bootstrap/app.php new file mode 100644 index 0000000..037e17d --- /dev/null +++ b/bootstrap/app.php @@ -0,0 +1,55 @@ +singleton( + Illuminate\Contracts\Http\Kernel::class, + App\Http\Kernel::class +); + +$app->singleton( + Illuminate\Contracts\Console\Kernel::class, + App\Console\Kernel::class +); + +$app->singleton( + Illuminate\Contracts\Debug\ExceptionHandler::class, + App\Exceptions\Handler::class +); + +/* +|-------------------------------------------------------------------------- +| Return The Application +|-------------------------------------------------------------------------- +| +| This script returns the application instance. The instance is given to +| the calling script so we can separate the building of the instances +| from the actual running of the application and sending responses. +| +*/ + +return $app; diff --git a/bootstrap/cache/.gitignore b/bootstrap/cache/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/bootstrap/cache/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..9c7a4f1 --- /dev/null +++ b/composer.json @@ -0,0 +1,74 @@ +{ + "name": "laravel/laravel", + "type": "project", + "description": "The Laravel Framework.", + "keywords": ["framework", "laravel"], + "license": "MIT", + "require": { + "php": "^8.1", + "guzzlehttp/guzzle": "^7.2", + "laravel/framework": "^10.10", + "laravel/sanctum": "^3.2", + "laravel/tinker": "^2.8", + "slowlyo/owl-admin": "^2.5", + "tucker-eric/eloquentfilter": "^3.2" + }, + "require-dev": { + "fakerphp/faker": "^1.9.1", + "laravel/pint": "^1.0", + "laravel/sail": "^1.18", + "mockery/mockery": "^1.4.4", + "nunomaduro/collision": "^7.0", + "phpunit/phpunit": "^10.1", + "spatie/laravel-ignition": "^2.0" + }, + "autoload": { + "psr-4": { + "App\\": "app/", + "Database\\Factories\\": "database/factories/", + "Database\\Seeders\\": "database/seeders/" + } + }, + "autoload-dev": { + "psr-4": { + "Tests\\": "tests/" + } + }, + "scripts": { + "post-autoload-dump": [ + "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", + "@php artisan package:discover --ansi" + ], + "post-update-cmd": [ + "@php artisan vendor:publish --tag=laravel-assets --ansi --force" + ], + "post-root-package-install": [ + "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" + ], + "post-create-project-cmd": [ + "@php artisan key:generate --ansi" + ] + }, + "extra": { + "laravel": { + "dont-discover": [] + } + }, + "config": { + "optimize-autoloader": true, + "preferred-install": "dist", + "sort-packages": true, + "allow-plugins": { + "pestphp/pest-plugin": true, + "php-http/discovery": true + } + }, + "minimum-stability": "stable", + "prefer-stable": true, + "repositories": [ + { + "type": "composer", + "url": "https://repo.packagist.org" + } + ] +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..e49b4b5 --- /dev/null +++ b/composer.lock @@ -0,0 +1,6089 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "f9f1c22ac338b3bb4697fcbcc921a5bd", + "packages": [ + { + "name": "brick/math", + "version": "0.11.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/brick/math/0.11.0/brick-math-0.11.0.zip", + "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478", + "shasum": "" + }, + "require": { + "php": "^8.0" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^9.0", + "vimeo/psalm": "5.0.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Brick\\Math\\": "src/" + } + }, + "license": [ + "MIT" + ], + "description": "Arbitrary-precision arithmetic library", + "keywords": [ + "Arbitrary-precision", + "BigInteger", + "BigRational", + "arithmetic", + "bigdecimal", + "bignum", + "brick", + "math" + ], + "time": "2023-01-15T23:15:59+00:00" + }, + { + "name": "dflydev/dot-access-data", + "version": "v3.0.2", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/dflydev/dot-access-data/v3.0.2/dflydev-dot-access-data-v3.0.2.zip", + "reference": "f41715465d65213d644d3141a6a93081be5d3549", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.42", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3", + "scrutinizer/ocular": "1.6.0", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Dflydev\\DotAccessData\\": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + }, + { + "name": "Carlos Frutos", + "email": "carlos@kiwing.it", + "homepage": "https://github.com/cfrutos" + }, + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com" + } + ], + "description": "Given a deep data structure, access data by dot notation.", + "homepage": "https://github.com/dflydev/dflydev-dot-access-data", + "keywords": [ + "access", + "data", + "dot", + "notation" + ], + "time": "2022-10-27T11:44:00+00:00" + }, + { + "name": "doctrine/inflector", + "version": "2.0.6", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/doctrine/inflector/2.0.6/doctrine-inflector-2.0.6.zip", + "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^10", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.3", + "phpunit/phpunit": "^8.5 || ^9.5", + "vimeo/psalm": "^4.25" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", + "homepage": "https://www.doctrine-project.org/projects/inflector.html", + "keywords": [ + "inflection", + "inflector", + "lowercase", + "manipulation", + "php", + "plural", + "singular", + "strings", + "uppercase", + "words" + ], + "time": "2022-10-20T09:10:12+00:00" + }, + { + "name": "doctrine/lexer", + "version": "3.0.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/doctrine/lexer/3.0.0/doctrine-lexer-3.0.0.zip", + "reference": "84a527db05647743d50373e0ec53a152f2cde568", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "doctrine/coding-standard": "^10", + "phpstan/phpstan": "^1.9", + "phpunit/phpunit": "^9.5", + "psalm/plugin-phpunit": "^0.18.3", + "vimeo/psalm": "^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Lexer\\": "src" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "keywords": [ + "annotations", + "docblock", + "lexer", + "parser", + "php" + ], + "time": "2022-12-15T16:57:16+00:00" + }, + { + "name": "dragonmantank/cron-expression", + "version": "v3.3.2", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/dragonmantank/cron-expression/v3.3.2/dragonmantank-cron-expression-v3.3.2.zip", + "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8", + "shasum": "" + }, + "require": { + "php": "^7.2|^8.0", + "webmozart/assert": "^1.0" + }, + "replace": { + "mtdowling/cron-expression": "^1.0" + }, + "require-dev": { + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-webmozart-assert": "^1.0", + "phpunit/phpunit": "^7.0|^8.0|^9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Cron\\": "src/Cron/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Tankersley", + "email": "chris@ctankersley.com", + "homepage": "https://github.com/dragonmantank" + } + ], + "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", + "keywords": [ + "cron", + "schedule" + ], + "time": "2022-09-10T18:51:20+00:00" + }, + { + "name": "egulias/email-validator", + "version": "4.0.1", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/egulias/email-validator/4.0.1/egulias-email-validator-4.0.1.zip", + "reference": "3a85486b709bc384dae8eb78fb2eec649bdb64ff", + "shasum": "" + }, + "require": { + "doctrine/lexer": "^2.0 || ^3.0", + "php": ">=8.1", + "symfony/polyfill-intl-idn": "^1.26" + }, + "require-dev": { + "phpunit/phpunit": "^9.5.27", + "vimeo/psalm": "^4.30" + }, + "suggest": { + "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Egulias\\EmailValidator\\": "src" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eduardo Gulias Davis" + } + ], + "description": "A library for validating emails against several RFCs", + "homepage": "https://github.com/egulias/EmailValidator", + "keywords": [ + "email", + "emailvalidation", + "emailvalidator", + "validation", + "validator" + ], + "time": "2023-01-14T14:17:03+00:00" + }, + { + "name": "fruitcake/php-cors", + "version": "v1.2.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/fruitcake/php-cors/v1.2.0/fruitcake-php-cors-v1.2.0.zip", + "reference": "58571acbaa5f9f462c9c77e911700ac66f446d4e", + "shasum": "" + }, + "require": { + "php": "^7.4|^8.0", + "symfony/http-foundation": "^4.4|^5.4|^6" + }, + "require-dev": { + "phpstan/phpstan": "^1.4", + "phpunit/phpunit": "^9", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "Fruitcake\\Cors\\": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fruitcake", + "homepage": "https://fruitcake.nl" + }, + { + "name": "Barryvdh", + "email": "barryvdh@gmail.com" + } + ], + "description": "Cross-origin resource sharing library for the Symfony HttpFoundation", + "homepage": "https://github.com/fruitcake/php-cors", + "keywords": [ + "cors", + "laravel", + "symfony" + ], + "time": "2022-02-20T15:07:15+00:00" + }, + { + "name": "graham-campbell/result-type", + "version": "v1.1.1", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/graham-campbell/result-type/v1.1.1/graham-campbell-result-type-v1.1.1.zip", + "reference": "672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.9.1" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.32 || ^9.6.3 || ^10.0.12" + }, + "type": "library", + "autoload": { + "psr-4": { + "GrahamCampbell\\ResultType\\": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + } + ], + "description": "An Implementation Of The Result Type", + "keywords": [ + "Graham Campbell", + "GrahamCampbell", + "Result Type", + "Result-Type", + "result" + ], + "time": "2023-02-25T20:23:15+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "7.7.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/guzzlehttp/guzzle/7.7.0/guzzlehttp-guzzle-7.7.0.zip", + "reference": "fb7566caccf22d74d1ab270de3551f72a58399f5", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.5.3 || ^2.0", + "guzzlehttp/psr7": "^1.9.1 || ^2.4.5", + "php": "^7.2.5 || ^8.0", + "psr/http-client": "^1.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "provide": { + "psr/http-client-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.1", + "ext-curl": "*", + "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", + "php-http/message-factory": "^1.1", + "phpunit/phpunit": "^8.5.29 || ^9.5.23", + "psr/log": "^1.1 || ^2.0 || ^3.0" + }, + "suggest": { + "ext-curl": "Required for CURL handler support", + "ext-intl": "Required for Internationalized Domain Name (IDN) support", + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "psr-18", + "psr-7", + "rest", + "web service" + ], + "time": "2023-05-21T14:04:53+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "2.0.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/guzzlehttp/promises/2.0.0/guzzlehttp-promises-2.0.0.zip", + "reference": "3a494dc7dc1d7d12e511890177ae2d0e6c107da6", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.1", + "phpunit/phpunit": "^8.5.29 || ^9.5.23" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "time": "2023-05-21T13:50:22+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "2.5.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/guzzlehttp/psr7/2.5.0/guzzlehttp-psr7-2.5.0.zip", + "reference": "b635f279edd83fc275f822a1188157ffea568ff6", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.1 || ^2.0", + "ralouphie/getallheaders": "^3.0" + }, + "provide": { + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.1", + "http-interop/http-factory-tests": "^0.9", + "phpunit/phpunit": "^8.5.29 || ^9.5.23" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "time": "2023-04-17T16:11:26+00:00" + }, + { + "name": "guzzlehttp/uri-template", + "version": "v1.0.1", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/guzzlehttp/uri-template/v1.0.1/guzzlehttp-uri-template-v1.0.1.zip", + "reference": "b945d74a55a25a949158444f09ec0d3c120d69e2", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "symfony/polyfill-php80": "^1.17" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.19 || ^9.5.8", + "uri-template/tests": "1.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\UriTemplate\\": "src" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + } + ], + "description": "A polyfill class for uri_template of PHP", + "keywords": [ + "guzzlehttp", + "uri-template" + ], + "time": "2021-10-07T12:57:01+00:00" + }, + { + "name": "laravel/framework", + "version": "v10.11.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/laravel/framework/v10.11.0/laravel-framework-v10.11.0.zip", + "reference": "21a5b6d9b669f32c10cc8ba776511b5f62599fea", + "shasum": "" + }, + "require": { + "brick/math": "^0.9.3|^0.10.2|^0.11", + "composer-runtime-api": "^2.2", + "doctrine/inflector": "^2.0.5", + "dragonmantank/cron-expression": "^3.3.2", + "egulias/email-validator": "^3.2.1|^4.0", + "ext-ctype": "*", + "ext-filter": "*", + "ext-hash": "*", + "ext-mbstring": "*", + "ext-openssl": "*", + "ext-session": "*", + "ext-tokenizer": "*", + "fruitcake/php-cors": "^1.2", + "guzzlehttp/uri-template": "^1.0", + "laravel/serializable-closure": "^1.3", + "league/commonmark": "^2.2.1", + "league/flysystem": "^3.8.0", + "monolog/monolog": "^3.0", + "nesbot/carbon": "^2.62.1", + "nunomaduro/termwind": "^1.13", + "php": "^8.1", + "psr/container": "^1.1.1|^2.0.1", + "psr/log": "^1.0|^2.0|^3.0", + "psr/simple-cache": "^1.0|^2.0|^3.0", + "ramsey/uuid": "^4.7", + "symfony/console": "^6.2", + "symfony/error-handler": "^6.2", + "symfony/finder": "^6.2", + "symfony/http-foundation": "^6.2", + "symfony/http-kernel": "^6.2", + "symfony/mailer": "^6.2", + "symfony/mime": "^6.2", + "symfony/process": "^6.2", + "symfony/routing": "^6.2", + "symfony/uid": "^6.2", + "symfony/var-dumper": "^6.2", + "tijsverkoyen/css-to-inline-styles": "^2.2.5", + "vlucas/phpdotenv": "^5.4.1", + "voku/portable-ascii": "^2.0" + }, + "conflict": { + "tightenco/collect": "<5.5.33" + }, + "provide": { + "psr/container-implementation": "1.1|2.0", + "psr/simple-cache-implementation": "1.0|2.0|3.0" + }, + "replace": { + "illuminate/auth": "self.version", + "illuminate/broadcasting": "self.version", + "illuminate/bus": "self.version", + "illuminate/cache": "self.version", + "illuminate/collections": "self.version", + "illuminate/conditionable": "self.version", + "illuminate/config": "self.version", + "illuminate/console": "self.version", + "illuminate/container": "self.version", + "illuminate/contracts": "self.version", + "illuminate/cookie": "self.version", + "illuminate/database": "self.version", + "illuminate/encryption": "self.version", + "illuminate/events": "self.version", + "illuminate/filesystem": "self.version", + "illuminate/hashing": "self.version", + "illuminate/http": "self.version", + "illuminate/log": "self.version", + "illuminate/macroable": "self.version", + "illuminate/mail": "self.version", + "illuminate/notifications": "self.version", + "illuminate/pagination": "self.version", + "illuminate/pipeline": "self.version", + "illuminate/process": "self.version", + "illuminate/queue": "self.version", + "illuminate/redis": "self.version", + "illuminate/routing": "self.version", + "illuminate/session": "self.version", + "illuminate/support": "self.version", + "illuminate/testing": "self.version", + "illuminate/translation": "self.version", + "illuminate/validation": "self.version", + "illuminate/view": "self.version" + }, + "require-dev": { + "ably/ably-php": "^1.0", + "aws/aws-sdk-php": "^3.235.5", + "doctrine/dbal": "^3.5.1", + "ext-gmp": "*", + "fakerphp/faker": "^1.21", + "guzzlehttp/guzzle": "^7.5", + "league/flysystem-aws-s3-v3": "^3.0", + "league/flysystem-ftp": "^3.0", + "league/flysystem-path-prefixing": "^3.3", + "league/flysystem-read-only": "^3.3", + "league/flysystem-sftp-v3": "^3.0", + "mockery/mockery": "^1.5.1", + "orchestra/testbench-core": "^8.4", + "pda/pheanstalk": "^4.0", + "phpstan/phpdoc-parser": "^1.15", + "phpstan/phpstan": "^1.4.7", + "phpunit/phpunit": "^10.0.7", + "predis/predis": "^2.0.2", + "symfony/cache": "^6.2", + "symfony/http-client": "^6.2.4" + }, + "suggest": { + "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", + "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.235.5).", + "brianium/paratest": "Required to run tests in parallel (^6.0).", + "doctrine/dbal": "Required to rename columns and drop SQLite columns (^3.5.1).", + "ext-apcu": "Required to use the APC cache driver.", + "ext-fileinfo": "Required to use the Filesystem class.", + "ext-ftp": "Required to use the Flysystem FTP driver.", + "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().", + "ext-memcached": "Required to use the memcache cache driver.", + "ext-pcntl": "Required to use all features of the queue worker and console signal trapping.", + "ext-pdo": "Required to use all database features.", + "ext-posix": "Required to use all features of the queue worker.", + "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).", + "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).", + "filp/whoops": "Required for friendly error pages in development (^2.14.3).", + "guzzlehttp/guzzle": "Required to use the HTTP Client and the ping methods on schedules (^7.5).", + "laravel/tinker": "Required to use the tinker console command (^2.0).", + "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.0).", + "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.0).", + "league/flysystem-path-prefixing": "Required to use the scoped driver (^3.3).", + "league/flysystem-read-only": "Required to use read-only disks (^3.3)", + "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.0).", + "mockery/mockery": "Required to use mocking (^1.5.1).", + "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).", + "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).", + "phpunit/phpunit": "Required to use assertions and run tests (^9.5.8|^10.0.7).", + "predis/predis": "Required to use the predis connector (^2.0.2).", + "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", + "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).", + "symfony/cache": "Required to PSR-6 cache bridge (^6.2).", + "symfony/filesystem": "Required to enable support for relative symbolic links (^6.2).", + "symfony/http-client": "Required to enable support for the Symfony API mail transports (^6.2).", + "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^6.2).", + "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^6.2).", + "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "10.x-dev" + } + }, + "autoload": { + "files": [ + "src/Illuminate/Collections/helpers.php", + "src/Illuminate/Events/functions.php", + "src/Illuminate/Foundation/helpers.php", + "src/Illuminate/Support/helpers.php" + ], + "psr-4": { + "Illuminate\\": "src/Illuminate/", + "Illuminate\\Support\\": [ + "src/Illuminate/Macroable/", + "src/Illuminate/Collections/", + "src/Illuminate/Conditionable/" + ] + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Laravel Framework.", + "homepage": "https://laravel.com", + "keywords": [ + "framework", + "laravel" + ], + "time": "2023-05-16T13:59:23+00:00" + }, + { + "name": "laravel/sanctum", + "version": "v3.2.5", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/laravel/sanctum/v3.2.5/laravel-sanctum-v3.2.5.zip", + "reference": "8ebda85d59d3c414863a7f4d816ef8302faad876", + "shasum": "" + }, + "require": { + "ext-json": "*", + "illuminate/console": "^9.21|^10.0", + "illuminate/contracts": "^9.21|^10.0", + "illuminate/database": "^9.21|^10.0", + "illuminate/support": "^9.21|^10.0", + "php": "^8.0.2" + }, + "require-dev": { + "mockery/mockery": "^1.0", + "orchestra/testbench": "^7.0|^8.0", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + }, + "laravel": { + "providers": [ + "Laravel\\Sanctum\\SanctumServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Sanctum\\": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Laravel Sanctum provides a featherweight authentication system for SPAs and simple APIs.", + "keywords": [ + "auth", + "laravel", + "sanctum" + ], + "time": "2023-05-01T19:39:51+00:00" + }, + { + "name": "laravel/serializable-closure", + "version": "v1.3.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/laravel/serializable-closure/v1.3.0/laravel-serializable-closure-v1.3.0.zip", + "reference": "f23fe9d4e95255dacee1bf3525e0810d1a1b0f37", + "shasum": "" + }, + "require": { + "php": "^7.3|^8.0" + }, + "require-dev": { + "nesbot/carbon": "^2.61", + "pestphp/pest": "^1.21.3", + "phpstan/phpstan": "^1.8.2", + "symfony/var-dumper": "^5.4.11" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laravel\\SerializableClosure\\": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + }, + { + "name": "Nuno Maduro", + "email": "nuno@laravel.com" + } + ], + "description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.", + "keywords": [ + "closure", + "laravel", + "serializable" + ], + "time": "2023-01-30T18:31:20+00:00" + }, + { + "name": "laravel/tinker", + "version": "v2.8.1", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/laravel/tinker/v2.8.1/laravel-tinker-v2.8.1.zip", + "reference": "04a2d3bd0d650c0764f70bf49d1ee39393e4eb10", + "shasum": "" + }, + "require": { + "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0", + "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0", + "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0", + "php": "^7.2.5|^8.0", + "psy/psysh": "^0.10.4|^0.11.1", + "symfony/var-dumper": "^4.3.4|^5.0|^6.0" + }, + "require-dev": { + "mockery/mockery": "~1.3.3|^1.4.2", + "phpunit/phpunit": "^8.5.8|^9.3.3" + }, + "suggest": { + "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "laravel": { + "providers": [ + "Laravel\\Tinker\\TinkerServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Tinker\\": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Powerful REPL for the Laravel framework.", + "keywords": [ + "REPL", + "Tinker", + "laravel", + "psysh" + ], + "time": "2023-02-15T16:40:09+00:00" + }, + { + "name": "league/commonmark", + "version": "2.4.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/league/commonmark/2.4.0/league-commonmark-2.4.0.zip", + "reference": "d44a24690f16b8c1808bf13b1bd54ae4c63ea048", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "league/config": "^1.1.1", + "php": "^7.4 || ^8.0", + "psr/event-dispatcher": "^1.0", + "symfony/deprecation-contracts": "^2.1 || ^3.0", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "cebe/markdown": "^1.0", + "commonmark/cmark": "0.30.0", + "commonmark/commonmark.js": "0.30.0", + "composer/package-versions-deprecated": "^1.8", + "embed/embed": "^4.4", + "erusev/parsedown": "^1.0", + "ext-json": "*", + "github/gfm": "0.29.0", + "michelf/php-markdown": "^1.4 || ^2.0", + "nyholm/psr7": "^1.5", + "phpstan/phpstan": "^1.8.2", + "phpunit/phpunit": "^9.5.21", + "scrutinizer/ocular": "^1.8.1", + "symfony/finder": "^5.3 | ^6.0", + "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0", + "unleashedtech/php-coding-standard": "^3.1.1", + "vimeo/psalm": "^4.24.0 || ^5.0.0" + }, + "suggest": { + "symfony/yaml": "v2.3+ required if using the Front Matter extension" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + } + }, + "autoload": { + "psr-4": { + "League\\CommonMark\\": "src" + } + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + } + ], + "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)", + "homepage": "https://commonmark.thephpleague.com", + "keywords": [ + "commonmark", + "flavored", + "gfm", + "github", + "github-flavored", + "markdown", + "md", + "parser" + ], + "time": "2023-03-24T15:16:10+00:00" + }, + { + "name": "league/config", + "version": "v1.2.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/league/config/v1.2.0/league-config-v1.2.0.zip", + "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3", + "shasum": "" + }, + "require": { + "dflydev/dot-access-data": "^3.0.1", + "nette/schema": "^1.2", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.8.2", + "phpunit/phpunit": "^9.5.5", + "scrutinizer/ocular": "^1.8.1", + "unleashedtech/php-coding-standard": "^3.1", + "vimeo/psalm": "^4.7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.2-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Config\\": "src" + } + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + } + ], + "description": "Define configuration arrays with strict schemas and access values with dot notation", + "homepage": "https://config.thephpleague.com", + "keywords": [ + "array", + "config", + "configuration", + "dot", + "dot-access", + "nested", + "schema" + ], + "time": "2022-12-11T20:36:23+00:00" + }, + { + "name": "league/flysystem", + "version": "3.15.1", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/league/flysystem/3.15.1/league-flysystem-3.15.1.zip", + "reference": "a141d430414fcb8bf797a18716b09f759a385bed", + "shasum": "" + }, + "require": { + "league/flysystem-local": "^3.0.0", + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" + }, + "conflict": { + "aws/aws-sdk-php": "3.209.31 || 3.210.0", + "guzzlehttp/guzzle": "<7.0", + "guzzlehttp/ringphp": "<1.1.1", + "phpseclib/phpseclib": "3.0.15", + "symfony/http-client": "<5.2" + }, + "require-dev": { + "async-aws/s3": "^1.5", + "async-aws/simple-s3": "^1.1", + "aws/aws-sdk-php": "^3.220.0", + "composer/semver": "^3.0", + "ext-fileinfo": "*", + "ext-ftp": "*", + "ext-zip": "*", + "friendsofphp/php-cs-fixer": "^3.5", + "google/cloud-storage": "^1.23", + "microsoft/azure-storage-blob": "^1.1", + "phpseclib/phpseclib": "^3.0.14", + "phpstan/phpstan": "^0.12.26", + "phpunit/phpunit": "^9.5.11", + "sabre/dav": "^4.3.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Flysystem\\": "src" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "File storage abstraction for PHP", + "keywords": [ + "WebDAV", + "aws", + "cloud", + "file", + "files", + "filesystem", + "filesystems", + "ftp", + "s3", + "sftp", + "storage" + ], + "time": "2023-05-04T09:04:26+00:00" + }, + { + "name": "league/flysystem-local", + "version": "3.15.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/league/flysystem-local/3.15.0/league-flysystem-local-3.15.0.zip", + "reference": "543f64c397fefdf9cfeac443ffb6beff602796b3", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "league/flysystem": "^3.0.0", + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Flysystem\\Local\\": "" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "Local filesystem adapter for Flysystem.", + "keywords": [ + "Flysystem", + "file", + "files", + "filesystem", + "local" + ], + "time": "2023-05-02T20:02:14+00:00" + }, + { + "name": "league/mime-type-detection", + "version": "1.11.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/league/mime-type-detection/1.11.0/league-mime-type-detection-1.11.0.zip", + "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.2", + "phpstan/phpstan": "^0.12.68", + "phpunit/phpunit": "^8.5.8 || ^9.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\MimeTypeDetection\\": "src" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "Mime-type detection for Flysystem", + "time": "2022-04-17T13:12:02+00:00" + }, + { + "name": "monolog/monolog", + "version": "3.3.1", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/monolog/monolog/3.3.1/monolog-monolog-3.3.1.zip", + "reference": "9b5daeaffce5b926cac47923798bba91059e60e2", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^2.0 || ^3.0" + }, + "provide": { + "psr/log-implementation": "3.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^3.0", + "doctrine/couchdb": "~1.0@dev", + "elasticsearch/elasticsearch": "^7 || ^8", + "ext-json": "*", + "graylog2/gelf-php": "^1.4.2 || ^2@dev", + "guzzlehttp/guzzle": "^7.4.5", + "guzzlehttp/psr7": "^2.2", + "mongodb/mongodb": "^1.8", + "php-amqplib/php-amqplib": "~2.4 || ^3", + "phpstan/phpstan": "^1.9", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-strict-rules": "^1.4", + "phpunit/phpunit": "^9.5.26", + "predis/predis": "^1.1 || ^2", + "ruflin/elastica": "^7", + "symfony/mailer": "^5.4 || ^6", + "symfony/mime": "^5.4 || ^6" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", + "ext-mbstring": "Allow to work properly with unicode symbols", + "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", + "ext-openssl": "Required to send log messages using SSL", + "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "https://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "time": "2023-02-06T13:46:10+00:00" + }, + { + "name": "nesbot/carbon", + "version": "2.66.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/nesbot/carbon/2.66.0/nesbot-carbon-2.66.0.zip", + "reference": "496712849902241f04902033b0441b269effe001", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^7.1.8 || ^8.0", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0" + }, + "require-dev": { + "doctrine/dbal": "^2.0 || ^3.1.4", + "doctrine/orm": "^2.7", + "friendsofphp/php-cs-fixer": "^3.0", + "kylekatarnls/multi-tester": "^2.0", + "ondrejmirtes/better-reflection": "*", + "phpmd/phpmd": "^2.9", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12.99 || ^1.7.14", + "phpunit/php-file-iterator": "^2.0.5 || ^3.0.6", + "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20", + "squizlabs/php_codesniffer": "^3.4" + }, + "bin": [ + "bin/carbon" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-3.x": "3.x-dev", + "dev-master": "2.x-dev" + }, + "laravel": { + "providers": [ + "Carbon\\Laravel\\ServiceProvider" + ] + }, + "phpstan": { + "includes": [ + "extension.neon" + ] + } + }, + "autoload": { + "psr-4": { + "Carbon\\": "src/Carbon/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brian Nesbitt", + "email": "brian@nesbot.com", + "homepage": "https://markido.com" + }, + { + "name": "kylekatarnls", + "homepage": "https://github.com/kylekatarnls" + } + ], + "description": "An API extension for DateTime that supports 281 different languages.", + "homepage": "https://carbon.nesbot.com", + "keywords": [ + "date", + "datetime", + "time" + ], + "time": "2023-01-29T18:53:47+00:00" + }, + { + "name": "nette/schema", + "version": "v1.2.3", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/nette/schema/v1.2.3/nette-schema-v1.2.3.zip", + "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f", + "shasum": "" + }, + "require": { + "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0", + "php": ">=7.1 <8.3" + }, + "require-dev": { + "nette/tester": "^2.3 || ^2.4", + "phpstan/phpstan-nette": "^1.0", + "tracy/tracy": "^2.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "📐 Nette Schema: validating data structures against a given Schema.", + "homepage": "https://nette.org", + "keywords": [ + "config", + "nette" + ], + "time": "2022-10-13T01:24:26+00:00" + }, + { + "name": "nette/utils", + "version": "v4.0.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/nette/utils/v4.0.0/nette-utils-v4.0.0.zip", + "reference": "cacdbf5a91a657ede665c541eda28941d4b09c1e", + "shasum": "" + }, + "require": { + "php": ">=8.0 <8.3" + }, + "conflict": { + "nette/finder": "<3", + "nette/schema": "<1.2.2" + }, + "require-dev": { + "jetbrains/phpstorm-attributes": "dev-master", + "nette/tester": "^2.4", + "phpstan/phpstan": "^1.0", + "tracy/tracy": "^2.9" + }, + "suggest": { + "ext-gd": "to use Image", + "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", + "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", + "ext-json": "to use Nette\\Utils\\Json", + "ext-mbstring": "to use Strings::lower() etc...", + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", + "ext-xml": "to use Strings::length() etc. when mbstring is not available" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", + "homepage": "https://nette.org", + "keywords": [ + "array", + "core", + "datetime", + "images", + "json", + "nette", + "paginator", + "password", + "slugify", + "string", + "unicode", + "utf-8", + "utility", + "validation" + ], + "time": "2023-02-02T10:41:53+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.15.5", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/nikic/php-parser/v4.15.5/nikic-php-parser-v4.15.5.zip", + "reference": "11e2663a5bc9db5d714eedb4277ee300403b4a9e", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "time": "2023-05-19T20:20:00+00:00" + }, + { + "name": "nunomaduro/termwind", + "version": "v1.15.1", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/nunomaduro/termwind/v1.15.1/nunomaduro-termwind-v1.15.1.zip", + "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": "^8.0", + "symfony/console": "^5.3.0|^6.0.0" + }, + "require-dev": { + "ergebnis/phpstan-rules": "^1.0.", + "illuminate/console": "^8.0|^9.0", + "illuminate/support": "^8.0|^9.0", + "laravel/pint": "^1.0.0", + "pestphp/pest": "^1.21.0", + "pestphp/pest-plugin-mock": "^1.0", + "phpstan/phpstan": "^1.4.6", + "phpstan/phpstan-strict-rules": "^1.1.0", + "symfony/var-dumper": "^5.2.7|^6.0.0", + "thecodingmachine/phpstan-strict-rules": "^1.0.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Termwind\\Laravel\\TermwindServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/Functions.php" + ], + "psr-4": { + "Termwind\\": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Its like Tailwind CSS, but for the console.", + "keywords": [ + "cli", + "console", + "css", + "package", + "php", + "style" + ], + "time": "2023-02-08T01:06:31+00:00" + }, + { + "name": "phpoption/phpoption", + "version": "1.9.1", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/phpoption/phpoption/1.9.1/phpoption-phpoption-1.9.1.zip", + "reference": "dd3a383e599f49777d8b628dadbb90cae435b87e", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.32 || ^9.6.3 || ^10.0.12" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": true + }, + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpOption\\": "src/PhpOption/" + } + }, + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com", + "homepage": "https://github.com/schmittjoh" + }, + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + } + ], + "description": "Option Type for PHP", + "keywords": [ + "language", + "option", + "php", + "type" + ], + "time": "2023-02-25T19:38:58+00:00" + }, + { + "name": "psr/container", + "version": "2.0.2", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/psr/container/2.0.2/psr-container-2.0.2.zip", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "time": "2021-11-05T16:47:00+00:00" + }, + { + "name": "psr/event-dispatcher", + "version": "1.0.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/psr/event-dispatcher/1.0.0/psr-event-dispatcher-1.0.0.zip", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\EventDispatcher\\": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Standard interfaces for event handling.", + "keywords": [ + "events", + "psr", + "psr-14" + ], + "time": "2019-01-08T18:20:26+00:00" + }, + { + "name": "psr/http-client", + "version": "1.0.2", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/psr/http-client/1.0.2/psr-http-client-1.0.2.zip", + "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "time": "2023-04-10T20:12:12+00:00" + }, + { + "name": "psr/http-factory", + "version": "1.0.2", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/psr/http-factory/1.0.2/psr-http-factory-1.0.2.zip", + "reference": "e616d01114759c4c489f93b099585439f795fe35", + "shasum": "" + }, + "require": { + "php": ">=7.0.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "time": "2023-04-10T20:10:41+00:00" + }, + { + "name": "psr/http-message", + "version": "2.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/psr/http-message/2.0/psr-http-message-2.0.zip", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "time": "2023-04-04T09:54:51+00:00" + }, + { + "name": "psr/log", + "version": "3.0.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/psr/log/3.0.0/psr-log-3.0.0.zip", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "time": "2021-07-14T16:46:02+00:00" + }, + { + "name": "psr/simple-cache", + "version": "3.0.0", + "dist": { + "type": "zip", + "url": "https://mirrors.tencent.com/repository/composer/psr/simple-cache/3.0.0/psr-simple-cache-3.0.0.zip", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\SimpleCache\\": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interfaces for simple caching", + "keywords": [ + "cache", + "caching", + "psr", + "psr-16", + "simple-cache" + ], + "time": "2021-10-29T13:26:27+00:00" + }, + { + "name": "psy/psysh", + "version": "v0.11.17", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/psy/psysh/v0.11.17/psy-psysh-v0.11.17.zip", + "reference": "3dc5d4018dabd80bceb8fe1e3191ba8460569f0a", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-tokenizer": "*", + "nikic/php-parser": "^4.0 || ^3.1", + "php": "^8.0 || ^7.0.8", + "symfony/console": "^6.0 || ^5.0 || ^4.0 || ^3.4", + "symfony/var-dumper": "^6.0 || ^5.0 || ^4.0 || ^3.4" + }, + "conflict": { + "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.2" + }, + "suggest": { + "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", + "ext-pdo-sqlite": "The doc command requires SQLite to work.", + "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.", + "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history." + }, + "bin": [ + "bin/psysh" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "0.11.x-dev" + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Psy\\": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Justin Hileman", + "email": "justin@justinhileman.info", + "homepage": "http://justinhileman.com" + } + ], + "description": "An interactive shell for modern PHP.", + "homepage": "http://psysh.org", + "keywords": [ + "REPL", + "console", + "interactive", + "shell" + ], + "time": "2023-05-05T20:02:42+00:00" + }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/ralouphie/getallheaders/3.0.3/ralouphie-getallheaders-3.0.3.zip", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "ramsey/collection", + "version": "2.0.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/ramsey/collection/2.0.0/ramsey-collection-2.0.0.zip", + "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "captainhook/plugin-composer": "^5.3", + "ergebnis/composer-normalize": "^2.28.3", + "fakerphp/faker": "^1.21", + "hamcrest/hamcrest-php": "^2.0", + "jangregor/phpstan-prophecy": "^1.0", + "mockery/mockery": "^1.5", + "php-parallel-lint/php-console-highlighter": "^1.0", + "php-parallel-lint/php-parallel-lint": "^1.3", + "phpcsstandards/phpcsutils": "^1.0.0-rc1", + "phpspec/prophecy-phpunit": "^2.0", + "phpstan/extension-installer": "^1.2", + "phpstan/phpstan": "^1.9", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^9.5", + "psalm/plugin-mockery": "^1.1", + "psalm/plugin-phpunit": "^0.18.4", + "ramsey/coding-standard": "^2.0.3", + "ramsey/conventional-commits": "^1.3", + "vimeo/psalm": "^5.4" + }, + "type": "library", + "extra": { + "captainhook": { + "force-install": true + }, + "ramsey/conventional-commits": { + "configFile": "conventional-commits.json" + } + }, + "autoload": { + "psr-4": { + "Ramsey\\Collection\\": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ben Ramsey", + "email": "ben@benramsey.com", + "homepage": "https://benramsey.com" + } + ], + "description": "A PHP library for representing and manipulating collections.", + "keywords": [ + "array", + "collection", + "hash", + "map", + "queue", + "set" + ], + "time": "2022-12-31T21:50:55+00:00" + }, + { + "name": "ramsey/uuid", + "version": "4.7.4", + "dist": { + "type": "zip", + "url": "https://mirrors.tencent.com/repository/composer/ramsey/uuid/4.7.4/ramsey-uuid-4.7.4.zip", + "reference": "60a4c63ab724854332900504274f6150ff26d286", + "shasum": "" + }, + "require": { + "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11", + "ext-json": "*", + "php": "^8.0", + "ramsey/collection": "^1.2 || ^2.0" + }, + "replace": { + "rhumsaa/uuid": "self.version" + }, + "require-dev": { + "captainhook/captainhook": "^5.10", + "captainhook/plugin-composer": "^5.3", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "doctrine/annotations": "^1.8", + "ergebnis/composer-normalize": "^2.15", + "mockery/mockery": "^1.3", + "paragonie/random-lib": "^2", + "php-mock/php-mock": "^2.2", + "php-mock/php-mock-mockery": "^1.3", + "php-parallel-lint/php-parallel-lint": "^1.1", + "phpbench/phpbench": "^1.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^8.5 || ^9", + "ramsey/composer-repl": "^1.4", + "slevomat/coding-standard": "^8.4", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.9" + }, + "suggest": { + "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", + "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.", + "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.", + "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter", + "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." + }, + "type": "library", + "extra": { + "captainhook": { + "force-install": true + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Ramsey\\Uuid\\": "src/" + } + }, + "license": [ + "MIT" + ], + "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", + "keywords": [ + "guid", + "identifier", + "uuid" + ], + "time": "2023-04-15T23:01:58+00:00" + }, + { + "name": "slowlyo/owl-admin", + "version": "v2.5.6", + "source": { + "type": "git", + "url": "https://github.com/Slowlyo/owl-admin.git", + "reference": "86c6117f681570a3862845ce182a3c80051098d3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Slowlyo/owl-admin/zipball/86c6117f681570a3862845ce182a3c80051098d3", + "reference": "86c6117f681570a3862845ce182a3c80051098d3", + "shasum": "" + }, + "require": { + "illuminate/support": "~9|~10", + "php": ">=8.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Slowlyo\\OwlAdmin\\OwlAdminServiceProvider" + ], + "aliases": { + "OwlAdmin": "Slowlyo\\OwlAdmin\\Facades\\OwlAdmin" + } + } + }, + "autoload": { + "files": [ + "src/Libs/helpers.php" + ], + "psr-4": { + "Slowlyo\\OwlAdmin\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Slowlyo", + "email": "slowlyo_email@qq.com.com", + "homepage": "https://gitee.com/slowlyo" + } + ], + "description": "采用 laravel、amis 打造的后台框架,拥有 120+ 种组件,只用后端代码就能实现复杂的页面效果,让开发者能够快速构建高效的后台管理系统。", + "homepage": "https://gitee.com/slowlyo/owl-admin", + "keywords": [ + "OwlAdmin", + "admin", + "laravel" + ], + "support": { + "issues": "https://github.com/Slowlyo/owl-admin/issues", + "source": "https://github.com/Slowlyo/owl-admin/tree/v2.5.6" + }, + "time": "2023-05-17T12:38:22+00:00" + }, + { + "name": "symfony/console", + "version": "v6.2.10", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/console/v6.2.10/symfony-console-v6.2.10.zip", + "reference": "12288d9f4500f84a4d02254d4aa968b15488476f", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/string": "^5.4|^6.0" + }, + "conflict": { + "symfony/dependency-injection": "<5.4", + "symfony/dotenv": "<5.4", + "symfony/event-dispatcher": "<5.4", + "symfony/lock": "<5.4", + "symfony/process": "<5.4" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/lock": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command-line", + "console", + "terminal" + ], + "time": "2023-04-28T13:37:43+00:00" + }, + { + "name": "symfony/css-selector", + "version": "v6.2.7", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/css-selector/v6.2.7/symfony-css-selector-v6.2.7.zip", + "reference": "aedf3cb0f5b929ec255d96bbb4909e9932c769e0", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Converts CSS selectors to XPath expressions", + "homepage": "https://symfony.com", + "time": "2023-02-14T08:44:56+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.2.1", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/deprecation-contracts/v3.2.1/symfony-deprecation-contracts-v3.2.1.zip", + "reference": "e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.3-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "time": "2023-03-01T10:25:55+00:00" + }, + { + "name": "symfony/error-handler", + "version": "v6.2.10", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/error-handler/v6.2.10/symfony-error-handler-v6.2.10.zip", + "reference": "8b7e9f124640cb0611624a9383176c3e5f7d8cfb", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^1|^2|^3", + "symfony/var-dumper": "^5.4|^6.0" + }, + "require-dev": { + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/serializer": "^5.4|^6.0" + }, + "bin": [ + "Resources/bin/patch-type-declarations" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\ErrorHandler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to manage errors and ease debugging PHP code", + "homepage": "https://symfony.com", + "time": "2023-04-18T13:46:08+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v6.2.8", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/event-dispatcher/v6.2.8/symfony-event-dispatcher-v6.2.8.zip", + "reference": "04046f35fd7d72f9646e721fc2ecb8f9c67d3339", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/event-dispatcher-contracts": "^2|^3" + }, + "conflict": { + "symfony/dependency-injection": "<5.4" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/error-handler": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/stopwatch": "^5.4|^6.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "homepage": "https://symfony.com", + "time": "2023-03-20T16:06:02+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v3.2.1", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/event-dispatcher-contracts/v3.2.1/symfony-event-dispatcher-contracts-v3.2.1.zip", + "reference": "0ad3b6f1e4e2da5690fefe075cd53a238646d8dd", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/event-dispatcher": "^1" + }, + "suggest": { + "symfony/event-dispatcher-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.3-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2023-03-01T10:32:47+00:00" + }, + { + "name": "symfony/finder", + "version": "v6.2.7", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/finder/v6.2.7/symfony-finder-v6.2.7.zip", + "reference": "20808dc6631aecafbe67c186af5dcb370be3a0eb", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "symfony/filesystem": "^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "time": "2023-02-16T09:57:23+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v6.2.10", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/http-foundation/v6.2.10/symfony-http-foundation-v6.2.10.zip", + "reference": "49adbb92bcb4e3c2943719d2756271e8b9602acc", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-mbstring": "~1.1" + }, + "conflict": { + "symfony/cache": "<6.2" + }, + "require-dev": { + "predis/predis": "~1.0", + "symfony/cache": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4", + "symfony/mime": "^5.4|^6.0", + "symfony/rate-limiter": "^5.2|^6.0" + }, + "suggest": { + "symfony/mime": "To use the file extension guesser" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Defines an object-oriented layer for the HTTP specification", + "homepage": "https://symfony.com", + "time": "2023-04-18T13:46:08+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "v6.2.10", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/http-kernel/v6.2.10/symfony-http-kernel-v6.2.10.zip", + "reference": "81064a65a5496f17d2b6984f6519406f98864215", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^1|^2|^3", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/error-handler": "^6.1", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/http-foundation": "^5.4.21|^6.2.7", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/browser-kit": "<5.4", + "symfony/cache": "<5.4", + "symfony/config": "<6.1", + "symfony/console": "<5.4", + "symfony/dependency-injection": "<6.2", + "symfony/doctrine-bridge": "<5.4", + "symfony/form": "<5.4", + "symfony/http-client": "<5.4", + "symfony/mailer": "<5.4", + "symfony/messenger": "<5.4", + "symfony/translation": "<5.4", + "symfony/twig-bridge": "<5.4", + "symfony/validator": "<5.4", + "twig/twig": "<2.13" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/cache": "^1.0|^2.0|^3.0", + "symfony/browser-kit": "^5.4|^6.0", + "symfony/config": "^6.1", + "symfony/console": "^5.4|^6.0", + "symfony/css-selector": "^5.4|^6.0", + "symfony/dependency-injection": "^6.2", + "symfony/dom-crawler": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", + "symfony/http-client-contracts": "^1.1|^2|^3", + "symfony/process": "^5.4|^6.0", + "symfony/routing": "^5.4|^6.0", + "symfony/stopwatch": "^5.4|^6.0", + "symfony/translation": "^5.4|^6.0", + "symfony/translation-contracts": "^1.1|^2|^3", + "symfony/uid": "^5.4|^6.0", + "twig/twig": "^2.13|^3.0.4" + }, + "suggest": { + "symfony/browser-kit": "", + "symfony/config": "", + "symfony/console": "", + "symfony/dependency-injection": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a structured process for converting a Request into a Response", + "homepage": "https://symfony.com", + "time": "2023-04-28T13:50:28+00:00" + }, + { + "name": "symfony/mailer", + "version": "v6.2.8", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/mailer/v6.2.8/symfony-mailer-v6.2.8.zip", + "reference": "bfcfa015c67e19c6fdb7ca6fe70700af1e740a17", + "shasum": "" + }, + "require": { + "egulias/email-validator": "^2.1.10|^3|^4", + "php": ">=8.1", + "psr/event-dispatcher": "^1", + "psr/log": "^1|^2|^3", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/mime": "^6.2", + "symfony/service-contracts": "^1.1|^2|^3" + }, + "conflict": { + "symfony/http-kernel": "<5.4", + "symfony/messenger": "<6.2", + "symfony/mime": "<6.2", + "symfony/twig-bridge": "<6.2.1" + }, + "require-dev": { + "symfony/console": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/messenger": "^6.2", + "symfony/twig-bridge": "^6.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mailer\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps sending emails", + "homepage": "https://symfony.com", + "time": "2023-03-14T15:00:05+00:00" + }, + { + "name": "symfony/mime", + "version": "v6.2.10", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/mime/v6.2.10/symfony-mime-v6.2.10.zip", + "reference": "b6c137fc53a9f7c4c951cd3f362b3734c7a97723", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0" + }, + "conflict": { + "egulias/email-validator": "~3.0.0", + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/mailer": "<5.4", + "symfony/serializer": "<6.2" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10|^3.1|^4", + "league/html-to-markdown": "^5.0", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/property-access": "^5.4|^6.0", + "symfony/property-info": "^5.4|^6.0", + "symfony/serializer": "^6.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows manipulating MIME messages", + "homepage": "https://symfony.com", + "keywords": [ + "mime", + "mime-type" + ], + "time": "2023-04-19T09:54:16+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.27.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/polyfill-ctype/v1.27.0/symfony-polyfill-ctype-v1.27.0.zip", + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.27.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/polyfill-intl-grapheme/v1.27.0/symfony-polyfill-intl-grapheme-v1.27.0.zip", + "reference": "511a08c03c1960e08a883f4cffcacd219b758354", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.27.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/polyfill-intl-idn/v1.27.0/symfony-polyfill-intl-idn-v1.27.0.zip", + "reference": "639084e360537a19f9ee352433b84ce831f3d2da", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/polyfill-intl-normalizer": "^1.10", + "symfony/polyfill-php72": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.27.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/polyfill-intl-normalizer/v1.27.0/symfony-polyfill-intl-normalizer-v1.27.0.zip", + "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.27.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/polyfill-mbstring/v1.27.0/symfony-polyfill-mbstring-v1.27.0.zip", + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.27.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/polyfill-php72/v1.27.0/symfony-polyfill-php72-v1.27.0.zip", + "reference": "869329b1e9894268a8a61dabb69153029b7a8c97", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.27.0", + "dist": { + "type": "zip", + "url": "https://mirrors.tencent.com/repository/composer/symfony/polyfill-php80/v1.27.0/symfony-polyfill-php80-v1.27.0.zip", + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-uuid", + "version": "v1.27.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/polyfill-uuid/v1.27.0/symfony-polyfill-uuid-v1.27.0.zip", + "reference": "f3cf1a645c2734236ed1e2e671e273eeb3586166", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-uuid": "*" + }, + "suggest": { + "ext-uuid": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Uuid\\": "" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Grégoire Pineau", + "email": "lyrixx@lyrixx.info" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for uuid functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "uuid" + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/process", + "version": "v6.2.10", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/process/v6.2.10/symfony-process-v6.2.10.zip", + "reference": "b34cdbc9c5e75d45a3703e63a48ad07aafa8bf2e", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Executes commands in sub-processes", + "homepage": "https://symfony.com", + "time": "2023-04-18T13:56:57+00:00" + }, + { + "name": "symfony/routing", + "version": "v6.2.8", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/routing/v6.2.8/symfony-routing-v6.2.8.zip", + "reference": "69062e2823f03b82265d73a966999660f0e1e404", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "conflict": { + "doctrine/annotations": "<1.12", + "symfony/config": "<6.2", + "symfony/dependency-injection": "<5.4", + "symfony/yaml": "<5.4" + }, + "require-dev": { + "doctrine/annotations": "^1.12|^2", + "psr/log": "^1|^2|^3", + "symfony/config": "^6.2", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/yaml": "^5.4|^6.0" + }, + "suggest": { + "symfony/config": "For using the all-in-one router or any loader", + "symfony/expression-language": "For using expression matching", + "symfony/http-foundation": "For using a Symfony Request object", + "symfony/yaml": "For using the YAML loader" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Routing\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Maps an HTTP request to a set of configuration variables", + "homepage": "https://symfony.com", + "keywords": [ + "router", + "routing", + "uri", + "url" + ], + "time": "2023-03-14T15:00:05+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.2.1", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/service-contracts/v3.2.1/symfony-service-contracts-v3.2.1.zip", + "reference": "a8c9cedf55f314f3a186041d19537303766df09a", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^2.0" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.3-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2023-03-01T10:32:47+00:00" + }, + { + "name": "symfony/string", + "version": "v6.2.8", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/string/v6.2.8/symfony-string-v6.2.8.zip", + "reference": "193e83bbd6617d6b2151c37fff10fa7168ebddef", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.0" + }, + "require-dev": { + "symfony/error-handler": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/intl": "^6.2", + "symfony/translation-contracts": "^2.0|^3.0", + "symfony/var-exporter": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "time": "2023-03-20T16:06:02+00:00" + }, + { + "name": "symfony/translation", + "version": "v6.2.8", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/translation/v6.2.8/symfony-translation-v6.2.8.zip", + "reference": "817535dbb1721df8b3a8f2489dc7e50bcd6209b5", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-mbstring": "~1.0", + "symfony/translation-contracts": "^2.3|^3.0" + }, + "conflict": { + "symfony/config": "<5.4", + "symfony/console": "<5.4", + "symfony/dependency-injection": "<5.4", + "symfony/http-kernel": "<5.4", + "symfony/twig-bundle": "<5.4", + "symfony/yaml": "<5.4" + }, + "provide": { + "symfony/translation-implementation": "2.3|3.0" + }, + "require-dev": { + "nikic/php-parser": "^4.13", + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", + "symfony/http-client-contracts": "^1.1|^2.0|^3.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/intl": "^5.4|^6.0", + "symfony/polyfill-intl-icu": "^1.21", + "symfony/routing": "^5.4|^6.0", + "symfony/service-contracts": "^1.1.2|^2|^3", + "symfony/yaml": "^5.4|^6.0" + }, + "suggest": { + "nikic/php-parser": "To use PhpAstExtractor", + "psr/log-implementation": "To use logging capability in translator", + "symfony/config": "", + "symfony/yaml": "" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to internationalize your application", + "homepage": "https://symfony.com", + "time": "2023-03-31T09:14:44+00:00" + }, + { + "name": "symfony/translation-contracts", + "version": "v3.2.1", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/translation-contracts/v3.2.1/symfony-translation-contracts-v3.2.1.zip", + "reference": "dfec258b9dd17a6b24420d464c43bffe347441c8", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "suggest": { + "symfony/translation-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.3-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to translation", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2023-03-01T10:32:47+00:00" + }, + { + "name": "symfony/uid", + "version": "v6.2.7", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/uid/v6.2.7/symfony-uid-v6.2.7.zip", + "reference": "d30c72a63897cfa043e1de4d4dd2ffa9ecefcdc0", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-uuid": "^1.15" + }, + "require-dev": { + "symfony/console": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Uid\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Grégoire Pineau", + "email": "lyrixx@lyrixx.info" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to generate and represent UIDs", + "homepage": "https://symfony.com", + "keywords": [ + "UID", + "ulid", + "uuid" + ], + "time": "2023-02-14T08:44:56+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v6.2.10", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/var-dumper/v6.2.10/symfony-var-dumper-v6.2.10.zip", + "reference": "41a750a23412ca76fdbbf5096943b4134272c1ab", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "phpunit/phpunit": "<5.4.3", + "symfony/console": "<5.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/uid": "^5.4|^6.0", + "twig/twig": "^2.13|^3.0.4" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "time": "2023-04-18T13:46:08+00:00" + }, + { + "name": "tijsverkoyen/css-to-inline-styles", + "version": "2.2.6", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/tijsverkoyen/css-to-inline-styles/2.2.6/tijsverkoyen-css-to-inline-styles-2.2.6.zip", + "reference": "c42125b83a4fa63b187fdf29f9c93cb7733da30c", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "php": "^5.5 || ^7.0 || ^8.0", + "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "TijsVerkoyen\\CssToInlineStyles\\": "src" + } + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Tijs Verkoyen", + "email": "css_to_inline_styles@verkoyen.eu", + "role": "Developer" + } + ], + "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.", + "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", + "time": "2023-01-03T09:29:04+00:00" + }, + { + "name": "tucker-eric/eloquentfilter", + "version": "3.2.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/tucker-eric/eloquentfilter/3.2.0/tucker-eric-eloquentfilter-3.2.0.zip", + "reference": "faaad783b7f23af7ba7e23baaa56d71af51504a9", + "shasum": "" + }, + "require": { + "illuminate/config": "~6.0|~7.0|~8.0|~9.0|~10.0", + "illuminate/console": "~6.0|~7.0|~8.0|~9.0|~10.0", + "illuminate/database": "~6.0|~7.0|~8.0|~9.0|~10.0", + "illuminate/filesystem": "~6.0|~7.0|~8.0|~9.0|~10.0", + "illuminate/pagination": "~6.0|~7.0|~8.0|~9.0|~10.0", + "illuminate/support": "~6.0|~7.0|~8.0|~9.0|~10.0", + "php": ">=7.2" + }, + "require-dev": { + "mockery/mockery": "^1.3", + "phpunit/phpunit": "^8" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "EloquentFilter\\ServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "EloquentFilter\\": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eric Tucker", + "email": "tucker.ericm@gmail.com" + } + ], + "description": "An Eloquent way to filter Eloquent Models", + "keywords": [ + "eloquent", + "filter", + "laravel", + "model", + "query", + "search" + ], + "time": "2023-02-07T18:34:53+00:00" + }, + { + "name": "vlucas/phpdotenv", + "version": "v5.5.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/vlucas/phpdotenv/v5.5.0/vlucas-phpdotenv-v5.5.0.zip", + "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7", + "shasum": "" + }, + "require": { + "ext-pcre": "*", + "graham-campbell/result-type": "^1.0.2", + "php": "^7.1.3 || ^8.0", + "phpoption/phpoption": "^1.8", + "symfony/polyfill-ctype": "^1.23", + "symfony/polyfill-mbstring": "^1.23.1", + "symfony/polyfill-php80": "^1.23.1" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4.1", + "ext-filter": "*", + "phpunit/phpunit": "^7.5.20 || ^8.5.30 || ^9.5.25" + }, + "suggest": { + "ext-filter": "Required to use the boolean validator." + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": true + }, + "branch-alias": { + "dev-master": "5.5-dev" + } + }, + "autoload": { + "psr-4": { + "Dotenv\\": "src/" + } + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Vance Lucas", + "email": "vance@vancelucas.com", + "homepage": "https://github.com/vlucas" + } + ], + "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "time": "2022-10-16T01:01:54+00:00" + }, + { + "name": "voku/portable-ascii", + "version": "2.0.1", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/voku/portable-ascii/2.0.1/voku-portable-ascii-2.0.1.zip", + "reference": "b56450eed252f6801410d810c8e1727224ae0743", + "shasum": "" + }, + "require": { + "php": ">=7.0.0" + }, + "require-dev": { + "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0" + }, + "suggest": { + "ext-intl": "Use Intl for transliterator_transliterate() support" + }, + "type": "library", + "autoload": { + "psr-4": { + "voku\\": "src/voku/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Lars Moelleken", + "homepage": "http://www.moelleken.org/" + } + ], + "description": "Portable ASCII library - performance optimized (ascii) string functions for php.", + "homepage": "https://github.com/voku/portable-ascii", + "keywords": [ + "ascii", + "clean", + "php" + ], + "time": "2022-03-08T17:03:00+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.11.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/webmozart/assert/1.11.0/webmozart-assert-1.11.0.zip", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "time": "2022-06-03T18:03:27+00:00" + } + ], + "packages-dev": [ + { + "name": "fakerphp/faker", + "version": "v1.22.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/fakerphp/faker/v1.22.0/fakerphp-faker-v1.22.0.zip", + "reference": "f85772abd508bd04e20bb4b1bbe260a68d0066d2", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0", + "psr/container": "^1.0 || ^2.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "conflict": { + "fzaninotto/faker": "*" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4.1", + "doctrine/persistence": "^1.3 || ^2.0", + "ext-intl": "*", + "phpunit/phpunit": "^9.5.26", + "symfony/phpunit-bridge": "^5.4.16" + }, + "suggest": { + "doctrine/orm": "Required to use Faker\\ORM\\Doctrine", + "ext-curl": "Required by Faker\\Provider\\Image to download images.", + "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.", + "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.", + "ext-mbstring": "Required for multibyte Unicode string functionality." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "v1.21-dev" + } + }, + "autoload": { + "psr-4": { + "Faker\\": "src/Faker/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "François Zaninotto" + } + ], + "description": "Faker is a PHP library that generates fake data for you.", + "keywords": [ + "data", + "faker", + "fixtures" + ], + "time": "2023-05-14T12:31:37+00:00" + }, + { + "name": "filp/whoops", + "version": "2.15.2", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/filp/whoops/2.15.2/filp-whoops-2.15.2.zip", + "reference": "aac9304c5ed61bf7b1b7a6064bf9806ab842ce73", + "shasum": "" + }, + "require": { + "php": "^5.5.9 || ^7.0 || ^8.0", + "psr/log": "^1.0.1 || ^2.0 || ^3.0" + }, + "require-dev": { + "mockery/mockery": "^0.9 || ^1.0", + "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.3", + "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0" + }, + "suggest": { + "symfony/var-dumper": "Pretty print complex values better with var-dumper available", + "whoops/soap": "Formats errors as SOAP responses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Whoops\\": "src/Whoops/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Filipe Dobreira", + "homepage": "https://github.com/filp", + "role": "Developer" + } + ], + "description": "php error handling for cool kids", + "homepage": "https://filp.github.io/whoops/", + "keywords": [ + "error", + "exception", + "handling", + "library", + "throwable", + "whoops" + ], + "time": "2023-04-12T12:00:00+00:00" + }, + { + "name": "hamcrest/hamcrest-php", + "version": "v2.0.1", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/hamcrest/hamcrest-php/v2.0.1/hamcrest-hamcrest-php-v2.0.1.zip", + "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", + "shasum": "" + }, + "require": { + "php": "^5.3|^7.0|^8.0" + }, + "replace": { + "cordoval/hamcrest-php": "*", + "davedevelopment/hamcrest-php": "*", + "kodova/hamcrest-php": "*" + }, + "require-dev": { + "phpunit/php-file-iterator": "^1.4 || ^2.0", + "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" + } + }, + "autoload": { + "classmap": [ + "hamcrest" + ] + }, + "license": [ + "BSD-3-Clause" + ], + "description": "This is the PHP port of Hamcrest Matchers", + "keywords": [ + "test" + ], + "time": "2020-07-09T08:09:16+00:00" + }, + { + "name": "laravel/pint", + "version": "v1.10.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/laravel/pint/v1.10.0/laravel-pint-v1.10.0.zip", + "reference": "c7a01fa9bdd79819e7a2f1ba63ac1b02e6692dbc", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-mbstring": "*", + "ext-tokenizer": "*", + "ext-xml": "*", + "php": "^8.1.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.16.0", + "illuminate/view": "^10.5.1", + "laravel-zero/framework": "^10.0.2", + "mockery/mockery": "^1.5.1", + "nunomaduro/larastan": "^2.5.1", + "nunomaduro/termwind": "^1.15.1", + "pestphp/pest": "^2.4.0" + }, + "bin": [ + "builds/pint" + ], + "type": "project", + "autoload": { + "psr-4": { + "App\\": "app/", + "Database\\Seeders\\": "database/seeders/", + "Database\\Factories\\": "database/factories/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "An opinionated code formatter for PHP.", + "homepage": "https://laravel.com", + "keywords": [ + "format", + "formatter", + "lint", + "linter", + "php" + ], + "time": "2023-04-25T14:52:30+00:00" + }, + { + "name": "laravel/sail", + "version": "v1.22.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/laravel/sail/v1.22.0/laravel-sail-v1.22.0.zip", + "reference": "923e1e112b6a8598664dbb0ee79dd3137f1c9d56", + "shasum": "" + }, + "require": { + "illuminate/console": "^8.0|^9.0|^10.0", + "illuminate/contracts": "^8.0|^9.0|^10.0", + "illuminate/support": "^8.0|^9.0|^10.0", + "php": "^8.0", + "symfony/yaml": "^6.0" + }, + "require-dev": { + "orchestra/testbench": "^6.0|^7.0|^8.0", + "phpstan/phpstan": "^1.10" + }, + "bin": [ + "bin/sail" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + }, + "laravel": { + "providers": [ + "Laravel\\Sail\\SailServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Sail\\": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Docker files for running a basic Laravel application.", + "keywords": [ + "docker", + "laravel" + ], + "time": "2023-05-04T14:52:56+00:00" + }, + { + "name": "mockery/mockery", + "version": "1.5.1", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/mockery/mockery/1.5.1/mockery-mockery-1.5.1.zip", + "reference": "e92dcc83d5a51851baf5f5591d32cb2b16e3684e", + "shasum": "" + }, + "require": { + "hamcrest/hamcrest-php": "^2.0.1", + "lib-pcre": ">=7.0", + "php": "^7.3 || ^8.0" + }, + "conflict": { + "phpunit/phpunit": "<8.0" + }, + "require-dev": { + "phpunit/phpunit": "^8.5 || ^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "autoload": { + "psr-0": { + "Mockery": "library/" + } + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Pádraic Brady", + "email": "padraic.brady@gmail.com", + "homepage": "http://blog.astrumfutura.com" + }, + { + "name": "Dave Marshall", + "email": "dave.marshall@atstsolutions.co.uk", + "homepage": "http://davedevelopment.co.uk" + } + ], + "description": "Mockery is a simple yet flexible PHP mock object framework", + "homepage": "https://github.com/mockery/mockery", + "keywords": [ + "BDD", + "TDD", + "library", + "mock", + "mock objects", + "mockery", + "stub", + "test", + "test double", + "testing" + ], + "time": "2022-09-07T15:32:08+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.11.1", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/myclabs/deep-copy/1.11.1/myclabs-deep-copy-1.11.1.zip", + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" + }, + "require-dev": { + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + }, + "type": "library", + "autoload": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "time": "2023-03-08T13:26:56+00:00" + }, + { + "name": "nunomaduro/collision", + "version": "v7.5.2", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/nunomaduro/collision/v7.5.2/nunomaduro-collision-v7.5.2.zip", + "reference": "76b3cabda0aabda455fc3b9db6c3615f5a87c7ff", + "shasum": "" + }, + "require": { + "filp/whoops": "^2.15.2", + "nunomaduro/termwind": "^1.15.1", + "php": "^8.1.0", + "symfony/console": "^6.2.8" + }, + "conflict": { + "phpunit/phpunit": "<10.1.2" + }, + "require-dev": { + "brianium/paratest": "^7.1.3", + "laravel/framework": "^10.8.0", + "laravel/pint": "^1.9.0", + "laravel/sail": "^1.21.4", + "laravel/sanctum": "^3.2.1", + "laravel/tinker": "^2.8.1", + "nunomaduro/larastan": "^2.6.0", + "orchestra/testbench-core": "^8.5.0", + "pestphp/pest": "^2.5.2", + "phpunit/phpunit": "^10.1.1", + "sebastian/environment": "^6.0.1", + "spatie/laravel-ignition": "^2.1.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "./src/Adapters/Phpunit/Autoload.php" + ], + "psr-4": { + "NunoMaduro\\Collision\\": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Cli error handling for console/command-line PHP applications.", + "keywords": [ + "artisan", + "cli", + "command-line", + "console", + "error", + "handling", + "laravel", + "laravel-zero", + "php", + "symfony" + ], + "time": "2023-04-22T22:12:40+00:00" + }, + { + "name": "phar-io/manifest", + "version": "2.0.3", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/phar-io/manifest/2.0.3/phar-io-manifest-2.0.3.zip", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "time": "2021-07-20T11:28:43+00:00" + }, + { + "name": "phar-io/version", + "version": "3.2.1", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/phar-io/version/3.2.1/phar-io-version-3.2.1.zip", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "time": "2022-02-21T01:04:05+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "10.1.2", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/phpunit/php-code-coverage/10.1.2/phpunit-php-code-coverage-10.1.2.zip", + "reference": "db1497ec8dd382e82c962f7abbe0320e4882ee4e", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^4.15", + "php": ">=8.1", + "phpunit/php-file-iterator": "^4.0", + "phpunit/php-text-template": "^3.0", + "sebastian/code-unit-reverse-lookup": "^3.0", + "sebastian/complexity": "^3.0", + "sebastian/environment": "^6.0", + "sebastian/lines-of-code": "^2.0", + "sebastian/version": "^4.0", + "theseer/tokenizer": "^1.2.0" + }, + "require-dev": { + "phpunit/phpunit": "^10.1" + }, + "suggest": { + "ext-pcov": "PHP extension that provides line coverage", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "10.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "time": "2023-05-22T09:04:27+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "4.0.2", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/phpunit/php-file-iterator/4.0.2/phpunit-php-file-iterator-4.0.2.zip", + "reference": "5647d65443818959172645e7ed999217360654b6", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "time": "2023-05-07T09:13:23+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "4.0.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/phpunit/php-invoker/4.0.0/phpunit-php-invoker-4.0.0.zip", + "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^10.0" + }, + "suggest": { + "ext-pcntl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "time": "2023-02-03T06:56:09+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "3.0.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/phpunit/php-text-template/3.0.0/phpunit-php-text-template-3.0.0.zip", + "reference": "9f3d3709577a527025f55bcf0f7ab8052c8bb37d", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "time": "2023-02-03T06:56:46+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "6.0.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/phpunit/php-timer/6.0.0/phpunit-php-timer-6.0.0.zip", + "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "time": "2023-02-03T06:57:52+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "10.1.3", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/phpunit/phpunit/10.1.3/phpunit-phpunit-10.1.3.zip", + "reference": "2379ebafc1737e71cdc84f402acb6b7f04198b9d", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.10.1", + "phar-io/manifest": "^2.0.3", + "phar-io/version": "^3.0.2", + "php": ">=8.1", + "phpunit/php-code-coverage": "^10.1.1", + "phpunit/php-file-iterator": "^4.0", + "phpunit/php-invoker": "^4.0", + "phpunit/php-text-template": "^3.0", + "phpunit/php-timer": "^6.0", + "sebastian/cli-parser": "^2.0", + "sebastian/code-unit": "^2.0", + "sebastian/comparator": "^5.0", + "sebastian/diff": "^5.0", + "sebastian/environment": "^6.0", + "sebastian/exporter": "^5.0", + "sebastian/global-state": "^6.0", + "sebastian/object-enumerator": "^5.0", + "sebastian/recursion-context": "^5.0", + "sebastian/type": "^4.0", + "sebastian/version": "^4.0" + }, + "suggest": { + "ext-soap": "To be able to generate mocks based on WSDL files" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "10.1-dev" + } + }, + "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" + ] + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "time": "2023-05-11T05:16:22+00:00" + }, + { + "name": "sebastian/cli-parser", + "version": "2.0.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/sebastian/cli-parser/2.0.0/sebastian-cli-parser-2.0.0.zip", + "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "time": "2023-02-03T06:58:15+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "2.0.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/sebastian/code-unit/2.0.0/sebastian-code-unit-2.0.0.zip", + "reference": "a81fee9eef0b7a76af11d121767abc44c104e503", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "time": "2023-02-03T06:58:43+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "3.0.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/sebastian/code-unit-reverse-lookup/3.0.0/sebastian-code-unit-reverse-lookup-3.0.0.zip", + "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "time": "2023-02-03T06:59:15+00:00" + }, + { + "name": "sebastian/comparator", + "version": "5.0.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/sebastian/comparator/5.0.0/sebastian-comparator-5.0.0.zip", + "reference": "72f01e6586e0caf6af81297897bd112eb7e9627c", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-mbstring": "*", + "php": ">=8.1", + "sebastian/diff": "^5.0", + "sebastian/exporter": "^5.0" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "time": "2023-02-03T07:07:16+00:00" + }, + { + "name": "sebastian/complexity", + "version": "3.0.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/sebastian/complexity/3.0.0/sebastian-complexity-3.0.0.zip", + "reference": "e67d240970c9dc7ea7b2123a6d520e334dd61dc6", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.10", + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "time": "2023-02-03T06:59:47+00:00" + }, + { + "name": "sebastian/diff", + "version": "5.0.3", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/sebastian/diff/5.0.3/sebastian-diff-5.0.3.zip", + "reference": "912dc2fbe3e3c1e7873313cc801b100b6c68c87b", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "time": "2023-05-01T07:48:21+00:00" + }, + { + "name": "sebastian/environment", + "version": "6.0.1", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/sebastian/environment/6.0.1/sebastian-environment-6.0.1.zip", + "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "https://github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "time": "2023-04-11T05:39:26+00:00" + }, + { + "name": "sebastian/exporter", + "version": "5.0.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/sebastian/exporter/5.0.0/sebastian-exporter-5.0.0.zip", + "reference": "f3ec4bf931c0b31e5b413f5b4fc970a7d03338c0", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": ">=8.1", + "sebastian/recursion-context": "^5.0" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "https://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "time": "2023-02-03T07:06:49+00:00" + }, + { + "name": "sebastian/global-state", + "version": "6.0.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/sebastian/global-state/6.0.0/sebastian-global-state-6.0.0.zip", + "reference": "aab257c712de87b90194febd52e4d184551c2d44", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "sebastian/object-reflector": "^3.0", + "sebastian/recursion-context": "^5.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "time": "2023-02-03T07:07:38+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "2.0.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/sebastian/lines-of-code/2.0.0/sebastian-lines-of-code-2.0.0.zip", + "reference": "17c4d940ecafb3d15d2cf916f4108f664e28b130", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.10", + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "time": "2023-02-03T07:08:02+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "5.0.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/sebastian/object-enumerator/5.0.0/sebastian-object-enumerator-5.0.0.zip", + "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "sebastian/object-reflector": "^3.0", + "sebastian/recursion-context": "^5.0" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "time": "2023-02-03T07:08:32+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "3.0.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/sebastian/object-reflector/3.0.0/sebastian-object-reflector-3.0.0.zip", + "reference": "24ed13d98130f0e7122df55d06c5c4942a577957", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "time": "2023-02-03T07:06:18+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "5.0.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/sebastian/recursion-context/5.0.0/sebastian-recursion-context-5.0.0.zip", + "reference": "05909fb5bc7df4c52992396d0116aed689f93712", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "https://github.com/sebastianbergmann/recursion-context", + "time": "2023-02-03T07:05:40+00:00" + }, + { + "name": "sebastian/type", + "version": "4.0.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/sebastian/type/4.0.0/sebastian-type-4.0.0.zip", + "reference": "462699a16464c3944eefc02ebdd77882bd3925bf", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "time": "2023-02-03T07:10:45+00:00" + }, + { + "name": "sebastian/version", + "version": "4.0.1", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/sebastian/version/4.0.1/sebastian-version-4.0.1.zip", + "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "time": "2023-02-07T11:34:05+00:00" + }, + { + "name": "spatie/backtrace", + "version": "1.4.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/spatie/backtrace/1.4.0/spatie-backtrace-1.4.0.zip", + "reference": "ec4dd16476b802dbdc6b4467f84032837e316b8c", + "shasum": "" + }, + "require": { + "php": "^7.3|^8.0" + }, + "require-dev": { + "ext-json": "*", + "phpunit/phpunit": "^9.3", + "spatie/phpunit-snapshot-assertions": "^4.2", + "symfony/var-dumper": "^5.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\Backtrace\\": "src" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van de Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "A better backtrace", + "homepage": "https://github.com/spatie/backtrace", + "keywords": [ + "Backtrace", + "spatie" + ], + "time": "2023-03-04T08:57:24+00:00" + }, + { + "name": "spatie/flare-client-php", + "version": "1.3.6", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/spatie/flare-client-php/1.3.6/spatie-flare-client-php-1.3.6.zip", + "reference": "530ac81255af79f114344286e4275f8869c671e2", + "shasum": "" + }, + "require": { + "illuminate/pipeline": "^8.0|^9.0|^10.0", + "php": "^8.0", + "spatie/backtrace": "^1.2", + "symfony/http-foundation": "^5.0|^6.0", + "symfony/mime": "^5.2|^6.0", + "symfony/process": "^5.2|^6.0", + "symfony/var-dumper": "^5.2|^6.0" + }, + "require-dev": { + "dms/phpunit-arraysubset-asserts": "^0.3.0", + "pestphp/pest": "^1.20", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "spatie/phpunit-snapshot-assertions": "^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.1.x-dev" + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Spatie\\FlareClient\\": "src" + } + }, + "license": [ + "MIT" + ], + "description": "Send PHP errors to Flare", + "homepage": "https://github.com/spatie/flare-client-php", + "keywords": [ + "exception", + "flare", + "reporting", + "spatie" + ], + "time": "2023-04-12T07:57:12+00:00" + }, + { + "name": "spatie/ignition", + "version": "1.7.0", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/spatie/ignition/1.7.0/spatie-ignition-1.7.0.zip", + "reference": "f747d83c6d7cb6229b462f3ddbb3a82dc0db0f78", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-mbstring": "*", + "php": "^8.0", + "spatie/backtrace": "^1.4", + "spatie/flare-client-php": "^1.1", + "symfony/console": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" + }, + "require-dev": { + "illuminate/cache": "^9.52", + "mockery/mockery": "^1.4", + "pestphp/pest": "^1.20", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "psr/simple-cache-implementation": "*", + "symfony/cache": "^6.2", + "symfony/process": "^5.4|^6.0", + "vlucas/phpdotenv": "^5.5" + }, + "suggest": { + "openai-php/client": "Require get solutions from OpenAI", + "simple-cache-implementation": "To cache solutions from OpenAI" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "Spatie\\Ignition\\": "src" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Spatie", + "email": "info@spatie.be", + "role": "Developer" + } + ], + "description": "A beautiful error page for PHP applications.", + "homepage": "https://flareapp.io/ignition", + "keywords": [ + "error", + "flare", + "laravel", + "page" + ], + "time": "2023-05-04T13:20:26+00:00" + }, + { + "name": "spatie/laravel-ignition", + "version": "2.1.2", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/spatie/laravel-ignition/2.1.2/spatie-laravel-ignition-2.1.2.zip", + "reference": "2f99fa6b732a6049e78ed34e4608ce589605ae54", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "ext-json": "*", + "ext-mbstring": "*", + "illuminate/support": "^10.0", + "php": "^8.1", + "spatie/flare-client-php": "^1.3.5", + "spatie/ignition": "^1.5.0", + "symfony/console": "^6.2.3", + "symfony/var-dumper": "^6.2.3" + }, + "require-dev": { + "livewire/livewire": "^2.11", + "mockery/mockery": "^1.5.1", + "openai-php/client": "^0.3.4", + "orchestra/testbench": "^8.0", + "pestphp/pest": "^1.22.3", + "phpstan/extension-installer": "^1.2", + "phpstan/phpstan-deprecation-rules": "^1.1.1", + "phpstan/phpstan-phpunit": "^1.3.3", + "vlucas/phpdotenv": "^5.5" + }, + "suggest": { + "openai-php/client": "Require get solutions from OpenAI", + "psr/simple-cache-implementation": "Needed to cache solutions from OpenAI" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Spatie\\LaravelIgnition\\IgnitionServiceProvider" + ], + "aliases": { + "Flare": "Spatie\\LaravelIgnition\\Facades\\Flare" + } + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Spatie\\LaravelIgnition\\": "src" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Spatie", + "email": "info@spatie.be", + "role": "Developer" + } + ], + "description": "A beautiful error page for Laravel applications.", + "homepage": "https://flareapp.io/ignition", + "keywords": [ + "error", + "flare", + "laravel", + "page" + ], + "time": "2023-05-09T07:19:31+00:00" + }, + { + "name": "symfony/yaml", + "version": "v6.2.10", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/symfony/yaml/v6.2.10/symfony-yaml-v6.2.10.zip", + "reference": "61916f3861b1e9705b18cfde723921a71dd1559d", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/console": "<5.4" + }, + "require-dev": { + "symfony/console": "^5.4|^6.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "bin": [ + "Resources/bin/yaml-lint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Loads and dumps YAML files", + "homepage": "https://symfony.com", + "time": "2023-04-28T13:25:36+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.2.1", + "dist": { + "type": "zip", + "url": "https://mirrors.cloud.tencent.com/repository/composer/theseer/tokenizer/1.2.1/theseer-tokenizer-1.2.1.zip", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "time": "2021-07-28T10:34:58+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": true, + "prefer-lowest": false, + "platform": { + "php": "^8.1" + }, + "platform-dev": [], + "plugin-api-version": "2.3.0" +} diff --git a/config/admin.php b/config/admin.php new file mode 100644 index 0000000..4def24c --- /dev/null +++ b/config/admin.php @@ -0,0 +1,98 @@ + '养老院收费系统', + + // 应用 logo + 'logo' => '/admin/logo.png', + + // 默认头像 + 'default_avatar' => '/admin/default-avatar.png', + + 'directory' => app_path('Admin'), + + 'bootstrap' => app_path('Admin/bootstrap.php'), + + 'route' => [ + 'prefix' => 'admin-api', + 'domain' => null, + 'namespace' => 'App\\Admin\\Controllers', + 'middleware' => ['admin'], + // 不包含额外路由, 配置后, 不会追加新增/详情/编辑页面路由 + 'without_extra_routes' => [ + '/dashboard', + ], + ], + + 'auth' => [ + // 是否开启验证码 + 'login_captcha' => env('ADMIN_LOGIN_CAPTCHA', true), + // 是否开启鉴权 + 'enable' => true, + // 用户模型 + 'model' => \Slowlyo\OwlAdmin\Models\AdminUser::class, + 'controller' => \Slowlyo\OwlAdmin\Controllers\AuthController::class, + 'guard' => 'sanctum', + 'except' => [ + + ], + ], + + 'upload' => [ + 'disk' => 'public', + // 文件上传目录 + 'directory' => [ + 'image' => 'images', + 'file' => 'files', + 'rich' => 'rich', + ], + ], + + 'https' => env('ADMIN_HTTPS', false), + + // 是否显示 [开发者工具] + 'show_development_tools' => env('ADMIN_SHOW_DEVELOPMENT_TOOLS', true), + + // 是否显示 [权限] 功能中的自动生成按钮 + 'show_auto_generate_permission_button' => env('ADMIN_SHOW_AUTO_GENERATE_PERMISSION_BUTTON', true), + + 'dev_tools' => [ + 'terminal' => [ + 'php_alias' => 'php', + 'composer_alias' => 'composer', + ], + ], + + // 扩展 + 'extension' => [ + 'dir' => base_path('extensions'), + ], + + 'layout' => [ + // 浏览器标题, 功能名称使用 %title% 代替 + 'title' => '%title% | 养老院收费系统', + 'header' => [ + // 是否显示 [刷新] 按钮 + 'refresh' => true, + // 是否显示 [全屏] 按钮 + 'full_screen' => true, + // 是否显示 [主题模式] 按钮 + 'switch_theme' => true, + // 是否显示 [主题配置] 按钮 + 'theme_config' => true, + ], + /* + * keep_alive 页面缓存黑名单 + * + * eg: + * 列表: /user + * 详情: /user/:id + * 编辑: /user/:id/edit + * 新增: /user/create + */ + 'keep_alive_exclude' => [], + // 底部信息 + 'footer' => 'Owl Admin', + ], +]; diff --git a/config/app.php b/config/app.php new file mode 100644 index 0000000..07e494c --- /dev/null +++ b/config/app.php @@ -0,0 +1,188 @@ + env('APP_NAME', 'Laravel'), + + /* + |-------------------------------------------------------------------------- + | Application Environment + |-------------------------------------------------------------------------- + | + | This value determines the "environment" your application is currently + | running in. This may determine how you prefer to configure various + | services the application utilizes. Set this in your ".env" file. + | + */ + + 'env' => env('APP_ENV', 'production'), + + /* + |-------------------------------------------------------------------------- + | Application Debug Mode + |-------------------------------------------------------------------------- + | + | When your application is in debug mode, detailed error messages with + | stack traces will be shown on every error that occurs within your + | application. If disabled, a simple generic error page is shown. + | + */ + + 'debug' => (bool) env('APP_DEBUG', false), + + /* + |-------------------------------------------------------------------------- + | Application URL + |-------------------------------------------------------------------------- + | + | This URL is used by the console to properly generate URLs when using + | the Artisan command line tool. You should set this to the root of + | your application so that it is used when running Artisan tasks. + | + */ + + 'url' => env('APP_URL', 'http://localhost'), + + 'asset_url' => env('ASSET_URL'), + + /* + |-------------------------------------------------------------------------- + | Application Timezone + |-------------------------------------------------------------------------- + | + | Here you may specify the default timezone for your application, which + | will be used by the PHP date and date-time functions. We have gone + | ahead and set this to a sensible default for you out of the box. + | + */ + + 'timezone' => 'PRC', + + /* + |-------------------------------------------------------------------------- + | Application Locale Configuration + |-------------------------------------------------------------------------- + | + | The application locale determines the default locale that will be used + | by the translation service provider. You are free to set this value + | to any of the locales which will be supported by the application. + | + */ + + 'locale' => 'zh_CN', + + /* + |-------------------------------------------------------------------------- + | Application Fallback Locale + |-------------------------------------------------------------------------- + | + | The fallback locale determines the locale to use when the current one + | is not available. You may change the value to correspond to any of + | the language folders that are provided through your application. + | + */ + + 'fallback_locale' => 'en', + + /* + |-------------------------------------------------------------------------- + | Faker Locale + |-------------------------------------------------------------------------- + | + | This locale will be used by the Faker PHP library when generating fake + | data for your database seeds. For example, this will be used to get + | localized telephone numbers, street address information and more. + | + */ + + 'faker_locale' => 'zh_CN', + + /* + |-------------------------------------------------------------------------- + | Encryption Key + |-------------------------------------------------------------------------- + | + | This key is used by the Illuminate encrypter service and should be set + | to a random, 32 character string, otherwise these encrypted strings + | will not be safe. Please do this before deploying an application! + | + */ + + 'key' => env('APP_KEY'), + + 'cipher' => 'AES-256-CBC', + + /* + |-------------------------------------------------------------------------- + | Maintenance Mode Driver + |-------------------------------------------------------------------------- + | + | These configuration options determine the driver used to determine and + | manage Laravel's "maintenance mode" status. The "cache" driver will + | allow maintenance mode to be controlled across multiple machines. + | + | Supported drivers: "file", "cache" + | + */ + + 'maintenance' => [ + 'driver' => 'file', + // 'store' => 'redis', + ], + + /* + |-------------------------------------------------------------------------- + | Autoloaded Service Providers + |-------------------------------------------------------------------------- + | + | The service providers listed here will be automatically loaded on the + | request to your application. Feel free to add your own services to + | this array to grant expanded functionality to your applications. + | + */ + + 'providers' => ServiceProvider::defaultProviders()->merge([ + /* + * Package Service Providers... + */ + + /* + * Application Service Providers... + */ + App\Providers\AppServiceProvider::class, + App\Providers\AuthServiceProvider::class, + // App\Providers\BroadcastServiceProvider::class, + App\Providers\EventServiceProvider::class, + App\Providers\RouteServiceProvider::class, + ])->toArray(), + + /* + |-------------------------------------------------------------------------- + | Class Aliases + |-------------------------------------------------------------------------- + | + | This array of class aliases will be registered when this application + | is started. However, feel free to register as many as you wish as + | the aliases are "lazy" loaded so they don't hinder performance. + | + */ + + 'aliases' => Facade::defaultAliases()->merge([ + // 'Example' => App\Facades\Example::class, + ])->toArray(), + +]; diff --git a/config/auth.php b/config/auth.php new file mode 100644 index 0000000..9548c15 --- /dev/null +++ b/config/auth.php @@ -0,0 +1,115 @@ + [ + 'guard' => 'web', + 'passwords' => 'users', + ], + + /* + |-------------------------------------------------------------------------- + | Authentication Guards + |-------------------------------------------------------------------------- + | + | Next, you may define every authentication guard for your application. + | Of course, a great default configuration has been defined for you + | here which uses session storage and the Eloquent user provider. + | + | All authentication drivers have a user provider. This defines how the + | users are actually retrieved out of your database or other storage + | mechanisms used by this application to persist your user's data. + | + | Supported: "session" + | + */ + + 'guards' => [ + 'web' => [ + 'driver' => 'session', + 'provider' => 'users', + ], + ], + + /* + |-------------------------------------------------------------------------- + | User Providers + |-------------------------------------------------------------------------- + | + | All authentication drivers have a user provider. This defines how the + | users are actually retrieved out of your database or other storage + | mechanisms used by this application to persist your user's data. + | + | If you have multiple user tables or models you may configure multiple + | sources which represent each model / table. These sources may then + | be assigned to any extra authentication guards you have defined. + | + | Supported: "database", "eloquent" + | + */ + + 'providers' => [ + 'users' => [ + 'driver' => 'eloquent', + 'model' => App\Models\User::class, + ], + + // 'users' => [ + // 'driver' => 'database', + // 'table' => 'users', + // ], + ], + + /* + |-------------------------------------------------------------------------- + | Resetting Passwords + |-------------------------------------------------------------------------- + | + | You may specify multiple password reset configurations if you have more + | than one user table or model in the application and you want to have + | separate password reset settings based on the specific user types. + | + | The expiry time is the number of minutes that each reset token will be + | considered valid. This security feature keeps tokens short-lived so + | they have less time to be guessed. You may change this as needed. + | + | The throttle setting is the number of seconds a user must wait before + | generating more password reset tokens. This prevents the user from + | quickly generating a very large amount of password reset tokens. + | + */ + + 'passwords' => [ + 'users' => [ + 'provider' => 'users', + 'table' => 'password_reset_tokens', + 'expire' => 60, + 'throttle' => 60, + ], + ], + + /* + |-------------------------------------------------------------------------- + | Password Confirmation Timeout + |-------------------------------------------------------------------------- + | + | Here you may define the amount of seconds before a password confirmation + | times out and the user is prompted to re-enter their password via the + | confirmation screen. By default, the timeout lasts for three hours. + | + */ + + 'password_timeout' => 10800, + +]; diff --git a/config/broadcasting.php b/config/broadcasting.php new file mode 100644 index 0000000..2410485 --- /dev/null +++ b/config/broadcasting.php @@ -0,0 +1,71 @@ + env('BROADCAST_DRIVER', 'null'), + + /* + |-------------------------------------------------------------------------- + | Broadcast Connections + |-------------------------------------------------------------------------- + | + | Here you may define all of the broadcast connections that will be used + | to broadcast events to other systems or over websockets. Samples of + | each available type of connection are provided inside this array. + | + */ + + 'connections' => [ + + 'pusher' => [ + 'driver' => 'pusher', + 'key' => env('PUSHER_APP_KEY'), + 'secret' => env('PUSHER_APP_SECRET'), + 'app_id' => env('PUSHER_APP_ID'), + 'options' => [ + 'cluster' => env('PUSHER_APP_CLUSTER'), + 'host' => env('PUSHER_HOST') ?: 'api-'.env('PUSHER_APP_CLUSTER', 'mt1').'.pusher.com', + 'port' => env('PUSHER_PORT', 443), + 'scheme' => env('PUSHER_SCHEME', 'https'), + 'encrypted' => true, + 'useTLS' => env('PUSHER_SCHEME', 'https') === 'https', + ], + 'client_options' => [ + // Guzzle client options: https://docs.guzzlephp.org/en/stable/request-options.html + ], + ], + + 'ably' => [ + 'driver' => 'ably', + 'key' => env('ABLY_KEY'), + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'default', + ], + + 'log' => [ + 'driver' => 'log', + ], + + 'null' => [ + 'driver' => 'null', + ], + + ], + +]; diff --git a/config/cache.php b/config/cache.php new file mode 100644 index 0000000..33bb295 --- /dev/null +++ b/config/cache.php @@ -0,0 +1,110 @@ + env('CACHE_DRIVER', 'file'), + + /* + |-------------------------------------------------------------------------- + | Cache Stores + |-------------------------------------------------------------------------- + | + | Here you may define all of the cache "stores" for your application as + | well as their drivers. You may even define multiple stores for the + | same cache driver to group types of items stored in your caches. + | + | Supported drivers: "apc", "array", "database", "file", + | "memcached", "redis", "dynamodb", "octane", "null" + | + */ + + 'stores' => [ + + 'apc' => [ + 'driver' => 'apc', + ], + + 'array' => [ + 'driver' => 'array', + 'serialize' => false, + ], + + 'database' => [ + 'driver' => 'database', + 'table' => 'cache', + 'connection' => null, + 'lock_connection' => null, + ], + + 'file' => [ + 'driver' => 'file', + 'path' => storage_path('framework/cache/data'), + ], + + 'memcached' => [ + 'driver' => 'memcached', + 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'), + 'sasl' => [ + env('MEMCACHED_USERNAME'), + env('MEMCACHED_PASSWORD'), + ], + 'options' => [ + // Memcached::OPT_CONNECT_TIMEOUT => 2000, + ], + 'servers' => [ + [ + 'host' => env('MEMCACHED_HOST', '127.0.0.1'), + 'port' => env('MEMCACHED_PORT', 11211), + 'weight' => 100, + ], + ], + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'cache', + 'lock_connection' => 'default', + ], + + 'dynamodb' => [ + 'driver' => 'dynamodb', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + 'table' => env('DYNAMODB_CACHE_TABLE', 'cache'), + 'endpoint' => env('DYNAMODB_ENDPOINT'), + ], + + 'octane' => [ + 'driver' => 'octane', + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Cache Key Prefix + |-------------------------------------------------------------------------- + | + | When utilizing the APC, database, memcached, Redis, or DynamoDB cache + | stores there might be other applications using the same cache. For + | that reason, you may prefix every cache key to avoid collisions. + | + */ + + 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache_'), + +]; diff --git a/config/cors.php b/config/cors.php new file mode 100644 index 0000000..8a39e6d --- /dev/null +++ b/config/cors.php @@ -0,0 +1,34 @@ + ['api/*', 'sanctum/csrf-cookie'], + + 'allowed_methods' => ['*'], + + 'allowed_origins' => ['*'], + + 'allowed_origins_patterns' => [], + + 'allowed_headers' => ['*'], + + 'exposed_headers' => [], + + 'max_age' => 0, + + 'supports_credentials' => false, + +]; diff --git a/config/database.php b/config/database.php new file mode 100644 index 0000000..137ad18 --- /dev/null +++ b/config/database.php @@ -0,0 +1,151 @@ + env('DB_CONNECTION', 'mysql'), + + /* + |-------------------------------------------------------------------------- + | Database Connections + |-------------------------------------------------------------------------- + | + | Here are each of the database connections setup for your application. + | Of course, examples of configuring each database platform that is + | supported by Laravel is shown below to make development simple. + | + | + | All database work in Laravel is done through the PHP PDO facilities + | so make sure you have the driver for your particular database of + | choice installed on your machine before you begin development. + | + */ + + 'connections' => [ + + 'sqlite' => [ + 'driver' => 'sqlite', + 'url' => env('DATABASE_URL'), + 'database' => env('DB_DATABASE', database_path('database.sqlite')), + 'prefix' => '', + 'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true), + ], + + 'mysql' => [ + 'driver' => 'mysql', + 'url' => env('DATABASE_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '3306'), + 'database' => env('DB_DATABASE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'unix_socket' => env('DB_SOCKET', ''), + 'charset' => 'utf8mb4', + 'collation' => 'utf8mb4_unicode_ci', + 'prefix' => '', + 'prefix_indexes' => true, + 'strict' => true, + 'engine' => null, + 'options' => extension_loaded('pdo_mysql') ? array_filter([ + PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), + ]) : [], + ], + + 'pgsql' => [ + 'driver' => 'pgsql', + 'url' => env('DATABASE_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '5432'), + 'database' => env('DB_DATABASE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'charset' => 'utf8', + 'prefix' => '', + 'prefix_indexes' => true, + 'search_path' => 'public', + 'sslmode' => 'prefer', + ], + + 'sqlsrv' => [ + 'driver' => 'sqlsrv', + 'url' => env('DATABASE_URL'), + 'host' => env('DB_HOST', 'localhost'), + 'port' => env('DB_PORT', '1433'), + 'database' => env('DB_DATABASE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'charset' => 'utf8', + 'prefix' => '', + 'prefix_indexes' => true, + // 'encrypt' => env('DB_ENCRYPT', 'yes'), + // 'trust_server_certificate' => env('DB_TRUST_SERVER_CERTIFICATE', 'false'), + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Migration Repository Table + |-------------------------------------------------------------------------- + | + | This table keeps track of all the migrations that have already run for + | your application. Using this information, we can determine which of + | the migrations on disk haven't actually been run in the database. + | + */ + + 'migrations' => 'migrations', + + /* + |-------------------------------------------------------------------------- + | Redis Databases + |-------------------------------------------------------------------------- + | + | Redis is an open source, fast, and advanced key-value store that also + | provides a richer body of commands than a typical key-value system + | such as APC or Memcached. Laravel makes it easy to dig right in. + | + */ + + 'redis' => [ + + 'client' => env('REDIS_CLIENT', 'phpredis'), + + 'options' => [ + 'cluster' => env('REDIS_CLUSTER', 'redis'), + 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'), + ], + + 'default' => [ + 'url' => env('REDIS_URL'), + 'host' => env('REDIS_HOST', '127.0.0.1'), + 'username' => env('REDIS_USERNAME'), + 'password' => env('REDIS_PASSWORD'), + 'port' => env('REDIS_PORT', '6379'), + 'database' => env('REDIS_DB', '0'), + ], + + 'cache' => [ + 'url' => env('REDIS_URL'), + 'host' => env('REDIS_HOST', '127.0.0.1'), + 'username' => env('REDIS_USERNAME'), + 'password' => env('REDIS_PASSWORD'), + 'port' => env('REDIS_PORT', '6379'), + 'database' => env('REDIS_CACHE_DB', '1'), + ], + + ], + +]; diff --git a/config/filesystems.php b/config/filesystems.php new file mode 100644 index 0000000..e9d9dbd --- /dev/null +++ b/config/filesystems.php @@ -0,0 +1,76 @@ + env('FILESYSTEM_DISK', 'local'), + + /* + |-------------------------------------------------------------------------- + | Filesystem Disks + |-------------------------------------------------------------------------- + | + | Here you may configure as many filesystem "disks" as you wish, and you + | may even configure multiple disks of the same driver. Defaults have + | been set up for each driver as an example of the required values. + | + | Supported Drivers: "local", "ftp", "sftp", "s3" + | + */ + + 'disks' => [ + + 'local' => [ + 'driver' => 'local', + 'root' => storage_path('app'), + 'throw' => false, + ], + + 'public' => [ + 'driver' => 'local', + 'root' => storage_path('app/public'), + 'url' => env('APP_URL').'/storage', + 'visibility' => 'public', + 'throw' => false, + ], + + 's3' => [ + 'driver' => 's3', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION'), + 'bucket' => env('AWS_BUCKET'), + 'url' => env('AWS_URL'), + 'endpoint' => env('AWS_ENDPOINT'), + 'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false), + 'throw' => false, + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Symbolic Links + |-------------------------------------------------------------------------- + | + | Here you may configure the symbolic links that will be created when the + | `storage:link` Artisan command is executed. The array keys should be + | the locations of the links and the values should be their targets. + | + */ + + 'links' => [ + public_path('storage') => storage_path('app/public'), + ], + +]; diff --git a/config/hashing.php b/config/hashing.php new file mode 100644 index 0000000..bcd3be4 --- /dev/null +++ b/config/hashing.php @@ -0,0 +1,52 @@ + 'bcrypt', + + /* + |-------------------------------------------------------------------------- + | Bcrypt Options + |-------------------------------------------------------------------------- + | + | Here you may specify the configuration options that should be used when + | passwords are hashed using the Bcrypt algorithm. This will allow you + | to control the amount of time it takes to hash the given password. + | + */ + + 'bcrypt' => [ + 'rounds' => env('BCRYPT_ROUNDS', 10), + ], + + /* + |-------------------------------------------------------------------------- + | Argon Options + |-------------------------------------------------------------------------- + | + | Here you may specify the configuration options that should be used when + | passwords are hashed using the Argon algorithm. These will allow you + | to control the amount of time it takes to hash the given password. + | + */ + + 'argon' => [ + 'memory' => 65536, + 'threads' => 1, + 'time' => 4, + ], + +]; diff --git a/config/logging.php b/config/logging.php new file mode 100644 index 0000000..c44d276 --- /dev/null +++ b/config/logging.php @@ -0,0 +1,131 @@ + env('LOG_CHANNEL', 'stack'), + + /* + |-------------------------------------------------------------------------- + | Deprecations Log Channel + |-------------------------------------------------------------------------- + | + | This option controls the log channel that should be used to log warnings + | regarding deprecated PHP and library features. This allows you to get + | your application ready for upcoming major versions of dependencies. + | + */ + + 'deprecations' => [ + 'channel' => env('LOG_DEPRECATIONS_CHANNEL', 'null'), + 'trace' => false, + ], + + /* + |-------------------------------------------------------------------------- + | Log Channels + |-------------------------------------------------------------------------- + | + | Here you may configure the log channels for your application. Out of + | the box, Laravel uses the Monolog PHP logging library. This gives + | you a variety of powerful log handlers / formatters to utilize. + | + | Available Drivers: "single", "daily", "slack", "syslog", + | "errorlog", "monolog", + | "custom", "stack" + | + */ + + 'channels' => [ + 'stack' => [ + 'driver' => 'stack', + 'channels' => ['single'], + 'ignore_exceptions' => false, + ], + + 'single' => [ + 'driver' => 'single', + 'path' => storage_path('logs/laravel.log'), + 'level' => env('LOG_LEVEL', 'debug'), + 'replace_placeholders' => true, + ], + + 'daily' => [ + 'driver' => 'daily', + 'path' => storage_path('logs/laravel.log'), + 'level' => env('LOG_LEVEL', 'debug'), + 'days' => 14, + 'replace_placeholders' => true, + ], + + 'slack' => [ + 'driver' => 'slack', + 'url' => env('LOG_SLACK_WEBHOOK_URL'), + 'username' => 'Laravel Log', + 'emoji' => ':boom:', + 'level' => env('LOG_LEVEL', 'critical'), + 'replace_placeholders' => true, + ], + + 'papertrail' => [ + 'driver' => 'monolog', + 'level' => env('LOG_LEVEL', 'debug'), + 'handler' => env('LOG_PAPERTRAIL_HANDLER', SyslogUdpHandler::class), + 'handler_with' => [ + 'host' => env('PAPERTRAIL_URL'), + 'port' => env('PAPERTRAIL_PORT'), + 'connectionString' => 'tls://'.env('PAPERTRAIL_URL').':'.env('PAPERTRAIL_PORT'), + ], + 'processors' => [PsrLogMessageProcessor::class], + ], + + 'stderr' => [ + 'driver' => 'monolog', + 'level' => env('LOG_LEVEL', 'debug'), + 'handler' => StreamHandler::class, + 'formatter' => env('LOG_STDERR_FORMATTER'), + 'with' => [ + 'stream' => 'php://stderr', + ], + 'processors' => [PsrLogMessageProcessor::class], + ], + + 'syslog' => [ + 'driver' => 'syslog', + 'level' => env('LOG_LEVEL', 'debug'), + 'facility' => LOG_USER, + 'replace_placeholders' => true, + ], + + 'errorlog' => [ + 'driver' => 'errorlog', + 'level' => env('LOG_LEVEL', 'debug'), + 'replace_placeholders' => true, + ], + + 'null' => [ + 'driver' => 'monolog', + 'handler' => NullHandler::class, + ], + + 'emergency' => [ + 'path' => storage_path('logs/laravel.log'), + ], + ], + +]; diff --git a/config/mail.php b/config/mail.php new file mode 100644 index 0000000..e652bd0 --- /dev/null +++ b/config/mail.php @@ -0,0 +1,125 @@ + env('MAIL_MAILER', 'smtp'), + + /* + |-------------------------------------------------------------------------- + | Mailer Configurations + |-------------------------------------------------------------------------- + | + | Here you may configure all of the mailers used by your application plus + | their respective settings. Several examples have been configured for + | you and you are free to add your own as your application requires. + | + | Laravel supports a variety of mail "transport" drivers to be used while + | sending an e-mail. You will specify which one you are using for your + | mailers below. You are free to add additional mailers as required. + | + | Supported: "smtp", "sendmail", "mailgun", "ses", "ses-v2", + | "postmark", "log", "array", "failover" + | + */ + + 'mailers' => [ + 'smtp' => [ + 'transport' => 'smtp', + 'url' => env('MAIL_URL'), + 'host' => env('MAIL_HOST', 'smtp.mailgun.org'), + 'port' => env('MAIL_PORT', 587), + 'encryption' => env('MAIL_ENCRYPTION', 'tls'), + 'username' => env('MAIL_USERNAME'), + 'password' => env('MAIL_PASSWORD'), + 'timeout' => null, + 'local_domain' => env('MAIL_EHLO_DOMAIN'), + ], + + 'ses' => [ + 'transport' => 'ses', + ], + + 'mailgun' => [ + 'transport' => 'mailgun', + // 'client' => [ + // 'timeout' => 5, + // ], + ], + + 'postmark' => [ + 'transport' => 'postmark', + // 'client' => [ + // 'timeout' => 5, + // ], + ], + + 'sendmail' => [ + 'transport' => 'sendmail', + 'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'), + ], + + 'log' => [ + 'transport' => 'log', + 'channel' => env('MAIL_LOG_CHANNEL'), + ], + + 'array' => [ + 'transport' => 'array', + ], + + 'failover' => [ + 'transport' => 'failover', + 'mailers' => [ + 'smtp', + 'log', + ], + ], + ], + + /* + |-------------------------------------------------------------------------- + | Global "From" Address + |-------------------------------------------------------------------------- + | + | You may wish for all e-mails sent by your application to be sent from + | the same address. Here, you may specify a name and address that is + | used globally for all e-mails that are sent by your application. + | + */ + + 'from' => [ + 'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'), + 'name' => env('MAIL_FROM_NAME', 'Example'), + ], + + /* + |-------------------------------------------------------------------------- + | Markdown Mail Settings + |-------------------------------------------------------------------------- + | + | If you are using Markdown based email rendering, you may configure your + | theme and component paths here, allowing you to customize the design + | of the emails. Or, you may simply stick with the Laravel defaults! + | + */ + + 'markdown' => [ + 'theme' => 'default', + + 'paths' => [ + resource_path('views/vendor/mail'), + ], + ], + +]; diff --git a/config/queue.php b/config/queue.php new file mode 100644 index 0000000..01c6b05 --- /dev/null +++ b/config/queue.php @@ -0,0 +1,109 @@ + env('QUEUE_CONNECTION', 'sync'), + + /* + |-------------------------------------------------------------------------- + | Queue Connections + |-------------------------------------------------------------------------- + | + | Here you may configure the connection information for each server that + | is used by your application. A default configuration has been added + | for each back-end shipped with Laravel. You are free to add more. + | + | Drivers: "sync", "database", "beanstalkd", "sqs", "redis", "null" + | + */ + + 'connections' => [ + + 'sync' => [ + 'driver' => 'sync', + ], + + 'database' => [ + 'driver' => 'database', + 'table' => 'jobs', + 'queue' => 'default', + 'retry_after' => 90, + 'after_commit' => false, + ], + + 'beanstalkd' => [ + 'driver' => 'beanstalkd', + 'host' => 'localhost', + 'queue' => 'default', + 'retry_after' => 90, + 'block_for' => 0, + 'after_commit' => false, + ], + + 'sqs' => [ + 'driver' => 'sqs', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'), + 'queue' => env('SQS_QUEUE', 'default'), + 'suffix' => env('SQS_SUFFIX'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + 'after_commit' => false, + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'default', + 'queue' => env('REDIS_QUEUE', 'default'), + 'retry_after' => 90, + 'block_for' => null, + 'after_commit' => false, + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Job Batching + |-------------------------------------------------------------------------- + | + | The following options configure the database and table that store job + | batching information. These options can be updated to any database + | connection and table which has been defined by your application. + | + */ + + 'batching' => [ + 'database' => env('DB_CONNECTION', 'mysql'), + 'table' => 'job_batches', + ], + + /* + |-------------------------------------------------------------------------- + | Failed Queue Jobs + |-------------------------------------------------------------------------- + | + | These options configure the behavior of failed queue job logging so you + | can control which database and table are used to store the jobs that + | have failed. You may change them to any database / table you wish. + | + */ + + 'failed' => [ + 'driver' => env('QUEUE_FAILED_DRIVER', 'database-uuids'), + 'database' => env('DB_CONNECTION', 'mysql'), + 'table' => 'failed_jobs', + ], + +]; diff --git a/config/sanctum.php b/config/sanctum.php new file mode 100644 index 0000000..529cfdc --- /dev/null +++ b/config/sanctum.php @@ -0,0 +1,67 @@ + explode(',', env('SANCTUM_STATEFUL_DOMAINS', sprintf( + '%s%s', + 'localhost,localhost:3000,127.0.0.1,127.0.0.1:8000,::1', + Sanctum::currentApplicationUrlWithPort() + ))), + + /* + |-------------------------------------------------------------------------- + | Sanctum Guards + |-------------------------------------------------------------------------- + | + | This array contains the authentication guards that will be checked when + | Sanctum is trying to authenticate a request. If none of these guards + | are able to authenticate the request, Sanctum will use the bearer + | token that's present on an incoming request for authentication. + | + */ + + 'guard' => ['web'], + + /* + |-------------------------------------------------------------------------- + | Expiration Minutes + |-------------------------------------------------------------------------- + | + | This value controls the number of minutes until an issued token will be + | considered expired. If this value is null, personal access tokens do + | not expire. This won't tweak the lifetime of first-party sessions. + | + */ + + 'expiration' => null, + + /* + |-------------------------------------------------------------------------- + | Sanctum Middleware + |-------------------------------------------------------------------------- + | + | When authenticating your first-party SPA with Sanctum you may need to + | customize some of the middleware Sanctum uses while processing the + | request. You may change the middleware listed below as required. + | + */ + + 'middleware' => [ + 'verify_csrf_token' => App\Http\Middleware\VerifyCsrfToken::class, + 'encrypt_cookies' => App\Http\Middleware\EncryptCookies::class, + ], + +]; diff --git a/config/services.php b/config/services.php new file mode 100644 index 0000000..0ace530 --- /dev/null +++ b/config/services.php @@ -0,0 +1,34 @@ + [ + 'domain' => env('MAILGUN_DOMAIN'), + 'secret' => env('MAILGUN_SECRET'), + 'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'), + 'scheme' => 'https', + ], + + 'postmark' => [ + 'token' => env('POSTMARK_TOKEN'), + ], + + 'ses' => [ + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + ], + +]; diff --git a/config/session.php b/config/session.php new file mode 100644 index 0000000..8fed97c --- /dev/null +++ b/config/session.php @@ -0,0 +1,201 @@ + env('SESSION_DRIVER', 'file'), + + /* + |-------------------------------------------------------------------------- + | Session Lifetime + |-------------------------------------------------------------------------- + | + | Here you may specify the number of minutes that you wish the session + | to be allowed to remain idle before it expires. If you want them + | to immediately expire on the browser closing, set that option. + | + */ + + 'lifetime' => env('SESSION_LIFETIME', 120), + + 'expire_on_close' => false, + + /* + |-------------------------------------------------------------------------- + | Session Encryption + |-------------------------------------------------------------------------- + | + | This option allows you to easily specify that all of your session data + | should be encrypted before it is stored. All encryption will be run + | automatically by Laravel and you can use the Session like normal. + | + */ + + 'encrypt' => false, + + /* + |-------------------------------------------------------------------------- + | Session File Location + |-------------------------------------------------------------------------- + | + | When using the native session driver, we need a location where session + | files may be stored. A default has been set for you but a different + | location may be specified. This is only needed for file sessions. + | + */ + + 'files' => storage_path('framework/sessions'), + + /* + |-------------------------------------------------------------------------- + | Session Database Connection + |-------------------------------------------------------------------------- + | + | When using the "database" or "redis" session drivers, you may specify a + | connection that should be used to manage these sessions. This should + | correspond to a connection in your database configuration options. + | + */ + + 'connection' => env('SESSION_CONNECTION'), + + /* + |-------------------------------------------------------------------------- + | Session Database Table + |-------------------------------------------------------------------------- + | + | When using the "database" session driver, you may specify the table we + | should use to manage the sessions. Of course, a sensible default is + | provided for you; however, you are free to change this as needed. + | + */ + + 'table' => 'sessions', + + /* + |-------------------------------------------------------------------------- + | Session Cache Store + |-------------------------------------------------------------------------- + | + | While using one of the framework's cache driven session backends you may + | list a cache store that should be used for these sessions. This value + | must match with one of the application's configured cache "stores". + | + | Affects: "apc", "dynamodb", "memcached", "redis" + | + */ + + 'store' => env('SESSION_STORE'), + + /* + |-------------------------------------------------------------------------- + | Session Sweeping Lottery + |-------------------------------------------------------------------------- + | + | Some session drivers must manually sweep their storage location to get + | rid of old sessions from storage. Here are the chances that it will + | happen on a given request. By default, the odds are 2 out of 100. + | + */ + + 'lottery' => [2, 100], + + /* + |-------------------------------------------------------------------------- + | Session Cookie Name + |-------------------------------------------------------------------------- + | + | Here you may change the name of the cookie used to identify a session + | instance by ID. The name specified here will get used every time a + | new session cookie is created by the framework for every driver. + | + */ + + 'cookie' => env( + 'SESSION_COOKIE', + Str::slug(env('APP_NAME', 'laravel'), '_').'_session' + ), + + /* + |-------------------------------------------------------------------------- + | Session Cookie Path + |-------------------------------------------------------------------------- + | + | The session cookie path determines the path for which the cookie will + | be regarded as available. Typically, this will be the root path of + | your application but you are free to change this when necessary. + | + */ + + 'path' => '/', + + /* + |-------------------------------------------------------------------------- + | Session Cookie Domain + |-------------------------------------------------------------------------- + | + | Here you may change the domain of the cookie used to identify a session + | in your application. This will determine which domains the cookie is + | available to in your application. A sensible default has been set. + | + */ + + 'domain' => env('SESSION_DOMAIN'), + + /* + |-------------------------------------------------------------------------- + | HTTPS Only Cookies + |-------------------------------------------------------------------------- + | + | By setting this option to true, session cookies will only be sent back + | to the server if the browser has a HTTPS connection. This will keep + | the cookie from being sent to you when it can't be done securely. + | + */ + + 'secure' => env('SESSION_SECURE_COOKIE'), + + /* + |-------------------------------------------------------------------------- + | HTTP Access Only + |-------------------------------------------------------------------------- + | + | Setting this value to true will prevent JavaScript from accessing the + | value of the cookie and the cookie will only be accessible through + | the HTTP protocol. You are free to modify this option if needed. + | + */ + + 'http_only' => true, + + /* + |-------------------------------------------------------------------------- + | Same-Site Cookies + |-------------------------------------------------------------------------- + | + | This option determines how your cookies behave when cross-site requests + | take place, and can be used to mitigate CSRF attacks. By default, we + | will set this value to "lax" since this is a secure default value. + | + | Supported: "lax", "strict", "none", null + | + */ + + 'same_site' => 'lax', + +]; diff --git a/config/view.php b/config/view.php new file mode 100644 index 0000000..22b8a18 --- /dev/null +++ b/config/view.php @@ -0,0 +1,36 @@ + [ + resource_path('views'), + ], + + /* + |-------------------------------------------------------------------------- + | Compiled View Path + |-------------------------------------------------------------------------- + | + | This option determines where all the compiled Blade templates will be + | stored for your application. Typically, this is within the storage + | directory. However, as usual, you are free to change this value. + | + */ + + 'compiled' => env( + 'VIEW_COMPILED_PATH', + realpath(storage_path('framework/views')) + ), + +]; diff --git a/database/.gitignore b/database/.gitignore new file mode 100644 index 0000000..9b19b93 --- /dev/null +++ b/database/.gitignore @@ -0,0 +1 @@ +*.sqlite* diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php new file mode 100644 index 0000000..a6ecc0a --- /dev/null +++ b/database/factories/UserFactory.php @@ -0,0 +1,38 @@ + + */ +class UserFactory extends Factory +{ + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'name' => fake()->name(), + 'email' => fake()->unique()->safeEmail(), + 'email_verified_at' => now(), + 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password + 'remember_token' => Str::random(10), + ]; + } + + /** + * Indicate that the model's email address should be unverified. + */ + public function unverified(): static + { + return $this->state(fn (array $attributes) => [ + 'email_verified_at' => null, + ]); + } +} diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php new file mode 100644 index 0000000..444fafb --- /dev/null +++ b/database/migrations/2014_10_12_000000_create_users_table.php @@ -0,0 +1,32 @@ +id(); + $table->string('name'); + $table->string('email')->unique(); + $table->timestamp('email_verified_at')->nullable(); + $table->string('password'); + $table->rememberToken(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('users'); + } +}; diff --git a/database/migrations/2014_10_12_100000_create_password_reset_tokens_table.php b/database/migrations/2014_10_12_100000_create_password_reset_tokens_table.php new file mode 100644 index 0000000..81a7229 --- /dev/null +++ b/database/migrations/2014_10_12_100000_create_password_reset_tokens_table.php @@ -0,0 +1,28 @@ +string('email')->primary(); + $table->string('token'); + $table->timestamp('created_at')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('password_reset_tokens'); + } +}; diff --git a/database/migrations/2019_08_19_000000_create_failed_jobs_table.php b/database/migrations/2019_08_19_000000_create_failed_jobs_table.php new file mode 100644 index 0000000..249da81 --- /dev/null +++ b/database/migrations/2019_08_19_000000_create_failed_jobs_table.php @@ -0,0 +1,32 @@ +id(); + $table->string('uuid')->unique(); + $table->text('connection'); + $table->text('queue'); + $table->longText('payload'); + $table->longText('exception'); + $table->timestamp('failed_at')->useCurrent(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('failed_jobs'); + } +}; diff --git a/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php b/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php new file mode 100644 index 0000000..e828ad8 --- /dev/null +++ b/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php @@ -0,0 +1,33 @@ +id(); + $table->morphs('tokenable'); + $table->string('name'); + $table->string('token', 64)->unique(); + $table->text('abilities')->nullable(); + $table->timestamp('last_used_at')->nullable(); + $table->timestamp('expires_at')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('personal_access_tokens'); + } +}; diff --git a/database/migrations/2023_02_28_142147_create_oldmen_table.php b/database/migrations/2023_02_28_142147_create_oldmen_table.php new file mode 100644 index 0000000..91abf38 --- /dev/null +++ b/database/migrations/2023_02_28_142147_create_oldmen_table.php @@ -0,0 +1,60 @@ +id(); + $table->string('floor_name', 50)->nullable()->comment('楼栋'); + $table->string('agreement_no', 100)->nullable()->comment('协议号码'); + $table->string('name', 50)->default('')->comment('姓名'); + $table->unsignedTinyInteger('sex')->default(0)->comment('性别:1男2女'); + $table->dateTime('birthday')->nullable()->comment('出生日期'); + $table->string('card_no', 50)->unique(); + $table->string('card_city_code')->nullable()->comment('户籍地区代码'); + $table->unsignedBigInteger('card_province_id')->default(0)->comment('户籍-省'); + $table->unsignedBigInteger('card_city_id')->default(0)->comment('户籍-市'); + $table->unsignedBigInteger('card_area_id')->default(0)->comment('户籍-区'); + $table->string('card_address', 100)->default('')->comment('户籍-街道详细地址'); + $table->string('card_complete_address')->default('')->comment('户籍-完整地址'); + $table->string('client_name', 50)->default('')->comment('委托人名称'); + $table->string('client_city_code')->nullable()->comment('委托人-地区代码'); + $table->unsignedBigInteger('client_province_id')->default(0)->comment('委托人-省'); + $table->unsignedBigInteger('client_city_id')->default(0)->comment('委托人-市'); + $table->unsignedBigInteger('client_area_id')->default(0)->comment('委托人-区'); + $table->string('client_address', 100)->default('')->comment('委托人-街道详细地址'); + $table->string('client_complete_address')->default('')->comment('委托人-完整地址'); + $table->string('client_phone', 20)->default('')->comment('委托人-手机号'); + $table->unsignedBigInteger('nurse_lv')->default(0)->comment('护理级别'); + $table->unsignedTinyInteger('live_in')->default(0)->comment('入住状态:0未住1在住'); + $table->unsignedBigInteger('need_pay')->default(0)->comment('缴费状态:0正常1待续费2已欠费'); + $table->timestamp('live_in_at')->nullable()->comment('入住时间'); + $table->timestamp('avliable_at')->nullable()->comment('截至时间'); + $table->json('bonds')->nullable()->comment('保证金'); + + $table->timestamps(); + + $table->comment('客人信息'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('oldmen'); + } +}; diff --git a/database/migrations/2023_03_01_151919_create_zones_table.php b/database/migrations/2023_03_01_151919_create_zones_table.php new file mode 100644 index 0000000..3470922 --- /dev/null +++ b/database/migrations/2023_03_01_151919_create_zones_table.php @@ -0,0 +1,29 @@ +id(); + $table->string('key')->unique(); + $table->string('name')->comment('名字'); + $table->string('value')->nullable(); + $table->string('type_key')->nullable(); + $table->unsignedInteger('sort')->default(0)->comment('排序'); + $table->unsignedBigInteger('parent_id')->default(0)->comment('上级ID'); + $table->unsignedInteger('level')->default(1)->comment('层级'); + $table->string('path')->default('-')->comment('所有的父级ID'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('keywords'); + } +}; diff --git a/database/seeders/AdminMenuSeeder.php b/database/seeders/AdminMenuSeeder.php new file mode 100644 index 0000000..0ec05a4 --- /dev/null +++ b/database/seeders/AdminMenuSeeder.php @@ -0,0 +1,84 @@ + '主页', 'icon' => 'icon-park:home-two', 'url' => '/dashboard', 'is_home'=>1, 'order'=>1], + ['title' => '客人信息', 'icon' => 'icon-park:peoples-two', 'url' => '/oldmen', 'order'=>2], + ['title' => '入住管理', 'icon' => 'icon-park:building-four', 'url' => '', 'order'=>3, + 'children' => [ + ['title' => '入住列表', 'icon' => 'icon-park:people-plus', 'url' => '/live-in', 'order'=>1], + ['title' => '续费列表', 'icon' => 'icon-park:people-upload', 'url' => '/live-continue', 'order'=>2] + ], + ], + ['title' => '快捷操作', 'icon' => 'icon-park:double-right', 'url' => '', 'order'=>4, + 'children' => [ + ['title' => '入住', 'icon' => 'icon-park:people-plus-one', 'url' => '/live-in-do', 'order'=>1], + ['title' => '续费', 'icon' => 'icon-park:people-right', 'url' => '/live-continue-do', 'order'=>2], + ['title' => '结算', 'icon' => 'icon-park:people-delete-one', 'url' => '/live-exit-do', 'order'=>3] + ], + ], + ['title' => '费用管理', 'icon' => 'icon-park:financing-one', 'url' => '/', 'order'=>5, + 'children' => [ + ['title' => '费用明细', 'icon' => 'icon-park:database-network', 'url' => '/consts', 'order'=>1], + ['title' => '费用配置', 'icon' => 'icon-park:six-circular-connection', 'url' => '/const-setting', 'order'=>2], + ] + ], + ['title' => '系统管理', 'icon' => 'icon-park:setting', 'url' => '', 'order'=>10, + 'children' => [ + ['title' => '用户管理', 'icon' => 'icon-park:people-plus', 'url' => '/system/admin_users', 'order'=>1], + ['title' => '角色管理', 'icon' => 'icon-park:people-plus-one', 'url' => '/system/admin_roles', 'order'=>2], + ['title' => '权限管理', 'icon' => 'icon-park:key-one', 'url' => '/system/admin_permissions', 'order'=>3], + ['title' => '菜单管理', 'icon' => 'icon-park:menu-fold-one', 'url' => '/system/admin_menus', 'order'=>4], + ['title' => '字典管理', 'icon' => 'icon-park:arrow-keys', 'url' => '/keywords', 'order'=>5], + ['title' => '配置管理', 'icon' => 'icon-park:setting-two', 'url' => '/system/settings', 'order'=>6], + ], + ], + ]; + DB::table('admin_menus')->truncate(); + try { + DB::begintransaction(); + $this->createMenus($menus); + DB::commit(); + } catch (Throwable $th) { + DB::rollBack(); + report($th); + } + } + + public function createMenus(array $menus, $pid = 0) + { + foreach ($menus as $menu) { + $mm = AdminMenu::create([ + 'title' => $menu['title'], + 'icon' => $menu['icon'], + 'url' => $menu['url'], + 'parent_id' => $pid, + 'url_type' => $menu['url_type'] ?? 1, + 'visible' => $menu['visible'] ?? 1, + 'is_home' => $menu['is_home'] ?? 0, + 'order' => $menu['order'] ?? 0, + ]); + + if (isset($menu['children'])) { + $this->createMenus($menu['children'], $mm->id); + } + } + } +} diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php new file mode 100644 index 0000000..2ab3115 --- /dev/null +++ b/database/seeders/DatabaseSeeder.php @@ -0,0 +1,17 @@ +call(AdminMenuSeeder::class); + } +} diff --git a/database/seeders/KeywordSeeder.php b/database/seeders/KeywordSeeder.php new file mode 100644 index 0000000..aa6f20f --- /dev/null +++ b/database/seeders/KeywordSeeder.php @@ -0,0 +1,75 @@ + 'cost_nope', 'name' => '费用项', 'value' => '', 'list' => [ + ['key' => 'live_fee', 'name' => '入住费用项', 'type_key' => 'cost_nope', 'value' => '', 'list'=>[ + ['key' => 'live_base_fee', 'name' => '养老费', 'type_key' => 'live_fee', 'value' => ''], + ['key' => 'physical', 'name' => '体检', 'type_key' => 'live_fee', 'value' => ''], + ['key' => 'heating', 'name' => '暖气费', 'type_key' => 'live_fee', 'value' => ''], + ['key' => 'bedding', 'name' => '床上用品', 'type_key' => 'live_fee', 'value' => ''], + ]], + ['key' => 'continue_fee', 'name' => '续住费用项', 'type_key' => 'cost_nope', 'value' => '', 'list'=>[ + ['key' => 'continue_base_fee', 'name' => '养老费', 'type_key' => 'continue_fee', 'value' => ''], + ['key' => 'water_fee', 'name' => '水电费', 'type_key' => 'continue_fee', 'value' => ''], + ['key' => 'nurse_items', 'name' => '护理用品', 'type_key' => 'continue_fee', 'value' => ''], + ['key' => 'check_up', 'name' => '血糖检查', 'type_key' => 'continue_fee', 'value' => ''], + ['key' => 'use_car', 'name' => '出车', 'type_key' => 'continue_fee', 'value' => ''], + ]], + ['key' => 'bonds_fee', 'name' => '保证金', 'type_key' => 'cost_nope', 'value' => '', 'list'=>[ + ['key' => 'live_in', 'name' => '入住', 'type_key' => 'bonds_fee', 'value' => ''], + ['key' => 'room_items', 'name' => '房间物品', 'type_key' => 'bonds_fee', 'value' => ''], + ['key' => 'health', 'name' => '医疗', 'type_key' => 'bonds_fee', 'value' => ''], + ]], + ]], + ['key' => 'nurse_lv', 'name' => '护理等级', 'value' => '', 'list' => [ + ['key' => 'nurse_lv_1', 'name' => '一级护理', 'type_key' => 'nurse_lv', 'value' => ''], + ['key' => 'nurse_lv_2', 'name' => '二级护理', 'type_key' => 'nurse_lv', 'value' => ''], + ['key' => 'nurse_lv_3', 'name' => '三级护理', 'type_key' => 'nurse_lv', 'value' => ''], + ]], + ]; + + if ($list) { + $this->createKeywords($list); + } + } + + private function createKeywords($keywords, $parentType = null) + { + foreach ($keywords as $item) { + if ($parentType) { + $type = Keyword::create([ + 'name' => $item['name'], + 'key' => $item['key'] ?? $parentType->key.($parentType + 1), + 'type_key' => $parentType->key, + 'level' => ($parentType->level ?? 1) + 1, + 'parent_id' => $parentType->id, + ]); + } else { + $type = Keyword::create(Arr::except($item, 'list')); + } + $list = data_get($item, 'list'); + if ($list) { + $this->createKeywords($list, $type); + } + } + } +} diff --git a/database/sql/zone.sql b/database/sql/zone.sql new file mode 100644 index 0000000..5e58bd9 --- /dev/null +++ b/database/sql/zone.sql @@ -0,0 +1,3257 @@ +-- -------------------------------------------------------- +-- 主机: 127.0.0.1 +-- 服务器版本: 8.0.28 - MySQL Community Server - GPL +-- 服务器操作系统: Win64 +-- HeidiSQL 版本: 11.2.0.6213 +-- -------------------------------------------------------- + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET NAMES utf8 */; +/*!50503 SET NAMES utf8mb4 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- 导出 表 medical.zones 结构 +CREATE TABLE IF NOT EXISTS `zones` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `parent_id` bigint unsigned DEFAULT NULL COMMENT '父级 ID', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '省/市/区 名称', + `type` enum('province','city','area') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '类型', + `index` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '编码', + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=3225 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- 正在导出表 medical.zones 的数据:~3,221 rows (大约) +/*!40000 ALTER TABLE `zones` DISABLE KEYS */; +INSERT INTO `zones` (`id`, `parent_id`, `name`, `type`, `created_at`, `updated_at`, `index`) VALUES + (1, NULL, '北京市', 'province', '2021-12-07 17:50:54', '2022-09-06 14:56:07', 'B'), + (2, 1, '北京市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:07', 'B'), + (3, 2, '东城区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:07', 'D'), + (4, 2, '西城区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:07', 'X'), + (5, 2, '朝阳区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:07', 'C'), + (6, 2, '丰台区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:07', 'F'), + (7, 2, '石景山区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:07', 'S'), + (8, 2, '海淀区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:07', 'H'), + (9, 2, '门头沟区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:07', 'M'), + (10, 2, '房山区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:07', 'F'), + (11, 2, '通州区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:07', 'T'), + (12, 2, '顺义区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:07', 'S'), + (13, 2, '昌平区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:07', 'C'), + (14, 2, '大兴区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:07', 'D'), + (15, 2, '怀柔区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:07', 'H'), + (16, 2, '平谷区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:07', 'P'), + (17, 2, '密云区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:07', 'M'), + (18, 2, '延庆区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:07', 'Y'), + (19, NULL, '天津市', 'province', '2021-12-07 17:50:54', '2022-09-06 14:56:07', 'T'), + (20, 19, '天津市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:07', 'T'), + (21, 20, '和平区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:07', 'H'), + (22, 20, '河东区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:07', 'H'), + (23, 20, '河西区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:07', 'H'), + (24, 20, '南开区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:07', 'N'), + (25, 20, '河北区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:07', 'H'), + (26, 20, '红桥区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:07', 'H'), + (27, 20, '东丽区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:07', 'D'), + (28, 20, '西青区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:07', 'X'), + (29, 20, '津南区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'J'), + (30, 20, '北辰区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'B'), + (31, 20, '武清区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'W'), + (32, 20, '宝坻区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'B'), + (33, 20, '滨海新区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'B'), + (34, 20, '宁河区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'N'), + (35, 20, '静海区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'J'), + (36, 20, '蓟州区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'J'), + (37, NULL, '河北省', 'province', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'H'), + (38, 37, '石家庄市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'S'), + (39, 38, '长安区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'C'), + (40, 38, '桥西区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'Q'), + (41, 38, '新华区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'X'), + (42, 38, '井陉矿区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'J'), + (43, 38, '裕华区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'Y'), + (44, 38, '藁城区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'G'), + (45, 38, '鹿泉区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'L'), + (46, 38, '栾城区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'L'), + (47, 38, '井陉县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'J'), + (48, 38, '正定县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'Z'), + (49, 38, '行唐县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'X'), + (50, 38, '灵寿县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'L'), + (51, 38, '高邑县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'G'), + (52, 38, '深泽县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'S'), + (53, 38, '赞皇县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'Z'), + (54, 38, '无极县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'W'), + (55, 38, '平山县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'P'), + (56, 38, '元氏县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'Y'), + (57, 38, '赵县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'Z'), + (58, 38, '辛集市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'X'), + (59, 38, '晋州市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'J'), + (60, 38, '新乐市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'X'), + (61, 37, '唐山市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'T'), + (62, 61, '路南区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'L'), + (63, 61, '路北区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'L'), + (64, 61, '古冶区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'G'), + (65, 61, '开平区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'K'), + (66, 61, '丰南区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'F'), + (67, 61, '丰润区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'F'), + (68, 61, '曹妃甸区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'C'), + (69, 61, '滦南县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'L'), + (70, 61, '乐亭县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'L'), + (71, 61, '迁西县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'Q'), + (72, 61, '玉田县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'Y'), + (73, 61, '遵化市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'Z'), + (74, 61, '迁安市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'Q'), + (75, 61, '滦州市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'L'), + (76, 37, '秦皇岛市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'Q'), + (77, 76, '海港区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:08', 'H'), + (78, 76, '山海关区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'S'), + (79, 76, '北戴河区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'B'), + (80, 76, '抚宁区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'F'), + (81, 76, '青龙满族自治县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'Q'), + (82, 76, '昌黎县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'C'), + (83, 76, '卢龙县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'L'), + (84, 37, '邯郸市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'H'), + (85, 84, '邯山区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'H'), + (86, 84, '丛台区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'C'), + (87, 84, '复兴区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'F'), + (88, 84, '峰峰矿区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'F'), + (89, 84, '肥乡区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'F'), + (90, 84, '永年区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'Y'), + (91, 84, '临漳县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'L'), + (92, 84, '成安县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'C'), + (93, 84, '大名县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'D'), + (94, 84, '涉县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'S'), + (95, 84, '磁县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'C'), + (96, 84, '邱县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'Q'), + (97, 84, '鸡泽县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'J'), + (98, 84, '广平县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'G'), + (99, 84, '馆陶县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'G'), + (100, 84, '魏县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'W'), + (101, 84, '曲周县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'Q'), + (102, 84, '武安市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'W'), + (103, 37, '邢台市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'X'), + (104, 103, '襄都区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'X'), + (105, 103, '信都区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'X'), + (106, 103, '任泽区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'R'), + (107, 103, '南和区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'N'), + (108, 103, '临城县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'L'), + (109, 103, '内丘县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'N'), + (110, 103, '柏乡县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'B'), + (111, 103, '隆尧县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'L'), + (112, 103, '宁晋县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'N'), + (113, 103, '巨鹿县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'J'), + (114, 103, '新河县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'X'), + (115, 103, '广宗县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'G'), + (116, 103, '平乡县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'P'), + (117, 103, '威县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'W'), + (118, 103, '清河县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'Q'), + (119, 103, '临西县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'L'), + (120, 103, '南宫市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'N'), + (121, 103, '沙河市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'S'), + (122, 37, '保定市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'B'), + (123, 122, '竞秀区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'J'), + (124, 122, '莲池区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'L'), + (125, 122, '满城区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'M'), + (126, 122, '清苑区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:09', 'Q'), + (127, 122, '徐水区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'X'), + (128, 122, '涞水县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'L'), + (129, 122, '阜平县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'F'), + (130, 122, '定兴县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'D'), + (131, 122, '唐县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'T'), + (132, 122, '高阳县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'G'), + (133, 122, '容城县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'R'), + (134, 122, '涞源县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'L'), + (135, 122, '望都县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'W'), + (136, 122, '安新县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'A'), + (137, 122, '易县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'Y'), + (138, 122, '曲阳县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'Q'), + (139, 122, '蠡县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'L'), + (140, 122, '顺平县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'S'), + (141, 122, '博野县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'B'), + (142, 122, '雄县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'X'), + (143, 122, '涿州市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'Z'), + (144, 122, '定州市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'D'), + (145, 122, '安国市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'A'), + (146, 122, '高碑店市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'G'), + (147, 37, '张家口市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'Z'), + (148, 147, '桥东区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'Q'), + (149, 147, '桥西区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'Q'), + (150, 147, '宣化区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'X'), + (151, 147, '下花园区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'X'), + (152, 147, '万全区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'W'), + (153, 147, '崇礼区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'C'), + (154, 147, '张北县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'Z'), + (155, 147, '康保县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'K'), + (156, 147, '沽源县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'G'), + (157, 147, '尚义县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'S'), + (158, 147, '蔚县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'Y'), + (159, 147, '阳原县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'Y'), + (160, 147, '怀安县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'H'), + (161, 147, '怀来县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'H'), + (162, 147, '涿鹿县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'Z'), + (163, 147, '赤城县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'C'), + (164, 37, '承德市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'C'), + (165, 164, '双桥区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'S'), + (166, 164, '双滦区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'S'), + (167, 164, '鹰手营子矿区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'Y'), + (168, 164, '承德县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'C'), + (169, 164, '兴隆县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'X'), + (170, 164, '滦平县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'L'), + (171, 164, '隆化县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'L'), + (172, 164, '丰宁满族自治县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'F'), + (173, 164, '宽城满族自治县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'K'), + (174, 164, '围场满族蒙古族自治县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'W'), + (175, 164, '平泉市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'P'), + (176, 37, '沧州市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:10', 'C'), + (177, 176, '新华区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'X'), + (178, 176, '运河区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'Y'), + (179, 176, '沧县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'C'), + (180, 176, '青县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'Q'), + (181, 176, '东光县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'D'), + (182, 176, '海兴县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'H'), + (183, 176, '盐山县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'Y'), + (184, 176, '肃宁县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'S'), + (185, 176, '南皮县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'N'), + (186, 176, '吴桥县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'W'), + (187, 176, '献县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'X'), + (188, 176, '孟村回族自治县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'M'), + (189, 176, '泊头市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'B'), + (190, 176, '任丘市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'R'), + (191, 176, '黄骅市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'H'), + (192, 176, '河间市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'H'), + (193, 37, '廊坊市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'L'), + (194, 193, '安次区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'A'), + (195, 193, '广阳区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'G'), + (196, 193, '固安县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'G'), + (197, 193, '永清县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'Y'), + (198, 193, '香河县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'X'), + (199, 193, '大城县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'D'), + (200, 193, '文安县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'W'), + (201, 193, '大厂回族自治县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'D'), + (202, 193, '霸州市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'B'), + (203, 193, '三河市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'S'), + (204, 37, '衡水市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'H'), + (205, 204, '桃城区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'T'), + (206, 204, '冀州区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'J'), + (207, 204, '枣强县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'Z'), + (208, 204, '武邑县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'W'), + (209, 204, '武强县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'W'), + (210, 204, '饶阳县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'R'), + (211, 204, '安平县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'A'), + (212, 204, '故城县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'G'), + (213, 204, '景县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'J'), + (214, 204, '阜城县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'F'), + (215, 204, '深州市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'S'), + (216, NULL, '山西省', 'province', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'S'), + (217, 216, '太原市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'T'), + (218, 217, '小店区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'X'), + (219, 217, '迎泽区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'Y'), + (220, 217, '杏花岭区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'X'), + (221, 217, '尖草坪区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'J'), + (222, 217, '万柏林区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'W'), + (223, 217, '晋源区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'J'), + (224, 217, '清徐县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:11', 'Q'), + (225, 217, '阳曲县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'Y'), + (226, 217, '娄烦县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'L'), + (227, 217, '古交市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'G'), + (228, 216, '大同市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'D'), + (229, 228, '新荣区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'X'), + (230, 228, '平城区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'P'), + (231, 228, '云冈区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'Y'), + (232, 228, '云州区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'Y'), + (233, 228, '阳高县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'Y'), + (234, 228, '天镇县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'T'), + (235, 228, '广灵县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'G'), + (236, 228, '灵丘县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'L'), + (237, 228, '浑源县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'H'), + (238, 228, '左云县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'Z'), + (239, 216, '阳泉市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'Y'), + (240, 239, '城区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'C'), + (241, 239, '矿区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'K'), + (242, 239, '郊区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'J'), + (243, 239, '平定县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'P'), + (244, 239, '盂县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'Y'), + (245, 216, '长治市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'C'), + (246, 245, '潞州区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'L'), + (247, 245, '上党区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'S'), + (248, 245, '屯留区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'T'), + (249, 245, '潞城区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'L'), + (250, 245, '襄垣县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'X'), + (251, 245, '平顺县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'P'), + (252, 245, '黎城县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'L'), + (253, 245, '壶关县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'H'), + (254, 245, '长子县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'C'), + (255, 245, '武乡县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'W'), + (256, 245, '沁县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'Q'), + (257, 245, '沁源县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'Q'), + (258, 216, '晋城市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'J'), + (259, 258, '城区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'C'), + (260, 258, '沁水县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'Q'), + (261, 258, '阳城县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'Y'), + (262, 258, '陵川县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'L'), + (263, 258, '泽州县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'Z'), + (264, 258, '高平市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'G'), + (265, 216, '朔州市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'S'), + (266, 265, '朔城区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'S'), + (267, 265, '平鲁区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'P'), + (268, 265, '山阴县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'S'), + (269, 265, '应县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'Y'), + (270, 265, '右玉县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'Y'), + (271, 265, '怀仁市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'H'), + (272, 216, '晋中市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'J'), + (273, 272, '榆次区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:12', 'Y'), + (274, 272, '太谷区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'T'), + (275, 272, '榆社县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'Y'), + (276, 272, '左权县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'Z'), + (277, 272, '和顺县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'H'), + (278, 272, '昔阳县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'X'), + (279, 272, '寿阳县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'S'), + (280, 272, '祁县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'Q'), + (281, 272, '平遥县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'P'), + (282, 272, '灵石县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'L'), + (283, 272, '介休市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'J'), + (284, 216, '运城市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'Y'), + (285, 284, '盐湖区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'Y'), + (286, 284, '临猗县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'L'), + (287, 284, '万荣县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'W'), + (288, 284, '闻喜县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'W'), + (289, 284, '稷山县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'J'), + (290, 284, '新绛县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'X'), + (291, 284, '绛县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'J'), + (292, 284, '垣曲县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'Y'), + (293, 284, '夏县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'X'), + (294, 284, '平陆县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'P'), + (295, 284, '芮城县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'R'), + (296, 284, '永济市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'Y'), + (297, 284, '河津市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'H'), + (298, 216, '忻州市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'X'), + (299, 298, '忻府区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'X'), + (300, 298, '定襄县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'D'), + (301, 298, '五台县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'W'), + (302, 298, '代县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'D'), + (303, 298, '繁峙县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'F'), + (304, 298, '宁武县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'N'), + (305, 298, '静乐县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'J'), + (306, 298, '神池县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'S'), + (307, 298, '五寨县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'W'), + (308, 298, '岢岚县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'K'), + (309, 298, '河曲县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'H'), + (310, 298, '保德县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'B'), + (311, 298, '偏关县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'P'), + (312, 298, '原平市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'Y'), + (313, 216, '临汾市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'L'), + (314, 313, '尧都区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'Y'), + (315, 313, '曲沃县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'Q'), + (316, 313, '翼城县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'Y'), + (317, 313, '襄汾县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'X'), + (318, 313, '洪洞县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'H'), + (319, 313, '古县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'G'), + (320, 313, '安泽县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'A'), + (321, 313, '浮山县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'F'), + (322, 313, '吉县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:13', 'J'), + (323, 313, '乡宁县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'X'), + (324, 313, '大宁县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'D'), + (325, 313, '隰县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'X'), + (326, 313, '永和县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'Y'), + (327, 313, '蒲县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'P'), + (328, 313, '汾西县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'F'), + (329, 313, '侯马市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'H'), + (330, 313, '霍州市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'H'), + (331, 216, '吕梁市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'L'), + (332, 331, '离石区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'L'), + (333, 331, '文水县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'W'), + (334, 331, '交城县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'J'), + (335, 331, '兴县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'X'), + (336, 331, '临县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'L'), + (337, 331, '柳林县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'L'), + (338, 331, '石楼县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'S'), + (339, 331, '岚县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'L'), + (340, 331, '方山县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'F'), + (341, 331, '中阳县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'Z'), + (342, 331, '交口县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'J'), + (343, 331, '孝义市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'X'), + (344, 331, '汾阳市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'F'), + (345, NULL, '内蒙古自治区', 'province', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'N'), + (346, 345, '呼和浩特市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'H'), + (347, 346, '新城区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'X'), + (348, 346, '回民区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'H'), + (349, 346, '玉泉区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'Y'), + (350, 346, '赛罕区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'S'), + (351, 346, '土默特左旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'T'), + (352, 346, '托克托县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'T'), + (353, 346, '和林格尔县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'H'), + (354, 346, '清水河县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'Q'), + (355, 346, '武川县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'W'), + (356, 345, '包头市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'B'), + (357, 356, '东河区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'D'), + (358, 356, '昆都仑区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'K'), + (359, 356, '青山区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'Q'), + (360, 356, '石拐区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'S'), + (361, 356, '白云鄂博矿区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'B'), + (362, 356, '九原区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'J'), + (363, 356, '土默特右旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'T'), + (364, 356, '固阳县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'G'), + (365, 356, '达尔罕茂明安联合旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'D'), + (366, 345, '乌海市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'W'), + (367, 366, '海勃湾区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'H'), + (368, 366, '海南区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'H'), + (369, 366, '乌达区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'W'), + (370, 345, '赤峰市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'C'), + (371, 370, '红山区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:14', 'H'), + (372, 370, '元宝山区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'Y'), + (373, 370, '松山区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'S'), + (374, 370, '阿鲁科尔沁旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'A'), + (375, 370, '巴林左旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'B'), + (376, 370, '巴林右旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'B'), + (377, 370, '林西县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'L'), + (378, 370, '克什克腾旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'K'), + (379, 370, '翁牛特旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'W'), + (380, 370, '喀喇沁旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'K'), + (381, 370, '宁城县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'N'), + (382, 370, '敖汉旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'A'), + (383, 345, '通辽市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'T'), + (384, 383, '科尔沁区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'K'), + (385, 383, '科尔沁左翼中旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'K'), + (386, 383, '科尔沁左翼后旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'K'), + (387, 383, '开鲁县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'K'), + (388, 383, '库伦旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'K'), + (389, 383, '奈曼旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'N'), + (390, 383, '扎鲁特旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'Z'), + (391, 383, '霍林郭勒市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'H'), + (392, 345, '鄂尔多斯市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'E'), + (393, 392, '东胜区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'D'), + (394, 392, '康巴什区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'K'), + (395, 392, '达拉特旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'D'), + (396, 392, '准格尔旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'Z'), + (397, 392, '鄂托克前旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'E'), + (398, 392, '鄂托克旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'E'), + (399, 392, '杭锦旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'H'), + (400, 392, '乌审旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'W'), + (401, 392, '伊金霍洛旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'Y'), + (402, 345, '呼伦贝尔市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'H'), + (403, 402, '海拉尔区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'H'), + (404, 402, '扎赉诺尔区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'Z'), + (405, 402, '阿荣旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'A'), + (406, 402, '莫力达瓦达斡尔族自治旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'M'), + (407, 402, '鄂伦春自治旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'E'), + (408, 402, '鄂温克族自治旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'E'), + (409, 402, '陈巴尔虎旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'C'), + (410, 402, '新巴尔虎左旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'X'), + (411, 402, '新巴尔虎右旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'X'), + (412, 402, '满洲里市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'M'), + (413, 402, '牙克石市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'Y'), + (414, 402, '扎兰屯市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'Z'), + (415, 402, '额尔古纳市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'E'), + (416, 402, '根河市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'G'), + (417, 345, '巴彦淖尔市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'B'), + (418, 417, '临河区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'L'), + (419, 417, '五原县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:15', 'W'), + (420, 417, '磴口县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'D'), + (421, 417, '乌拉特前旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'W'), + (422, 417, '乌拉特中旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'W'), + (423, 417, '乌拉特后旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'W'), + (424, 417, '杭锦后旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'H'), + (425, 345, '乌兰察布市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'W'), + (426, 425, '集宁区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'J'), + (427, 425, '卓资县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'Z'), + (428, 425, '化德县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'H'), + (429, 425, '商都县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'S'), + (430, 425, '兴和县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'X'), + (431, 425, '凉城县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'L'), + (432, 425, '察哈尔右翼前旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'C'), + (433, 425, '察哈尔右翼中旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'C'), + (434, 425, '察哈尔右翼后旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'C'), + (435, 425, '四子王旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'S'), + (436, 425, '丰镇市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'F'), + (437, 345, '兴安盟', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'X'), + (438, 437, '乌兰浩特市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'W'), + (439, 437, '阿尔山市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'A'), + (440, 437, '科尔沁右翼前旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'K'), + (441, 437, '科尔沁右翼中旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'K'), + (442, 437, '扎赉特旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'Z'), + (443, 437, '突泉县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'T'), + (444, 345, '锡林郭勒盟', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'X'), + (445, 444, '二连浩特市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'E'), + (446, 444, '锡林浩特市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'X'), + (447, 444, '阿巴嘎旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'A'), + (448, 444, '苏尼特左旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'S'), + (449, 444, '苏尼特右旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'S'), + (450, 444, '东乌珠穆沁旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'D'), + (451, 444, '西乌珠穆沁旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'X'), + (452, 444, '太仆寺旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'T'), + (453, 444, '镶黄旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'X'), + (454, 444, '正镶白旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'Z'), + (455, 444, '正蓝旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'Z'), + (456, 444, '多伦县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'D'), + (457, 345, '阿拉善盟', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'A'), + (458, 457, '阿拉善左旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'A'), + (459, 457, '阿拉善右旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'A'), + (460, 457, '额济纳旗', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'E'), + (461, NULL, '辽宁省', 'province', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'L'), + (462, 461, '沈阳市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'S'), + (463, 462, '和平区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'H'), + (464, 462, '沈河区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'S'), + (465, 462, '大东区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'D'), + (466, 462, '皇姑区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'H'), + (467, 462, '铁西区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:16', 'T'), + (468, 462, '苏家屯区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:17', 'S'), + (469, 462, '浑南区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:17', 'H'), + (470, 462, '沈北新区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:17', 'S'), + (471, 462, '于洪区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:17', 'Y'), + (472, 462, '辽中区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:17', 'L'), + (473, 462, '康平县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:17', 'K'), + (474, 462, '法库县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:17', 'F'), + (475, 462, '新民市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:17', 'X'), + (476, 461, '大连市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:17', 'D'), + (477, 476, '中山区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:17', 'Z'), + (478, 476, '西岗区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:17', 'X'), + (479, 476, '沙河口区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:17', 'S'), + (480, 476, '甘井子区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:17', 'G'), + (481, 476, '旅顺口区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:17', 'L'), + (482, 476, '金州区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:17', 'J'), + (483, 476, '普兰店区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:17', 'P'), + (484, 476, '长海县', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:17', 'C'), + (485, 476, '瓦房店市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:17', 'W'), + (486, 476, '庄河市', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:17', 'Z'), + (487, 461, '鞍山市', 'city', '2021-12-07 17:50:54', '2022-09-06 14:56:17', 'A'), + (488, 487, '铁东区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:17', 'T'), + (489, 487, '铁西区', 'area', '2021-12-07 17:50:54', '2022-09-06 14:56:17', 'T'), + (490, 487, '立山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:17', 'L'), + (491, 487, '千山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:17', 'Q'), + (492, 487, '台安县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:17', 'T'), + (493, 487, '岫岩满族自治县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:17', 'X'), + (494, 487, '海城市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:17', 'H'), + (495, 461, '抚顺市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:17', 'F'), + (496, 495, '新抚区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:17', 'X'), + (497, 495, '东洲区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:17', 'D'), + (498, 495, '望花区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:17', 'W'), + (499, 495, '顺城区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:17', 'S'), + (500, 495, '抚顺县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:17', 'F'), + (501, 495, '新宾满族自治县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:17', 'X'), + (502, 495, '清原满族自治县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:17', 'Q'), + (503, 461, '本溪市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:17', 'B'), + (504, 503, '平山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:17', 'P'), + (505, 503, '溪湖区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:17', 'X'), + (506, 503, '明山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:17', 'M'), + (507, 503, '南芬区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:17', 'N'), + (508, 503, '本溪满族自治县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:17', 'B'), + (509, 503, '桓仁满族自治县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:17', 'H'), + (510, 461, '丹东市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:17', 'D'), + (511, 510, '元宝区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:17', 'Y'), + (512, 510, '振兴区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:17', 'Z'), + (513, 510, '振安区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:17', 'Z'), + (514, 510, '宽甸满族自治县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:17', 'K'), + (515, 510, '东港市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:17', 'D'), + (516, 510, '凤城市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'F'), + (517, 461, '锦州市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'J'), + (518, 517, '古塔区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'G'), + (519, 517, '凌河区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'L'), + (520, 517, '太和区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'T'), + (521, 517, '黑山县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'H'), + (522, 517, '义县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'Y'), + (523, 517, '凌海市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'L'), + (524, 517, '北镇市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'B'), + (525, 461, '营口市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'Y'), + (526, 525, '站前区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'Z'), + (527, 525, '西市区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'X'), + (528, 525, '鲅鱼圈区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'B'), + (529, 525, '老边区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'L'), + (530, 525, '盖州市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'G'), + (531, 525, '大石桥市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'D'), + (532, 461, '阜新市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'F'), + (533, 532, '海州区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'H'), + (534, 532, '新邱区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'X'), + (535, 532, '太平区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'T'), + (536, 532, '清河门区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'Q'), + (537, 532, '细河区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'X'), + (538, 532, '阜新蒙古族自治县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'F'), + (539, 532, '彰武县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'Z'), + (540, 461, '辽阳市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'L'), + (541, 540, '白塔区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'B'), + (542, 540, '文圣区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'W'), + (543, 540, '宏伟区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'H'), + (544, 540, '弓长岭区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'G'), + (545, 540, '太子河区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'T'), + (546, 540, '辽阳县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'L'), + (547, 540, '灯塔市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'D'), + (548, 461, '盘锦市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'P'), + (549, 548, '双台子区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'S'), + (550, 548, '兴隆台区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'X'), + (551, 548, '大洼区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'D'), + (552, 548, '盘山县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'P'), + (553, 461, '铁岭市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'T'), + (554, 553, '银州区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'Y'), + (555, 553, '清河区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'Q'), + (556, 553, '铁岭县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'T'), + (557, 553, '西丰县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'X'), + (558, 553, '昌图县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'C'), + (559, 553, '调兵山市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'D'), + (560, 553, '开原市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'K'), + (561, 461, '朝阳市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'Z'), + (562, 561, '双塔区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'S'), + (563, 561, '龙城区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'L'), + (564, 561, '朝阳县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:18', 'Z'), + (565, 561, '建平县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'J'), + (566, 561, '喀喇沁左翼蒙古族自治县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'K'), + (567, 561, '北票市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'B'), + (568, 561, '凌源市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'L'), + (569, 461, '葫芦岛市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'H'), + (570, 569, '连山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'L'), + (571, 569, '龙港区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'L'), + (572, 569, '南票区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'N'), + (573, 569, '绥中县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'S'), + (574, 569, '建昌县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'J'), + (575, 569, '兴城市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'X'), + (576, NULL, '吉林省', 'province', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'J'), + (577, 576, '长春市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'C'), + (578, 577, '南关区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'N'), + (579, 577, '宽城区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'K'), + (580, 577, '朝阳区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'C'), + (581, 577, '二道区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'E'), + (582, 577, '绿园区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'L'), + (583, 577, '双阳区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'S'), + (584, 577, '九台区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'J'), + (585, 577, '农安县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'N'), + (586, 577, '榆树市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'Y'), + (587, 577, '德惠市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'D'), + (588, 577, '公主岭市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'G'), + (589, 576, '吉林市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'J'), + (590, 589, '昌邑区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'C'), + (591, 589, '龙潭区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'L'), + (592, 589, '船营区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'C'), + (593, 589, '丰满区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'F'), + (594, 589, '永吉县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'Y'), + (595, 589, '蛟河市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'J'), + (596, 589, '桦甸市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'H'), + (597, 589, '舒兰市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'S'), + (598, 589, '磐石市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'P'), + (599, 576, '四平市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'S'), + (600, 599, '铁西区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'T'), + (601, 599, '铁东区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'T'), + (602, 599, '梨树县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'L'), + (603, 599, '伊通满族自治县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'Y'), + (604, 599, '双辽市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'S'), + (605, 576, '辽源市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'L'), + (606, 605, '龙山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'L'), + (607, 605, '西安区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'X'), + (608, 605, '东丰县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'D'), + (609, 605, '东辽县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'D'), + (610, 576, '通化市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'T'), + (611, 610, '东昌区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'D'), + (612, 610, '二道江区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'E'), + (613, 610, '通化县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:19', 'T'), + (614, 610, '辉南县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'H'), + (615, 610, '柳河县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'L'), + (616, 610, '梅河口市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'M'), + (617, 610, '集安市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'J'), + (618, 576, '白山市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'B'), + (619, 618, '浑江区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'H'), + (620, 618, '江源区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'J'), + (621, 618, '抚松县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'F'), + (622, 618, '靖宇县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'J'), + (623, 618, '长白朝鲜族自治县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'C'), + (624, 618, '临江市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'L'), + (625, 576, '松原市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'S'), + (626, 625, '宁江区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'N'), + (627, 625, '前郭尔罗斯蒙古族自治县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'Q'), + (628, 625, '长岭县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'C'), + (629, 625, '乾安县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'Q'), + (630, 625, '扶余市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'F'), + (631, 576, '白城市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'B'), + (632, 631, '洮北区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'T'), + (633, 631, '镇赉县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'Z'), + (634, 631, '通榆县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'T'), + (635, 631, '洮南市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'T'), + (636, 631, '大安市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'D'), + (637, 576, '延边朝鲜族自治州', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'Y'), + (638, 637, '延吉市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'Y'), + (639, 637, '图们市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'T'), + (640, 637, '敦化市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'D'), + (641, 637, '珲春市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'H'), + (642, 637, '龙井市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'L'), + (643, 637, '和龙市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'H'), + (644, 637, '汪清县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'W'), + (645, 637, '安图县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'A'), + (646, NULL, '黑龙江省', 'province', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'H'), + (647, 646, '哈尔滨市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'H'), + (648, 647, '道里区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'D'), + (649, 647, '南岗区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'N'), + (650, 647, '道外区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'D'), + (651, 647, '平房区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'P'), + (652, 647, '松北区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'S'), + (653, 647, '香坊区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'X'), + (654, 647, '呼兰区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'H'), + (655, 647, '阿城区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'A'), + (656, 647, '双城区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'S'), + (657, 647, '依兰县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'Y'), + (658, 647, '方正县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'F'), + (659, 647, '宾县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'B'), + (660, 647, '巴彦县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'B'), + (661, 647, '木兰县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:20', 'M'), + (662, 647, '通河县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'T'), + (663, 647, '延寿县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'Y'), + (664, 647, '尚志市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'S'), + (665, 647, '五常市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'W'), + (666, 646, '齐齐哈尔市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'Q'), + (667, 666, '龙沙区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'L'), + (668, 666, '建华区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'J'), + (669, 666, '铁锋区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'T'), + (670, 666, '昂昂溪区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'A'), + (671, 666, '富拉尔基区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'F'), + (672, 666, '碾子山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'N'), + (673, 666, '梅里斯达斡尔族区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'M'), + (674, 666, '龙江县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'L'), + (675, 666, '依安县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'Y'), + (676, 666, '泰来县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'T'), + (677, 666, '甘南县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'G'), + (678, 666, '富裕县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'F'), + (679, 666, '克山县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'K'), + (680, 666, '克东县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'K'), + (681, 666, '拜泉县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'B'), + (682, 666, '讷河市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'N'), + (683, 646, '鸡西市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'J'), + (684, 683, '鸡冠区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'J'), + (685, 683, '恒山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'H'), + (686, 683, '滴道区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'D'), + (687, 683, '梨树区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'L'), + (688, 683, '城子河区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'C'), + (689, 683, '麻山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'M'), + (690, 683, '鸡东县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'J'), + (691, 683, '虎林市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'H'), + (692, 683, '密山市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'M'), + (693, 646, '鹤岗市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'H'), + (694, 693, '向阳区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'X'), + (695, 693, '工农区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'G'), + (696, 693, '南山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'N'), + (697, 693, '兴安区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'X'), + (698, 693, '东山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'D'), + (699, 693, '兴山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'X'), + (700, 693, '萝北县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'L'), + (701, 693, '绥滨县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'S'), + (702, 646, '双鸭山市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'S'), + (703, 702, '尖山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'J'), + (704, 702, '岭东区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'L'), + (705, 702, '四方台区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'S'), + (706, 702, '宝山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'B'), + (707, 702, '集贤县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'J'), + (708, 702, '友谊县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'Y'), + (709, 702, '宝清县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'B'), + (710, 702, '饶河县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:21', 'R'), + (711, 646, '大庆市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'D'), + (712, 711, '萨尔图区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'S'), + (713, 711, '龙凤区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'L'), + (714, 711, '让胡路区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'R'), + (715, 711, '红岗区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'H'), + (716, 711, '大同区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'D'), + (717, 711, '肇州县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'Z'), + (718, 711, '肇源县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'Z'), + (719, 711, '林甸县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'L'), + (720, 711, '杜尔伯特蒙古族自治县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'D'), + (721, 646, '伊春市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'Y'), + (722, 721, '伊美区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'Y'), + (723, 721, '乌翠区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'W'), + (724, 721, '友好区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'Y'), + (725, 721, '嘉荫县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'J'), + (726, 721, '汤旺县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'T'), + (727, 721, '丰林县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'F'), + (728, 721, '大箐山县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'D'), + (729, 721, '南岔县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'N'), + (730, 721, '金林区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'J'), + (731, 721, '铁力市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'T'), + (732, 646, '佳木斯市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'J'), + (733, 732, '向阳区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'X'), + (734, 732, '前进区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'Q'), + (735, 732, '东风区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'D'), + (736, 732, '郊区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'J'), + (737, 732, '桦南县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'H'), + (738, 732, '桦川县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'H'), + (739, 732, '汤原县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'T'), + (740, 732, '同江市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'T'), + (741, 732, '富锦市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'F'), + (742, 732, '抚远市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'F'), + (743, 646, '七台河市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'Q'), + (744, 743, '新兴区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'X'), + (745, 743, '桃山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'T'), + (746, 743, '茄子河区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'Q'), + (747, 743, '勃利县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'B'), + (748, 646, '牡丹江市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'M'), + (749, 748, '东安区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'D'), + (750, 748, '阳明区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'Y'), + (751, 748, '爱民区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'A'), + (752, 748, '西安区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'X'), + (753, 748, '林口县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'L'), + (754, 748, '绥芬河市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'S'), + (755, 748, '海林市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'H'), + (756, 748, '宁安市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'N'), + (757, 748, '穆棱市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'M'), + (758, 748, '东宁市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:22', 'D'), + (759, 646, '黑河市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'H'), + (760, 759, '爱辉区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'A'), + (761, 759, '逊克县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'X'), + (762, 759, '孙吴县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'S'), + (763, 759, '北安市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'B'), + (764, 759, '五大连池市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'W'), + (765, 759, '嫩江市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'N'), + (766, 646, '绥化市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'S'), + (767, 766, '北林区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'B'), + (768, 766, '望奎县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'W'), + (769, 766, '兰西县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'L'), + (770, 766, '青冈县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'Q'), + (771, 766, '庆安县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'Q'), + (772, 766, '明水县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'M'), + (773, 766, '绥棱县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'S'), + (774, 766, '安达市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'A'), + (775, 766, '肇东市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'Z'), + (776, 766, '海伦市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'H'), + (777, 646, '大兴安岭地区', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'D'), + (778, 777, '漠河市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'M'), + (779, 777, '呼玛县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'H'), + (780, 777, '塔河县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'T'), + (781, NULL, '上海市', 'province', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'S'), + (782, 781, '上海市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'S'), + (783, 782, '黄浦区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'H'), + (784, 782, '徐汇区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'X'), + (785, 782, '长宁区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'C'), + (786, 782, '静安区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'J'), + (787, 782, '普陀区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'P'), + (788, 782, '虹口区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'H'), + (789, 782, '杨浦区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'Y'), + (790, 782, '闵行区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'M'), + (791, 782, '宝山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'B'), + (792, 782, '嘉定区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'J'), + (793, 782, '浦东新区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'P'), + (794, 782, '金山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'J'), + (795, 782, '松江区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'S'), + (796, 782, '青浦区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'Q'), + (797, 782, '奉贤区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'F'), + (798, 782, '崇明区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'C'), + (799, NULL, '江苏省', 'province', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'J'), + (800, 799, '南京市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'N'), + (801, 800, '玄武区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'X'), + (802, 800, '秦淮区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'Q'), + (803, 800, '建邺区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'J'), + (804, 800, '鼓楼区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'G'), + (805, 800, '浦口区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'P'), + (806, 800, '栖霞区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'Q'), + (807, 800, '雨花台区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:23', 'Y'), + (808, 800, '江宁区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'J'), + (809, 800, '六合区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'L'), + (810, 800, '溧水区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'L'), + (811, 800, '高淳区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'G'), + (812, 799, '无锡市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'W'), + (813, 812, '锡山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'X'), + (814, 812, '惠山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'H'), + (815, 812, '滨湖区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'B'), + (816, 812, '梁溪区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'L'), + (817, 812, '新吴区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'X'), + (818, 812, '江阴市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'J'), + (819, 812, '宜兴市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'Y'), + (820, 799, '徐州市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'X'), + (821, 820, '鼓楼区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'G'), + (822, 820, '云龙区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'Y'), + (823, 820, '贾汪区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'J'), + (824, 820, '泉山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'Q'), + (825, 820, '铜山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'T'), + (826, 820, '丰县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'F'), + (827, 820, '沛县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'P'), + (828, 820, '睢宁县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'S'), + (829, 820, '新沂市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'X'), + (830, 820, '邳州市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'P'), + (831, 799, '常州市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'C'), + (832, 831, '天宁区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'T'), + (833, 831, '钟楼区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'Z'), + (834, 831, '新北区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'X'), + (835, 831, '武进区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'W'), + (836, 831, '金坛区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'J'), + (837, 831, '溧阳市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'L'), + (838, 799, '苏州市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'S'), + (839, 838, '虎丘区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'H'), + (840, 838, '吴中区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'W'), + (841, 838, '相城区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'X'), + (842, 838, '姑苏区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'G'), + (843, 838, '吴江区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'W'), + (844, 838, '常熟市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'C'), + (845, 838, '张家港市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'Z'), + (846, 838, '昆山市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'K'), + (847, 838, '太仓市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'T'), + (848, 799, '南通市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'N'), + (849, 848, '崇川区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'C'), + (850, 848, '港闸区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'G'), + (851, 848, '通州区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'T'), + (852, 848, '如东县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'R'), + (853, 848, '启东市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'Q'), + (854, 848, '如皋市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'R'), + (855, 848, '海门市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:24', 'H'), + (856, 848, '海安市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'H'), + (857, 799, '连云港市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'L'), + (858, 857, '连云区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'L'), + (859, 857, '海州区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'H'), + (860, 857, '赣榆区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'G'), + (861, 857, '东海县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'D'), + (862, 857, '灌云县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'G'), + (863, 857, '灌南县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'G'), + (864, 799, '淮安市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'H'), + (865, 864, '淮安区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'H'), + (866, 864, '淮阴区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'H'), + (867, 864, '清江浦区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'Q'), + (868, 864, '洪泽区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'H'), + (869, 864, '涟水县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'L'), + (870, 864, '盱眙县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'X'), + (871, 864, '金湖县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'J'), + (872, 799, '盐城市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'Y'), + (873, 872, '亭湖区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'T'), + (874, 872, '盐都区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'Y'), + (875, 872, '大丰区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'D'), + (876, 872, '响水县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'X'), + (877, 872, '滨海县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'B'), + (878, 872, '阜宁县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'F'), + (879, 872, '射阳县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'S'), + (880, 872, '建湖县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'J'), + (881, 872, '东台市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'D'), + (882, 799, '扬州市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'Y'), + (883, 882, '广陵区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'G'), + (884, 882, '邗江区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'H'), + (885, 882, '江都区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'J'), + (886, 882, '宝应县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'B'), + (887, 882, '仪征市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'Y'), + (888, 882, '高邮市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'G'), + (889, 799, '镇江市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'Z'), + (890, 889, '京口区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'J'), + (891, 889, '润州区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'R'), + (892, 889, '丹徒区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'D'), + (893, 889, '丹阳市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'D'), + (894, 889, '扬中市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'Y'), + (895, 889, '句容市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'J'), + (896, 799, '泰州市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'T'), + (897, 896, '海陵区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'H'), + (898, 896, '高港区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'G'), + (899, 896, '姜堰区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'J'), + (900, 896, '兴化市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'X'), + (901, 896, '靖江市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'J'), + (902, 896, '泰兴市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'T'), + (903, 799, '宿迁市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:25', 'S'), + (904, 903, '宿城区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'S'), + (905, 903, '宿豫区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'S'), + (906, 903, '沭阳县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'S'), + (907, 903, '泗阳县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'S'), + (908, 903, '泗洪县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'S'), + (909, NULL, '浙江省', 'province', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'Z'), + (910, 909, '杭州市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'H'), + (911, 910, '上城区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'S'), + (912, 910, '下城区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'X'), + (913, 910, '江干区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'J'), + (914, 910, '拱墅区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'G'), + (915, 910, '西湖区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'X'), + (916, 910, '滨江区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'B'), + (917, 910, '萧山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'X'), + (918, 910, '余杭区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'Y'), + (919, 910, '富阳区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'F'), + (920, 910, '临安区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'L'), + (921, 910, '桐庐县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'T'), + (922, 910, '淳安县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'C'), + (923, 910, '建德市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'J'), + (924, 909, '宁波市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'N'), + (925, 924, '海曙区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'H'), + (926, 924, '江北区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'J'), + (927, 924, '北仑区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'B'), + (928, 924, '镇海区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'Z'), + (929, 924, '鄞州区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'Y'), + (930, 924, '奉化区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'F'), + (931, 924, '象山县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'X'), + (932, 924, '宁海县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'N'), + (933, 924, '余姚市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'Y'), + (934, 924, '慈溪市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'C'), + (935, 909, '温州市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'W'), + (936, 935, '鹿城区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'L'), + (937, 935, '龙湾区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'L'), + (938, 935, '瓯海区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'O'), + (939, 935, '洞头区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'D'), + (940, 935, '永嘉县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'Y'), + (941, 935, '平阳县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'P'), + (942, 935, '苍南县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'C'), + (943, 935, '文成县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'W'), + (944, 935, '泰顺县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'T'), + (945, 935, '瑞安市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'R'), + (946, 935, '乐清市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'Y'), + (947, 935, '龙港市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'L'), + (948, 909, '嘉兴市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'J'), + (949, 948, '南湖区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'N'), + (950, 948, '秀洲区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'X'), + (951, 948, '嘉善县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:26', 'J'), + (952, 948, '海盐县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'H'), + (953, 948, '海宁市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'H'), + (954, 948, '平湖市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'P'), + (955, 948, '桐乡市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'T'), + (956, 909, '湖州市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'H'), + (957, 956, '吴兴区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'W'), + (958, 956, '南浔区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'N'), + (959, 956, '德清县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'D'), + (960, 956, '长兴县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'C'), + (961, 956, '安吉县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'A'), + (962, 909, '绍兴市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'S'), + (963, 962, '越城区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'Y'), + (964, 962, '柯桥区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'K'), + (965, 962, '上虞区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'S'), + (966, 962, '新昌县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'X'), + (967, 962, '诸暨市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'Z'), + (968, 962, '嵊州市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'S'), + (969, 909, '金华市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'J'), + (970, 969, '婺城区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'W'), + (971, 969, '金东区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'J'), + (972, 969, '武义县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'W'), + (973, 969, '浦江县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'P'), + (974, 969, '磐安县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'P'), + (975, 969, '兰溪市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'L'), + (976, 969, '义乌市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'Y'), + (977, 969, '东阳市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'D'), + (978, 969, '永康市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'Y'), + (979, 909, '衢州市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'Q'), + (980, 979, '柯城区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'K'), + (981, 979, '衢江区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'Q'), + (982, 979, '常山县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'C'), + (983, 979, '开化县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'K'), + (984, 979, '龙游县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'L'), + (985, 979, '江山市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'J'), + (986, 909, '舟山市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'Z'), + (987, 986, '定海区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'D'), + (988, 986, '普陀区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'P'), + (989, 986, '岱山县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'D'), + (990, 986, '嵊泗县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'S'), + (991, 909, '台州市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'T'), + (992, 991, '椒江区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'J'), + (993, 991, '黄岩区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'H'), + (994, 991, '路桥区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'L'), + (995, 991, '三门县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'S'), + (996, 991, '天台县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'T'), + (997, 991, '仙居县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'X'), + (998, 991, '温岭市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'W'), + (999, 991, '临海市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:27', 'L'), + (1000, 991, '玉环市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'Y'), + (1001, 909, '丽水市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'L'), + (1002, 1001, '莲都区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'L'), + (1003, 1001, '青田县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'Q'), + (1004, 1001, '缙云县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'J'), + (1005, 1001, '遂昌县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'S'), + (1006, 1001, '松阳县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'S'), + (1007, 1001, '云和县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'Y'), + (1008, 1001, '庆元县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'Q'), + (1009, 1001, '景宁畲族自治县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'J'), + (1010, 1001, '龙泉市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'L'), + (1011, NULL, '安徽省', 'province', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'A'), + (1012, 1011, '合肥市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'H'), + (1013, 1012, '瑶海区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'Y'), + (1014, 1012, '庐阳区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'L'), + (1015, 1012, '蜀山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'S'), + (1016, 1012, '包河区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'B'), + (1017, 1012, '长丰县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'C'), + (1018, 1012, '肥东县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'F'), + (1019, 1012, '肥西县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'F'), + (1020, 1012, '庐江县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'L'), + (1021, 1012, '巢湖市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'C'), + (1022, 1011, '芜湖市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'W'), + (1023, 1022, '镜湖区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'J'), + (1024, 1022, '弋江区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'Y'), + (1025, 1022, '鸠江区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'J'), + (1026, 1022, '三山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'S'), + (1027, 1022, '芜湖县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'W'), + (1028, 1022, '繁昌县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'F'), + (1029, 1022, '南陵县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'N'), + (1030, 1022, '无为市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'W'), + (1031, 1011, '蚌埠市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'B'), + (1032, 1031, '龙子湖区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'L'), + (1033, 1031, '蚌山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'B'), + (1034, 1031, '禹会区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'Y'), + (1035, 1031, '淮上区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'H'), + (1036, 1031, '怀远县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'H'), + (1037, 1031, '五河县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'W'), + (1038, 1031, '固镇县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'G'), + (1039, 1011, '淮南市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'H'), + (1040, 1039, '大通区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'D'), + (1041, 1039, '田家庵区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'T'), + (1042, 1039, '谢家集区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'X'), + (1043, 1039, '八公山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'B'), + (1044, 1039, '潘集区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'P'), + (1045, 1039, '凤台县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'F'), + (1046, 1039, '寿县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'S'), + (1047, 1011, '马鞍山市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:28', 'M'), + (1048, 1047, '花山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'H'), + (1049, 1047, '雨山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'Y'), + (1050, 1047, '博望区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'B'), + (1051, 1047, '当涂县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'D'), + (1052, 1047, '含山县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'H'), + (1053, 1047, '和县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'H'), + (1054, 1011, '淮北市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'H'), + (1055, 1054, '杜集区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'D'), + (1056, 1054, '相山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'X'), + (1057, 1054, '烈山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'L'), + (1058, 1054, '濉溪县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'S'), + (1059, 1011, '铜陵市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'T'), + (1060, 1059, '铜官区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'T'), + (1061, 1059, '义安区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'Y'), + (1062, 1059, '郊区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'J'), + (1063, 1059, '枞阳县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'Z'), + (1064, 1011, '安庆市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'A'), + (1065, 1064, '迎江区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'Y'), + (1066, 1064, '大观区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'D'), + (1067, 1064, '宜秀区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'Y'), + (1068, 1064, '怀宁县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'H'), + (1069, 1064, '太湖县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'T'), + (1070, 1064, '宿松县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'S'), + (1071, 1064, '望江县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'W'), + (1072, 1064, '岳西县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'Y'), + (1073, 1064, '桐城市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'T'), + (1074, 1064, '潜山市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'Q'), + (1075, 1011, '黄山市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'H'), + (1076, 1075, '屯溪区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'T'), + (1077, 1075, '黄山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'H'), + (1078, 1075, '徽州区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'H'), + (1079, 1075, '歙县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'S'), + (1080, 1075, '休宁县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'X'), + (1081, 1075, '黟县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'Y'), + (1082, 1075, '祁门县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'Q'), + (1083, 1011, '滁州市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'C'), + (1084, 1083, '琅琊区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'L'), + (1085, 1083, '南谯区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'N'), + (1086, 1083, '来安县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'L'), + (1087, 1083, '全椒县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'Q'), + (1088, 1083, '定远县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'D'), + (1089, 1083, '凤阳县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'F'), + (1090, 1083, '天长市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'T'), + (1091, 1083, '明光市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'M'), + (1092, 1011, '阜阳市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'F'), + (1093, 1092, '颍州区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'Y'), + (1094, 1092, '颍东区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'Y'), + (1095, 1092, '颍泉区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:29', 'Y'), + (1096, 1092, '临泉县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'L'), + (1097, 1092, '太和县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'T'), + (1098, 1092, '阜南县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'F'), + (1099, 1092, '颍上县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'Y'), + (1100, 1092, '界首市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'J'), + (1101, 1011, '宿州市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'S'), + (1102, 1101, '埇桥区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'Y'), + (1103, 1101, '砀山县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'D'), + (1104, 1101, '萧县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'X'), + (1105, 1101, '灵璧县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'L'), + (1106, 1101, '泗县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'S'), + (1107, 1011, '六安市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'L'), + (1108, 1107, '金安区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'J'), + (1109, 1107, '裕安区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'Y'), + (1110, 1107, '叶集区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'Y'), + (1111, 1107, '霍邱县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'H'), + (1112, 1107, '舒城县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'S'), + (1113, 1107, '金寨县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'J'), + (1114, 1107, '霍山县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'H'), + (1115, 1011, '亳州市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'B'), + (1116, 1115, '谯城区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'Q'), + (1117, 1115, '涡阳县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'G'), + (1118, 1115, '蒙城县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'M'), + (1119, 1115, '利辛县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'L'), + (1120, 1011, '池州市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'C'), + (1121, 1120, '贵池区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'G'), + (1122, 1120, '东至县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'D'), + (1123, 1120, '石台县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'S'), + (1124, 1120, '青阳县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'Q'), + (1125, 1011, '宣城市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'X'), + (1126, 1125, '宣州区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'X'), + (1127, 1125, '郎溪县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'L'), + (1128, 1125, '泾县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'J'), + (1129, 1125, '绩溪县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'J'), + (1130, 1125, '旌德县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'J'), + (1131, 1125, '宁国市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'N'), + (1132, 1125, '广德市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'G'), + (1133, NULL, '福建省', 'province', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'F'), + (1134, 1133, '福州市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'F'), + (1135, 1134, '鼓楼区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'G'), + (1136, 1134, '台江区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'T'), + (1137, 1134, '仓山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'C'), + (1138, 1134, '马尾区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'M'), + (1139, 1134, '晋安区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'J'), + (1140, 1134, '长乐区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'C'), + (1141, 1134, '闽侯县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'M'), + (1142, 1134, '连江县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'L'), + (1143, 1134, '罗源县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:30', 'L'), + (1144, 1134, '闽清县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'M'), + (1145, 1134, '永泰县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'Y'), + (1146, 1134, '平潭县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'P'), + (1147, 1134, '福清市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'F'), + (1148, 1133, '厦门市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'X'), + (1149, 1148, '思明区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'S'), + (1150, 1148, '海沧区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'H'), + (1151, 1148, '湖里区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'H'), + (1152, 1148, '集美区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'J'), + (1153, 1148, '同安区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'T'), + (1154, 1148, '翔安区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'X'), + (1155, 1133, '莆田市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'P'), + (1156, 1155, '城厢区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'C'), + (1157, 1155, '涵江区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'H'), + (1158, 1155, '荔城区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'L'), + (1159, 1155, '秀屿区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'X'), + (1160, 1155, '仙游县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'X'), + (1161, 1133, '三明市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'S'), + (1162, 1161, '梅列区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'M'), + (1163, 1161, '三元区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'S'), + (1164, 1161, '明溪县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'M'), + (1165, 1161, '清流县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'Q'), + (1166, 1161, '宁化县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'N'), + (1167, 1161, '大田县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'D'), + (1168, 1161, '尤溪县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'Y'), + (1169, 1161, '沙县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'S'), + (1170, 1161, '将乐县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'J'), + (1171, 1161, '泰宁县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'T'), + (1172, 1161, '建宁县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'J'), + (1173, 1161, '永安市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'Y'), + (1174, 1133, '泉州市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'Q'), + (1175, 1174, '鲤城区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'L'), + (1176, 1174, '丰泽区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'F'), + (1177, 1174, '洛江区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'L'), + (1178, 1174, '泉港区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'Q'), + (1179, 1174, '惠安县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'H'), + (1180, 1174, '安溪县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'A'), + (1181, 1174, '永春县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'Y'), + (1182, 1174, '德化县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'D'), + (1183, 1174, '金门县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'J'), + (1184, 1174, '石狮市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'S'), + (1185, 1174, '晋江市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'J'), + (1186, 1174, '南安市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'N'), + (1187, 1133, '漳州市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'Z'), + (1188, 1187, '芗城区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'X'), + (1189, 1187, '龙文区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'L'), + (1190, 1187, '云霄县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'Y'), + (1191, 1187, '漳浦县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:31', 'Z'), + (1192, 1187, '诏安县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'Z'), + (1193, 1187, '长泰县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'C'), + (1194, 1187, '东山县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'D'), + (1195, 1187, '南靖县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'N'), + (1196, 1187, '平和县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'P'), + (1197, 1187, '华安县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'H'), + (1198, 1187, '龙海市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'L'), + (1199, 1133, '南平市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'N'), + (1200, 1199, '延平区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'Y'), + (1201, 1199, '建阳区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'J'), + (1202, 1199, '顺昌县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'S'), + (1203, 1199, '浦城县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'P'), + (1204, 1199, '光泽县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'G'), + (1205, 1199, '松溪县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'S'), + (1206, 1199, '政和县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'Z'), + (1207, 1199, '邵武市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'S'), + (1208, 1199, '武夷山市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'W'), + (1209, 1199, '建瓯市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'J'), + (1210, 1133, '龙岩市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'L'), + (1211, 1210, '新罗区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'X'), + (1212, 1210, '永定区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'Y'), + (1213, 1210, '长汀县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'C'), + (1214, 1210, '上杭县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'S'), + (1215, 1210, '武平县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'W'), + (1216, 1210, '连城县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'L'), + (1217, 1210, '漳平市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'Z'), + (1218, 1133, '宁德市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'N'), + (1219, 1218, '蕉城区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'J'), + (1220, 1218, '霞浦县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'X'), + (1221, 1218, '古田县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'G'), + (1222, 1218, '屏南县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'P'), + (1223, 1218, '寿宁县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'S'), + (1224, 1218, '周宁县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'Z'), + (1225, 1218, '柘荣县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'Z'), + (1226, 1218, '福安市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'F'), + (1227, 1218, '福鼎市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'F'), + (1228, NULL, '江西省', 'province', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'J'), + (1229, 1228, '南昌市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'N'), + (1230, 1229, '东湖区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'D'), + (1231, 1229, '西湖区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'X'), + (1232, 1229, '青云谱区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'Q'), + (1233, 1229, '青山湖区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'Q'), + (1234, 1229, '新建区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'X'), + (1235, 1229, '红谷滩区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'H'), + (1236, 1229, '南昌县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'N'), + (1237, 1229, '安义县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'A'), + (1238, 1229, '进贤县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:32', 'J'), + (1239, 1228, '景德镇市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'J'), + (1240, 1239, '昌江区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'C'), + (1241, 1239, '珠山区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'Z'), + (1242, 1239, '浮梁县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'F'), + (1243, 1239, '乐平市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'L'), + (1244, 1228, '萍乡市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'P'), + (1245, 1244, '安源区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'A'), + (1246, 1244, '湘东区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'X'), + (1247, 1244, '莲花县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'L'), + (1248, 1244, '上栗县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'S'), + (1249, 1244, '芦溪县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'L'), + (1250, 1228, '九江市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'J'), + (1251, 1250, '濂溪区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'L'), + (1252, 1250, '浔阳区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'X'), + (1253, 1250, '柴桑区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'C'), + (1254, 1250, '武宁县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'W'), + (1255, 1250, '修水县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'X'), + (1256, 1250, '永修县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'Y'), + (1257, 1250, '德安县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'D'), + (1258, 1250, '都昌县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'D'), + (1259, 1250, '湖口县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'H'), + (1260, 1250, '彭泽县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'P'), + (1261, 1250, '瑞昌市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'R'), + (1262, 1250, '共青城市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'G'), + (1263, 1250, '庐山市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'L'), + (1264, 1228, '新余市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'X'), + (1265, 1264, '渝水区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'Y'), + (1266, 1264, '分宜县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'F'), + (1267, 1228, '鹰潭市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'Y'), + (1268, 1267, '月湖区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'Y'), + (1269, 1267, '余江区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'Y'), + (1270, 1267, '贵溪市', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'G'), + (1271, 1228, '赣州市', 'city', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'G'), + (1272, 1271, '章贡区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'Z'), + (1273, 1271, '南康区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'N'), + (1274, 1271, '赣县区', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'G'), + (1275, 1271, '信丰县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'X'), + (1276, 1271, '大余县', 'area', '2021-12-07 17:50:55', '2022-09-06 14:56:33', 'D'), + (1277, 1271, '上犹县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:33', 'S'), + (1278, 1271, '崇义县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:33', 'C'), + (1279, 1271, '安远县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:33', 'A'), + (1280, 1271, '定南县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:33', 'D'), + (1281, 1271, '全南县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:33', 'Q'), + (1282, 1271, '宁都县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:33', 'N'), + (1283, 1271, '于都县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:33', 'Y'), + (1284, 1271, '兴国县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:33', 'X'), + (1285, 1271, '会昌县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:33', 'H'), + (1286, 1271, '寻乌县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:33', 'X'), + (1287, 1271, '石城县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:33', 'S'), + (1288, 1271, '瑞金市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'R'), + (1289, 1271, '龙南市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'L'), + (1290, 1228, '吉安市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'J'), + (1291, 1290, '吉州区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'J'), + (1292, 1290, '青原区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'Q'), + (1293, 1290, '吉安县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'J'), + (1294, 1290, '吉水县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'J'), + (1295, 1290, '峡江县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'X'), + (1296, 1290, '新干县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'X'), + (1297, 1290, '永丰县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'Y'), + (1298, 1290, '泰和县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'T'), + (1299, 1290, '遂川县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'S'), + (1300, 1290, '万安县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'W'), + (1301, 1290, '安福县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'A'), + (1302, 1290, '永新县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'Y'), + (1303, 1290, '井冈山市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'J'), + (1304, 1228, '宜春市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'Y'), + (1305, 1304, '袁州区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'Y'), + (1306, 1304, '奉新县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'F'), + (1307, 1304, '万载县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'W'), + (1308, 1304, '上高县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'S'), + (1309, 1304, '宜丰县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'Y'), + (1310, 1304, '靖安县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'J'), + (1311, 1304, '铜鼓县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'T'), + (1312, 1304, '丰城市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'F'), + (1313, 1304, '樟树市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'Z'), + (1314, 1304, '高安市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'G'), + (1315, 1228, '抚州市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'F'), + (1316, 1315, '临川区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'L'), + (1317, 1315, '东乡区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'D'), + (1318, 1315, '南城县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'N'), + (1319, 1315, '黎川县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'L'), + (1320, 1315, '南丰县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'N'), + (1321, 1315, '崇仁县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'C'), + (1322, 1315, '乐安县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'L'), + (1323, 1315, '宜黄县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'Y'), + (1324, 1315, '金溪县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'J'), + (1325, 1315, '资溪县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'Z'), + (1326, 1315, '广昌县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'G'), + (1327, 1228, '上饶市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'S'), + (1328, 1327, '信州区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'X'), + (1329, 1327, '广丰区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'G'), + (1330, 1327, '广信区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'G'), + (1331, 1327, '玉山县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'Y'), + (1332, 1327, '铅山县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'Y'), + (1333, 1327, '横峰县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'H'), + (1334, 1327, '弋阳县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:34', 'Y'), + (1335, 1327, '余干县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'Y'), + (1336, 1327, '鄱阳县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'P'), + (1337, 1327, '万年县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'W'), + (1338, 1327, '婺源县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'W'), + (1339, 1327, '德兴市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'D'), + (1340, NULL, '山东省', 'province', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'S'), + (1341, 1340, '济南市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'J'), + (1342, 1341, '历下区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'L'), + (1343, 1341, '市中区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'S'), + (1344, 1341, '槐荫区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'H'), + (1345, 1341, '天桥区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'T'), + (1346, 1341, '历城区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'L'), + (1347, 1341, '长清区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'C'), + (1348, 1341, '章丘区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'Z'), + (1349, 1341, '济阳区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'J'), + (1350, 1341, '莱芜区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'L'), + (1351, 1341, '钢城区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'G'), + (1352, 1341, '平阴县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'P'), + (1353, 1341, '商河县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'S'), + (1354, 1340, '青岛市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'Q'), + (1355, 1354, '市南区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'S'), + (1356, 1354, '市北区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'S'), + (1357, 1354, '黄岛区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'H'), + (1358, 1354, '崂山区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'L'), + (1359, 1354, '李沧区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'L'), + (1360, 1354, '城阳区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'C'), + (1361, 1354, '即墨区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'J'), + (1362, 1354, '胶州市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'J'), + (1363, 1354, '平度市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'P'), + (1364, 1354, '莱西市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'L'), + (1365, 1340, '淄博市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'Z'), + (1366, 1365, '淄川区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'Z'), + (1367, 1365, '张店区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'Z'), + (1368, 1365, '博山区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'B'), + (1369, 1365, '临淄区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'L'), + (1370, 1365, '周村区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'Z'), + (1371, 1365, '桓台县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'H'), + (1372, 1365, '高青县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'G'), + (1373, 1365, '沂源县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'Y'), + (1374, 1340, '枣庄市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'Z'), + (1375, 1374, '市中区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'S'), + (1376, 1374, '薛城区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'X'), + (1377, 1374, '峄城区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'Y'), + (1378, 1374, '台儿庄区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'T'), + (1379, 1374, '山亭区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'S'), + (1380, 1374, '滕州市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'T'), + (1381, 1340, '东营市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'D'), + (1382, 1381, '东营区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:35', 'D'), + (1383, 1381, '河口区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'H'), + (1384, 1381, '垦利区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'K'), + (1385, 1381, '利津县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'L'), + (1386, 1381, '广饶县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'G'), + (1387, 1340, '烟台市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'Y'), + (1388, 1387, '芝罘区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'Z'), + (1389, 1387, '福山区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'F'), + (1390, 1387, '牟平区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'M'), + (1391, 1387, '莱山区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'L'), + (1392, 1387, '蓬莱区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'P'), + (1393, 1387, '龙口市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'L'), + (1394, 1387, '莱阳市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'L'), + (1395, 1387, '莱州市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'L'), + (1396, 1387, '招远市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'Z'), + (1397, 1387, '栖霞市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'X'), + (1398, 1387, '海阳市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'H'), + (1399, 1340, '潍坊市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'W'), + (1400, 1399, '潍城区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'W'), + (1401, 1399, '寒亭区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'H'), + (1402, 1399, '坊子区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'F'), + (1403, 1399, '奎文区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'K'), + (1404, 1399, '临朐县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'L'), + (1405, 1399, '昌乐县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'C'), + (1406, 1399, '青州市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'Q'), + (1407, 1399, '诸城市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'Z'), + (1408, 1399, '寿光市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'S'), + (1409, 1399, '安丘市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'A'), + (1410, 1399, '高密市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'G'), + (1411, 1399, '昌邑市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'C'), + (1412, 1340, '济宁市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'J'), + (1413, 1412, '任城区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'R'), + (1414, 1412, '兖州区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'Y'), + (1415, 1412, '微山县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'W'), + (1416, 1412, '鱼台县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'Y'), + (1417, 1412, '金乡县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'J'), + (1418, 1412, '嘉祥县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'J'), + (1419, 1412, '汶上县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'W'), + (1420, 1412, '泗水县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'S'), + (1421, 1412, '梁山县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'L'), + (1422, 1412, '曲阜市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'Q'), + (1423, 1412, '邹城市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'Z'), + (1424, 1340, '泰安市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'T'), + (1425, 1424, '泰山区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'T'), + (1426, 1424, '岱岳区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'D'), + (1427, 1424, '宁阳县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'N'), + (1428, 1424, '东平县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'D'), + (1429, 1424, '新泰市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'X'), + (1430, 1424, '肥城市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:36', 'F'), + (1431, 1340, '威海市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'W'), + (1432, 1431, '环翠区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'H'), + (1433, 1431, '文登区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'W'), + (1434, 1431, '荣成市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'R'), + (1435, 1431, '乳山市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'R'), + (1436, 1340, '日照市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'R'), + (1437, 1436, '东港区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'D'), + (1438, 1436, '岚山区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'L'), + (1439, 1436, '五莲县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'W'), + (1440, 1436, '莒县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'J'), + (1441, 1340, '临沂市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'L'), + (1442, 1441, '兰山区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'L'), + (1443, 1441, '罗庄区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'L'), + (1444, 1441, '河东区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'H'), + (1445, 1441, '沂南县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'Y'), + (1446, 1441, '郯城县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'T'), + (1447, 1441, '沂水县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'Y'), + (1448, 1441, '兰陵县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'L'), + (1449, 1441, '费县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'F'), + (1450, 1441, '平邑县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'P'), + (1451, 1441, '莒南县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'J'), + (1452, 1441, '蒙阴县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'M'), + (1453, 1441, '临沭县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'L'), + (1454, 1340, '德州市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'D'), + (1455, 1454, '德城区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'D'), + (1456, 1454, '陵城区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'L'), + (1457, 1454, '宁津县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'N'), + (1458, 1454, '庆云县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'Q'), + (1459, 1454, '临邑县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'L'), + (1460, 1454, '齐河县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'Q'), + (1461, 1454, '平原县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'P'), + (1462, 1454, '夏津县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'X'), + (1463, 1454, '武城县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'W'), + (1464, 1454, '乐陵市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'L'), + (1465, 1454, '禹城市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'Y'), + (1466, 1340, '聊城市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'L'), + (1467, 1466, '东昌府区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'D'), + (1468, 1466, '茌平区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'C'), + (1469, 1466, '阳谷县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'Y'), + (1470, 1466, '莘县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'S'), + (1471, 1466, '东阿县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'D'), + (1472, 1466, '冠县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'G'), + (1473, 1466, '高唐县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'G'), + (1474, 1466, '临清市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'L'), + (1475, 1340, '滨州市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'B'), + (1476, 1475, '滨城区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'B'), + (1477, 1475, '沾化区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'Z'), + (1478, 1475, '惠民县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:37', 'H'), + (1479, 1475, '阳信县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'Y'), + (1480, 1475, '无棣县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'W'), + (1481, 1475, '博兴县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'B'), + (1482, 1475, '邹平市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'Z'), + (1483, 1340, '菏泽市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'H'), + (1484, 1483, '牡丹区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'M'), + (1485, 1483, '定陶区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'D'), + (1486, 1483, '曹县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'C'), + (1487, 1483, '单县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'S'), + (1488, 1483, '成武县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'C'), + (1489, 1483, '巨野县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'J'), + (1490, 1483, '郓城县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'Y'), + (1491, 1483, '鄄城县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'J'), + (1492, 1483, '东明县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'D'), + (1493, NULL, '河南省', 'province', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'H'), + (1494, 1493, '郑州市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'Z'), + (1495, 1494, '中原区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'Z'), + (1496, 1494, '二七区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'E'), + (1497, 1494, '管城回族区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'G'), + (1498, 1494, '金水区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'J'), + (1499, 1494, '上街区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'S'), + (1500, 1494, '惠济区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'H'), + (1501, 1494, '中牟县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'Z'), + (1502, 1494, '巩义市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'G'), + (1503, 1494, '荥阳市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'X'), + (1504, 1494, '新密市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'X'), + (1505, 1494, '新郑市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'X'), + (1506, 1494, '登封市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'D'), + (1507, 1493, '开封市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'K'), + (1508, 1507, '龙亭区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'L'), + (1509, 1507, '顺河回族区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'S'), + (1510, 1507, '鼓楼区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'G'), + (1511, 1507, '禹王台区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'Y'), + (1512, 1507, '祥符区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'X'), + (1513, 1507, '杞县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'Q'), + (1514, 1507, '通许县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'T'), + (1515, 1507, '尉氏县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'W'), + (1516, 1507, '兰考县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'L'), + (1517, 1493, '洛阳市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'L'), + (1518, 1517, '老城区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'L'), + (1519, 1517, '西工区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'X'), + (1520, 1517, '瀍河回族区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'C'), + (1521, 1517, '涧西区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'J'), + (1522, 1517, '吉利区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'J'), + (1523, 1517, '洛龙区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'L'), + (1524, 1517, '孟津县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'M'), + (1525, 1517, '新安县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'X'), + (1526, 1517, '栾川县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:38', 'L'), + (1527, 1517, '嵩县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'S'), + (1528, 1517, '汝阳县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'R'), + (1529, 1517, '宜阳县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'Y'), + (1530, 1517, '洛宁县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'L'), + (1531, 1517, '伊川县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'Y'), + (1532, 1517, '偃师市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'Y'), + (1533, 1493, '平顶山市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'P'), + (1534, 1533, '新华区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'X'), + (1535, 1533, '卫东区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'W'), + (1536, 1533, '石龙区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'S'), + (1537, 1533, '湛河区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'Z'), + (1538, 1533, '宝丰县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'B'), + (1539, 1533, '叶县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'Y'), + (1540, 1533, '鲁山县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'L'), + (1541, 1533, '郏县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'J'), + (1542, 1533, '舞钢市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'W'), + (1543, 1533, '汝州市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'R'), + (1544, 1493, '安阳市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'A'), + (1545, 1544, '文峰区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'W'), + (1546, 1544, '北关区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'B'), + (1547, 1544, '殷都区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'Y'), + (1548, 1544, '龙安区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'L'), + (1549, 1544, '安阳县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'A'), + (1550, 1544, '汤阴县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'T'), + (1551, 1544, '滑县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'H'), + (1552, 1544, '内黄县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'N'), + (1553, 1544, '林州市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'L'), + (1554, 1493, '鹤壁市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'H'), + (1555, 1554, '鹤山区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'H'), + (1556, 1554, '山城区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'S'), + (1557, 1554, '淇滨区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'Q'), + (1558, 1554, '浚县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'X'), + (1559, 1554, '淇县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'Q'), + (1560, 1493, '新乡市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'X'), + (1561, 1560, '红旗区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'H'), + (1562, 1560, '卫滨区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'W'), + (1563, 1560, '凤泉区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'F'), + (1564, 1560, '牧野区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'M'), + (1565, 1560, '新乡县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'X'), + (1566, 1560, '获嘉县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'H'), + (1567, 1560, '原阳县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'Y'), + (1568, 1560, '延津县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'Y'), + (1569, 1560, '封丘县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'F'), + (1570, 1560, '卫辉市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'W'), + (1571, 1560, '辉县市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'H'), + (1572, 1560, '长垣市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'C'), + (1573, 1493, '焦作市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:39', 'J'), + (1574, 1573, '解放区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'J'), + (1575, 1573, '中站区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'Z'), + (1576, 1573, '马村区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'M'), + (1577, 1573, '山阳区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'S'), + (1578, 1573, '修武县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'X'), + (1579, 1573, '博爱县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'B'), + (1580, 1573, '武陟县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'W'), + (1581, 1573, '温县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'W'), + (1582, 1573, '沁阳市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'Q'), + (1583, 1573, '孟州市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'M'), + (1584, 1493, '濮阳市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'P'), + (1585, 1584, '华龙区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'H'), + (1586, 1584, '清丰县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'Q'), + (1587, 1584, '南乐县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'N'), + (1588, 1584, '范县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'F'), + (1589, 1584, '台前县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'T'), + (1590, 1584, '濮阳县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'P'), + (1591, 1493, '许昌市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'X'), + (1592, 1591, '魏都区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'W'), + (1593, 1591, '建安区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'J'), + (1594, 1591, '鄢陵县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'Y'), + (1595, 1591, '襄城县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'X'), + (1596, 1591, '禹州市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'Y'), + (1597, 1591, '长葛市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'C'), + (1598, 1493, '漯河市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'T'), + (1599, 1598, '源汇区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'Y'), + (1600, 1598, '郾城区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'Y'), + (1601, 1598, '召陵区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'S'), + (1602, 1598, '舞阳县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'W'), + (1603, 1598, '临颍县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'L'), + (1604, 1493, '三门峡市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'S'), + (1605, 1604, '湖滨区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'H'), + (1606, 1604, '陕州区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'S'), + (1607, 1604, '渑池县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'M'), + (1608, 1604, '卢氏县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'L'), + (1609, 1604, '义马市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'Y'), + (1610, 1604, '灵宝市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'L'), + (1611, 1493, '南阳市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'N'), + (1612, 1611, '宛城区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'W'), + (1613, 1611, '卧龙区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'W'), + (1614, 1611, '南召县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'N'), + (1615, 1611, '方城县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'F'), + (1616, 1611, '西峡县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'X'), + (1617, 1611, '镇平县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'Z'), + (1618, 1611, '内乡县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'N'), + (1619, 1611, '淅川县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'X'), + (1620, 1611, '社旗县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'S'), + (1621, 1611, '唐河县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:40', 'T'), + (1622, 1611, '新野县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'X'), + (1623, 1611, '桐柏县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'T'), + (1624, 1611, '邓州市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'D'), + (1625, 1493, '商丘市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'S'), + (1626, 1625, '梁园区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'L'), + (1627, 1625, '睢阳区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'S'), + (1628, 1625, '民权县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'M'), + (1629, 1625, '睢县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'S'), + (1630, 1625, '宁陵县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'N'), + (1631, 1625, '柘城县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'Z'), + (1632, 1625, '虞城县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'Y'), + (1633, 1625, '夏邑县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'X'), + (1634, 1625, '永城市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'Y'), + (1635, 1493, '信阳市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'X'), + (1636, 1635, '浉河区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'S'), + (1637, 1635, '平桥区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'P'), + (1638, 1635, '罗山县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'L'), + (1639, 1635, '光山县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'G'), + (1640, 1635, '新县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'X'), + (1641, 1635, '商城县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'S'), + (1642, 1635, '固始县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'G'), + (1643, 1635, '潢川县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'H'), + (1644, 1635, '淮滨县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'H'), + (1645, 1635, '息县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'X'), + (1646, 1493, '周口市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'Z'), + (1647, 1646, '川汇区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'C'), + (1648, 1646, '淮阳区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'H'), + (1649, 1646, '扶沟县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'F'), + (1650, 1646, '西华县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'X'), + (1651, 1646, '商水县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'S'), + (1652, 1646, '沈丘县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'S'), + (1653, 1646, '郸城县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'D'), + (1654, 1646, '太康县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'T'), + (1655, 1646, '鹿邑县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'L'), + (1656, 1646, '项城市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'X'), + (1657, 1493, '驻马店市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'Z'), + (1658, 1657, '驿城区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'Y'), + (1659, 1657, '西平县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'X'), + (1660, 1657, '上蔡县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'S'), + (1661, 1657, '平舆县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'P'), + (1662, 1657, '正阳县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'Z'), + (1663, 1657, '确山县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'Q'), + (1664, 1657, '泌阳县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'B'), + (1665, 1657, '汝南县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'R'), + (1666, 1657, '遂平县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'S'), + (1667, 1657, '新蔡县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'X'), + (1668, 3219, '济源市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'J'), + (1669, NULL, '湖北省', 'province', '2021-12-07 17:50:56', '2022-09-06 14:56:41', 'H'), + (1670, 1669, '武汉市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'W'), + (1671, 1670, '江岸区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'J'), + (1672, 1670, '江汉区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'J'), + (1673, 1670, '硚口区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'Q'), + (1674, 1670, '汉阳区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'H'), + (1675, 1670, '武昌区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'W'), + (1676, 1670, '青山区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'Q'), + (1677, 1670, '洪山区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'H'), + (1678, 1670, '东西湖区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'D'), + (1679, 1670, '汉南区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'H'), + (1680, 1670, '蔡甸区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'C'), + (1681, 1670, '江夏区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'J'), + (1682, 1670, '黄陂区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'H'), + (1683, 1670, '新洲区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'X'), + (1684, 1669, '黄石市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'H'), + (1685, 1684, '黄石港区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'H'), + (1686, 1684, '西塞山区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'X'), + (1687, 1684, '下陆区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'X'), + (1688, 1684, '铁山区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'T'), + (1689, 1684, '阳新县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'Y'), + (1690, 1684, '大冶市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'D'), + (1691, 1669, '十堰市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'S'), + (1692, 1691, '茅箭区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'M'), + (1693, 1691, '张湾区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'Z'), + (1694, 1691, '郧阳区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'Y'), + (1695, 1691, '郧西县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'Y'), + (1696, 1691, '竹山县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'Z'), + (1697, 1691, '竹溪县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'Z'), + (1698, 1691, '房县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'F'), + (1699, 1691, '丹江口市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'D'), + (1700, 1669, '宜昌市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'Y'), + (1701, 1700, '西陵区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'X'), + (1702, 1700, '伍家岗区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'W'), + (1703, 1700, '点军区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'D'), + (1704, 1700, '猇亭区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'X'), + (1705, 1700, '夷陵区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'Y'), + (1706, 1700, '远安县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'Y'), + (1707, 1700, '兴山县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'X'), + (1708, 1700, '秭归县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'Z'), + (1709, 1700, '长阳土家族自治县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'C'), + (1710, 1700, '五峰土家族自治县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'W'), + (1711, 1700, '宜都市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'Y'), + (1712, 1700, '当阳市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'D'), + (1713, 1700, '枝江市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'Z'), + (1714, 1669, '襄阳市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'X'), + (1715, 1714, '襄城区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'X'), + (1716, 1714, '樊城区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'F'), + (1717, 1714, '襄州区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:42', 'X'), + (1718, 1714, '南漳县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'N'), + (1719, 1714, '谷城县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'G'), + (1720, 1714, '保康县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'B'), + (1721, 1714, '老河口市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'L'), + (1722, 1714, '枣阳市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'Z'), + (1723, 1714, '宜城市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'Y'), + (1724, 1669, '鄂州市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'E'), + (1725, 1724, '梁子湖区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'L'), + (1726, 1724, '华容区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'H'), + (1727, 1724, '鄂城区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'E'), + (1728, 1669, '荆门市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'J'), + (1729, 1728, '东宝区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'D'), + (1730, 1728, '掇刀区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'D'), + (1731, 1728, '沙洋县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'S'), + (1732, 1728, '钟祥市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'Z'), + (1733, 1728, '京山市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'J'), + (1734, 1669, '孝感市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'X'), + (1735, 1734, '孝南区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'X'), + (1736, 1734, '孝昌县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'X'), + (1737, 1734, '大悟县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'D'), + (1738, 1734, '云梦县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'Y'), + (1739, 1734, '应城市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'Y'), + (1740, 1734, '安陆市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'A'), + (1741, 1734, '汉川市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'H'), + (1742, 1669, '荆州市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'J'), + (1743, 1742, '沙市区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'S'), + (1744, 1742, '荆州区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'J'), + (1745, 1742, '公安县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'G'), + (1746, 1742, '监利县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'J'), + (1747, 1742, '江陵县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'J'), + (1748, 1742, '石首市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'S'), + (1749, 1742, '洪湖市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'H'), + (1750, 1742, '松滋市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'S'), + (1751, 1669, '黄冈市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'H'), + (1752, 1751, '黄州区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'H'), + (1753, 1751, '团风县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'T'), + (1754, 1751, '红安县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'H'), + (1755, 1751, '罗田县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'L'), + (1756, 1751, '英山县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'Y'), + (1757, 1751, '浠水县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'X'), + (1758, 1751, '蕲春县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'Q'), + (1759, 1751, '黄梅县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'H'), + (1760, 1751, '麻城市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'M'), + (1761, 1751, '武穴市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'W'), + (1762, 1669, '咸宁市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'X'), + (1763, 1762, '咸安区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'X'), + (1764, 1762, '嘉鱼县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'J'), + (1765, 1762, '通城县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:43', 'T'), + (1766, 1762, '崇阳县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'C'), + (1767, 1762, '通山县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'T'), + (1768, 1762, '赤壁市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'C'), + (1769, 1669, '随州市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'S'), + (1770, 1769, '曾都区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'Z'), + (1771, 1769, '随县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'S'), + (1772, 1769, '广水市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'G'), + (1773, 1669, '恩施土家族苗族自治州', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'E'), + (1774, 1773, '恩施市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'E'), + (1775, 1773, '利川市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'L'), + (1776, 1773, '建始县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'J'), + (1777, 1773, '巴东县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'B'), + (1778, 1773, '宣恩县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'X'), + (1779, 1773, '咸丰县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'X'), + (1780, 1773, '来凤县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'L'), + (1781, 1773, '鹤峰县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'H'), + (1782, 3216, '仙桃市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'X'), + (1783, 3216, '潜江市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'Q'), + (1784, 3216, '天门市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'T'), + (1785, 3216, '神农架林区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'S'), + (1786, NULL, '湖南省', 'province', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'H'), + (1787, 1786, '长沙市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'C'), + (1788, 1787, '芙蓉区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'F'), + (1789, 1787, '天心区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'T'), + (1790, 1787, '岳麓区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'Y'), + (1791, 1787, '开福区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'K'), + (1792, 1787, '雨花区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'Y'), + (1793, 1787, '望城区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'W'), + (1794, 1787, '长沙县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'C'), + (1795, 1787, '浏阳市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'L'), + (1796, 1787, '宁乡市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'N'), + (1797, 1786, '株洲市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'Z'), + (1798, 1797, '荷塘区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'H'), + (1799, 1797, '芦淞区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'L'), + (1800, 1797, '石峰区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'S'), + (1801, 1797, '天元区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'T'), + (1802, 1797, '渌口区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'L'), + (1803, 1797, '攸县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'Y'), + (1804, 1797, '茶陵县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'C'), + (1805, 1797, '炎陵县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'Y'), + (1806, 1797, '醴陵市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'L'), + (1807, 1786, '湘潭市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'X'), + (1808, 1807, '雨湖区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'Y'), + (1809, 1807, '岳塘区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'Y'), + (1810, 1807, '湘潭县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'X'), + (1811, 1807, '湘乡市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'X'), + (1812, 1807, '韶山市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:44', 'S'), + (1813, 1786, '衡阳市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'H'), + (1814, 1813, '珠晖区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'Z'), + (1815, 1813, '雁峰区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'Y'), + (1816, 1813, '石鼓区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'D'), + (1817, 1813, '蒸湘区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'Z'), + (1818, 1813, '南岳区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'N'), + (1819, 1813, '衡阳县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'H'), + (1820, 1813, '衡南县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'H'), + (1821, 1813, '衡山县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'H'), + (1822, 1813, '衡东县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'H'), + (1823, 1813, '祁东县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'Q'), + (1824, 1813, '耒阳市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'L'), + (1825, 1813, '常宁市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'C'), + (1826, 1786, '邵阳市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'S'), + (1827, 1826, '双清区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'S'), + (1828, 1826, '大祥区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'D'), + (1829, 1826, '北塔区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'B'), + (1830, 1826, '新邵县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'X'), + (1831, 1826, '邵阳县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'S'), + (1832, 1826, '隆回县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'L'), + (1833, 1826, '洞口县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'D'), + (1834, 1826, '绥宁县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'S'), + (1835, 1826, '新宁县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'X'), + (1836, 1826, '城步苗族自治县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'C'), + (1837, 1826, '武冈市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'W'), + (1838, 1826, '邵东市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'S'), + (1839, 1786, '岳阳市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'Y'), + (1840, 1839, '岳阳楼区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'Y'), + (1841, 1839, '云溪区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'Y'), + (1842, 1839, '君山区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'J'), + (1843, 1839, '岳阳县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'Y'), + (1844, 1839, '华容县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'H'), + (1845, 1839, '湘阴县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'X'), + (1846, 1839, '平江县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'P'), + (1847, 1839, '汨罗市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'M'), + (1848, 1839, '临湘市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'L'), + (1849, 1786, '常德市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'C'), + (1850, 1849, '武陵区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'W'), + (1851, 1849, '鼎城区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'D'), + (1852, 1849, '安乡县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'A'), + (1853, 1849, '汉寿县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'H'), + (1854, 1849, '澧县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'L'), + (1855, 1849, '临澧县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'L'), + (1856, 1849, '桃源县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'T'), + (1857, 1849, '石门县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'S'), + (1858, 1849, '津市市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'J'), + (1859, 1786, '张家界市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'Z'), + (1860, 1859, '永定区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'Y'), + (1861, 1859, '武陵源区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:45', 'W'), + (1862, 1859, '慈利县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'C'), + (1863, 1859, '桑植县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'S'), + (1864, 1786, '益阳市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'Y'), + (1865, 1864, '资阳区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'Z'), + (1866, 1864, '赫山区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'H'), + (1867, 1864, '南县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'N'), + (1868, 1864, '桃江县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'T'), + (1869, 1864, '安化县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'A'), + (1870, 1864, '沅江市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'Y'), + (1871, 1786, '郴州市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'C'), + (1872, 1871, '北湖区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'B'), + (1873, 1871, '苏仙区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'S'), + (1874, 1871, '桂阳县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'G'), + (1875, 1871, '宜章县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'Y'), + (1876, 1871, '永兴县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'Y'), + (1877, 1871, '嘉禾县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'J'), + (1878, 1871, '临武县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'L'), + (1879, 1871, '汝城县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'R'), + (1880, 1871, '桂东县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'G'), + (1881, 1871, '安仁县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'A'), + (1882, 1871, '资兴市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'Z'), + (1883, 1786, '永州市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'Y'), + (1884, 1883, '零陵区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'L'), + (1885, 1883, '冷水滩区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'L'), + (1886, 1883, '祁阳县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'Q'), + (1887, 1883, '东安县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'D'), + (1888, 1883, '双牌县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'S'), + (1889, 1883, '道县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'D'), + (1890, 1883, '江永县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'J'), + (1891, 1883, '宁远县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'N'), + (1892, 1883, '蓝山县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'L'), + (1893, 1883, '新田县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'X'), + (1894, 1883, '江华瑶族自治县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'J'), + (1895, 1786, '怀化市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'H'), + (1896, 1895, '鹤城区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'H'), + (1897, 1895, '中方县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'Z'), + (1898, 1895, '沅陵县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'Y'), + (1899, 1895, '辰溪县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'C'), + (1900, 1895, '溆浦县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'X'), + (1901, 1895, '会同县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'H'), + (1902, 1895, '麻阳苗族自治县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'M'), + (1903, 1895, '新晃侗族自治县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'X'), + (1904, 1895, '芷江侗族自治县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'Z'), + (1905, 1895, '靖州苗族侗族自治县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'J'), + (1906, 1895, '通道侗族自治县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'T'), + (1907, 1895, '洪江市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'H'), + (1908, 1786, '娄底市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'L'), + (1909, 1908, '娄星区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:46', 'L'), + (1910, 1908, '双峰县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'S'), + (1911, 1908, '新化县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'X'), + (1912, 1908, '冷水江市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'L'), + (1913, 1908, '涟源市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'L'), + (1914, 1786, '湘西土家族苗族自治州', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'X'), + (1915, 1914, '吉首市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'J'), + (1916, 1914, '泸溪县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'L'), + (1917, 1914, '凤凰县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'F'), + (1918, 1914, '花垣县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'H'), + (1919, 1914, '保靖县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'B'), + (1920, 1914, '古丈县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'G'), + (1921, 1914, '永顺县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'Y'), + (1922, 1914, '龙山县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'L'), + (1923, NULL, '广东省', 'province', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'G'), + (1924, 1923, '广州市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'G'), + (1925, 1924, '荔湾区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'L'), + (1926, 1924, '越秀区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'Y'), + (1927, 1924, '海珠区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'H'), + (1928, 1924, '天河区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'T'), + (1929, 1924, '白云区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'B'), + (1930, 1924, '黄埔区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'H'), + (1931, 1924, '番禺区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'P'), + (1932, 1924, '花都区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'H'), + (1933, 1924, '南沙区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'N'), + (1934, 1924, '从化区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'C'), + (1935, 1924, '增城区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'Z'), + (1936, 1923, '韶关市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'S'), + (1937, 1936, '武江区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'W'), + (1938, 1936, '浈江区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'Z'), + (1939, 1936, '曲江区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'Q'), + (1940, 1936, '始兴县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'S'), + (1941, 1936, '仁化县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'R'), + (1942, 1936, '翁源县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'W'), + (1943, 1936, '乳源瑶族自治县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'R'), + (1944, 1936, '新丰县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'X'), + (1945, 1936, '乐昌市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'L'), + (1946, 1936, '南雄市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'N'), + (1947, 1923, '深圳市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'S'), + (1948, 1947, '罗湖区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'L'), + (1949, 1947, '福田区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'F'), + (1950, 1947, '南山区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'N'), + (1951, 1947, '宝安区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'B'), + (1952, 1947, '龙岗区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'L'), + (1953, 1947, '盐田区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'Y'), + (1954, 1947, '龙华区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'L'), + (1955, 1947, '坪山区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'P'), + (1956, 1947, '光明区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:47', 'G'), + (1957, 1923, '珠海市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'Z'), + (1958, 1957, '香洲区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'X'), + (1959, 1957, '斗门区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'D'), + (1960, 1957, '金湾区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'J'), + (1961, 1923, '汕头市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'S'), + (1962, 1961, '龙湖区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'L'), + (1963, 1961, '金平区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'J'), + (1964, 1961, '濠江区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'H'), + (1965, 1961, '潮阳区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'C'), + (1966, 1961, '潮南区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'C'), + (1967, 1961, '澄海区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'C'), + (1968, 1961, '南澳县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'N'), + (1969, 1923, '佛山市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'F'), + (1970, 1969, '禅城区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'C'), + (1971, 1969, '南海区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'N'), + (1972, 1969, '顺德区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'S'), + (1973, 1969, '三水区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'S'), + (1974, 1969, '高明区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'G'), + (1975, 1923, '江门市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'J'), + (1976, 1975, '蓬江区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'P'), + (1977, 1975, '江海区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'J'), + (1978, 1975, '新会区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'X'), + (1979, 1975, '台山市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'T'), + (1980, 1975, '开平市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'K'), + (1981, 1975, '鹤山市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'H'), + (1982, 1975, '恩平市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'E'), + (1983, 1923, '湛江市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'Z'), + (1984, 1983, '赤坎区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'C'), + (1985, 1983, '霞山区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'X'), + (1986, 1983, '坡头区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'P'), + (1987, 1983, '麻章区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'M'), + (1988, 1983, '遂溪县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'S'), + (1989, 1983, '徐闻县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'X'), + (1990, 1983, '廉江市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'L'), + (1991, 1983, '雷州市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'L'), + (1992, 1983, '吴川市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'W'), + (1993, 1923, '茂名市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'M'), + (1994, 1993, '茂南区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'M'), + (1995, 1993, '电白区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'D'), + (1996, 1993, '高州市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'G'), + (1997, 1993, '化州市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'H'), + (1998, 1993, '信宜市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'X'), + (1999, 1923, '肇庆市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'Z'), + (2000, 1999, '端州区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'D'), + (2001, 1999, '鼎湖区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'D'), + (2002, 1999, '高要区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'G'), + (2003, 1999, '广宁县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'G'), + (2004, 1999, '怀集县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:48', 'H'), + (2005, 1999, '封开县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'F'), + (2006, 1999, '德庆县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'D'), + (2007, 1999, '四会市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'S'), + (2008, 1923, '惠州市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'H'), + (2009, 2008, '惠城区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'H'), + (2010, 2008, '惠阳区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'H'), + (2011, 2008, '博罗县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'B'), + (2012, 2008, '惠东县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'H'), + (2013, 2008, '龙门县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'L'), + (2014, 1923, '梅州市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'M'), + (2015, 2014, '梅江区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'M'), + (2016, 2014, '梅县区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'M'), + (2017, 2014, '大埔县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'D'), + (2018, 2014, '丰顺县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'F'), + (2019, 2014, '五华县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'W'), + (2020, 2014, '平远县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'P'), + (2021, 2014, '蕉岭县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'J'), + (2022, 2014, '兴宁市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'X'), + (2023, 1923, '汕尾市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'S'), + (2024, 2023, '城区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'C'), + (2025, 2023, '海丰县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'H'), + (2026, 2023, '陆河县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'L'), + (2027, 2023, '陆丰市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'L'), + (2028, 1923, '河源市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'H'), + (2029, 2028, '源城区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'Y'), + (2030, 2028, '紫金县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'Z'), + (2031, 2028, '龙川县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'L'), + (2032, 2028, '连平县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'L'), + (2033, 2028, '和平县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'H'), + (2034, 2028, '东源县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'D'), + (2035, 1923, '阳江市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'Y'), + (2036, 2035, '江城区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'J'), + (2037, 2035, '阳东区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'Y'), + (2038, 2035, '阳西县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'Y'), + (2039, 2035, '阳春市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'Y'), + (2040, 1923, '清远市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'Q'), + (2041, 2040, '清城区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'Q'), + (2042, 2040, '清新区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'Q'), + (2043, 2040, '佛冈县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'F'), + (2044, 2040, '阳山县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'Y'), + (2045, 2040, '连山壮族瑶族自治县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'L'), + (2046, 2040, '连南瑶族自治县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'L'), + (2047, 2040, '英德市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'Y'), + (2048, 2040, '连州市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'L'), + (2049, 1923, '东莞市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'D'), + (2050, 1923, '中山市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'Z'), + (2051, 1923, '潮州市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'C'), + (2052, 2051, '湘桥区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:49', 'X'), + (2053, 2051, '潮安区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'C'), + (2054, 2051, '饶平县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'R'), + (2055, 1923, '揭阳市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'J'), + (2056, 2055, '榕城区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'R'), + (2057, 2055, '揭东区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'J'), + (2058, 2055, '揭西县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'J'), + (2059, 2055, '惠来县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'H'), + (2060, 2055, '普宁市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'P'), + (2061, 1923, '云浮市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'Y'), + (2062, 2061, '云城区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'Y'), + (2063, 2061, '云安区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'Y'), + (2064, 2061, '新兴县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'X'), + (2065, 2061, '郁南县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'Y'), + (2066, 2061, '罗定市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'L'), + (2067, NULL, '广西壮族自治区', 'province', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'G'), + (2068, 2067, '南宁市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'N'), + (2069, 2068, '兴宁区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'X'), + (2070, 2068, '青秀区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'Q'), + (2071, 2068, '江南区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'J'), + (2072, 2068, '西乡塘区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'X'), + (2073, 2068, '良庆区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'L'), + (2074, 2068, '邕宁区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'Y'), + (2075, 2068, '武鸣区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'W'), + (2076, 2068, '隆安县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'L'), + (2077, 2068, '马山县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'M'), + (2078, 2068, '上林县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'S'), + (2079, 2068, '宾阳县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'B'), + (2080, 2068, '横县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'H'), + (2081, 2067, '柳州市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'L'), + (2082, 2081, '城中区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'C'), + (2083, 2081, '鱼峰区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'Y'), + (2084, 2081, '柳南区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'L'), + (2085, 2081, '柳北区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'L'), + (2086, 2081, '柳江区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'L'), + (2087, 2081, '柳城县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'L'), + (2088, 2081, '鹿寨县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'L'), + (2089, 2081, '融安县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'R'), + (2090, 2081, '融水苗族自治县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'R'), + (2091, 2081, '三江侗族自治县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'S'), + (2092, 2067, '桂林市', 'city', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'G'), + (2093, 2092, '秀峰区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'X'), + (2094, 2092, '叠彩区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'D'), + (2095, 2092, '象山区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'X'), + (2096, 2092, '七星区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'Q'), + (2097, 2092, '雁山区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'Y'), + (2098, 2092, '临桂区', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'L'), + (2099, 2092, '阳朔县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'Y'), + (2100, 2092, '灵川县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:50', 'L'), + (2101, 2092, '全州县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:51', 'Q'), + (2102, 2092, '兴安县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:51', 'X'), + (2103, 2092, '永福县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:51', 'Y'), + (2104, 2092, '灌阳县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:51', 'G'), + (2105, 2092, '龙胜各族自治县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:51', 'L'), + (2106, 2092, '资源县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:51', 'Z'), + (2107, 2092, '平乐县', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:51', 'P'), + (2108, 2092, '荔浦市', 'area', '2021-12-07 17:50:56', '2022-09-06 14:56:51', 'L'), + (2109, 2092, '恭城瑶族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'G'), + (2110, 2067, '梧州市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'W'), + (2111, 2110, '万秀区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'W'), + (2112, 2110, '长洲区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'C'), + (2113, 2110, '龙圩区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'L'), + (2114, 2110, '苍梧县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'C'), + (2115, 2110, '藤县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'T'), + (2116, 2110, '蒙山县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'M'), + (2117, 2110, '岑溪市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'C'), + (2118, 2067, '北海市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'B'), + (2119, 2118, '海城区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'H'), + (2120, 2118, '银海区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'Y'), + (2121, 2118, '铁山港区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'T'), + (2122, 2118, '合浦县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'H'), + (2123, 2067, '防城港市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'F'), + (2124, 2123, '港口区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'G'), + (2125, 2123, '防城区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'F'), + (2126, 2123, '上思县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'S'), + (2127, 2123, '东兴市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'D'), + (2128, 2067, '钦州市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'Q'), + (2129, 2128, '钦南区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'Q'), + (2130, 2128, '钦北区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'Q'), + (2131, 2128, '灵山县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'L'), + (2132, 2128, '浦北县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'P'), + (2133, 2067, '贵港市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'G'), + (2134, 2133, '港北区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'G'), + (2135, 2133, '港南区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'G'), + (2136, 2133, '覃塘区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'T'), + (2137, 2133, '平南县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'P'), + (2138, 2133, '桂平市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'G'), + (2139, 2067, '玉林市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'Y'), + (2140, 2139, '玉州区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'Y'), + (2141, 2139, '福绵区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'F'), + (2142, 2139, '容县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'R'), + (2143, 2139, '陆川县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'L'), + (2144, 2139, '博白县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'B'), + (2145, 2139, '兴业县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'X'), + (2146, 2139, '北流市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'B'), + (2147, 2067, '百色市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'B'), + (2148, 2147, '右江区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:51', 'Y'), + (2149, 2147, '田阳区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'T'), + (2150, 2147, '田东县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'T'), + (2151, 2147, '德保县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'D'), + (2152, 2147, '那坡县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'N'), + (2153, 2147, '凌云县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'L'), + (2154, 2147, '乐业县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'L'), + (2155, 2147, '田林县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'T'), + (2156, 2147, '西林县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'X'), + (2157, 2147, '隆林各族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'L'), + (2158, 2147, '靖西市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'J'), + (2159, 2147, '平果市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'P'), + (2160, 2067, '贺州市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'H'), + (2161, 2160, '八步区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'B'), + (2162, 2160, '平桂区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'P'), + (2163, 2160, '昭平县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'Z'), + (2164, 2160, '钟山县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'Z'), + (2165, 2160, '富川瑶族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'F'), + (2166, 2067, '河池市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'H'), + (2167, 2166, '金城江区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'J'), + (2168, 2166, '宜州区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'Y'), + (2169, 2166, '南丹县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'N'), + (2170, 2166, '天峨县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'T'), + (2171, 2166, '凤山县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'F'), + (2172, 2166, '东兰县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'D'), + (2173, 2166, '罗城仫佬族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'L'), + (2174, 2166, '环江毛南族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'H'), + (2175, 2166, '巴马瑶族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'B'), + (2176, 2166, '都安瑶族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'D'), + (2177, 2166, '大化瑶族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'D'), + (2178, 2067, '来宾市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'L'), + (2179, 2178, '兴宾区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'X'), + (2180, 2178, '忻城县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'X'), + (2181, 2178, '象州县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'X'), + (2182, 2178, '武宣县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'W'), + (2183, 2178, '金秀瑶族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'J'), + (2184, 2178, '合山市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'H'), + (2185, 2067, '崇左市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'C'), + (2186, 2185, '江州区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'J'), + (2187, 2185, '扶绥县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'F'), + (2188, 2185, '宁明县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'N'), + (2189, 2185, '龙州县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'L'), + (2190, 2185, '大新县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'D'), + (2191, 2185, '天等县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'T'), + (2192, 2185, '凭祥市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'P'), + (2193, NULL, '海南省', 'province', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'H'), + (2194, 2193, '海口市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'H'), + (2195, 2194, '秀英区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'X'), + (2196, 2194, '龙华区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:52', 'L'), + (2197, 2194, '琼山区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'Q'), + (2198, 2194, '美兰区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'M'), + (2199, 2193, '三亚市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'S'), + (2200, 2199, '海棠区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'H'), + (2201, 2199, '吉阳区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'J'), + (2202, 2199, '天涯区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'T'), + (2203, 2199, '崖州区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'Y'), + (2204, 2193, '三沙市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'S'), + (2205, 2193, '儋州市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'D'), + (2206, 3217, '五指山市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'W'), + (2207, 3217, '琼海市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'Q'), + (2208, 3217, '文昌市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'W'), + (2209, 3217, '万宁市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'W'), + (2210, 3217, '东方市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'D'), + (2211, 3217, '定安县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'D'), + (2212, 3217, '屯昌县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'T'), + (2213, 3217, '澄迈县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'C'), + (2214, 3217, '临高县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'L'), + (2215, 3217, '白沙黎族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'B'), + (2216, 3217, '昌江黎族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'C'), + (2217, 3217, '乐东黎族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'L'), + (2218, 3217, '陵水黎族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'L'), + (2219, 3217, '保亭黎族苗族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'B'), + (2220, 3217, '琼中黎族苗族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'Q'), + (2221, NULL, '重庆市', 'province', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'C'), + (2222, 2221, '重庆市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'C'), + (2223, 2222, '万州区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'W'), + (2224, 2222, '涪陵区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'F'), + (2225, 2222, '渝中区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'Y'), + (2226, 2222, '大渡口区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'D'), + (2227, 2222, '江北区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'J'), + (2228, 2222, '沙坪坝区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'S'), + (2229, 2222, '九龙坡区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'J'), + (2230, 2222, '南岸区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'N'), + (2231, 2222, '北碚区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'B'), + (2232, 2222, '綦江区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'Q'), + (2233, 2222, '大足区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'D'), + (2234, 2222, '渝北区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'Y'), + (2235, 2222, '巴南区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'B'), + (2236, 2222, '黔江区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'Q'), + (2237, 2222, '长寿区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'C'), + (2238, 2222, '江津区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'J'), + (2239, 2222, '合川区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'H'), + (2240, 2222, '永川区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'Y'), + (2241, 2222, '南川区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'N'), + (2242, 2222, '璧山区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'B'), + (2243, 2222, '铜梁区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'T'), + (2244, 2222, '潼南区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:53', 'T'), + (2245, 2222, '荣昌区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'R'), + (2246, 2222, '开州区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'K'), + (2247, 2222, '梁平区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'L'), + (2248, 2222, '武隆区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'W'), + (2249, 2222, '城口县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'C'), + (2250, 2222, '丰都县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'F'), + (2251, 2222, '垫江县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'D'), + (2252, 2222, '忠县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'Z'), + (2253, 2222, '云阳县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'Y'), + (2254, 2222, '奉节县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'F'), + (2255, 2222, '巫山县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'W'), + (2256, 2222, '巫溪县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'W'), + (2257, 2222, '石柱土家族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'S'), + (2258, 2222, '秀山土家族苗族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'X'), + (2259, 2222, '酉阳土家族苗族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'Y'), + (2260, 2222, '彭水苗族土家族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'P'), + (2261, NULL, '四川省', 'province', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'S'), + (2262, 2261, '成都市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'C'), + (2263, 2262, '锦江区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'J'), + (2264, 2262, '青羊区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'Q'), + (2265, 2262, '金牛区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'J'), + (2266, 2262, '武侯区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'W'), + (2267, 2262, '成华区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'C'), + (2268, 2262, '龙泉驿区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'L'), + (2269, 2262, '青白江区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'Q'), + (2270, 2262, '新都区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'X'), + (2271, 2262, '温江区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'W'), + (2272, 2262, '双流区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'S'), + (2273, 2262, '郫都区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'P'), + (2274, 2262, '新津区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'X'), + (2275, 2262, '金堂县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'J'), + (2276, 2262, '大邑县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'D'), + (2277, 2262, '蒲江县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'P'), + (2278, 2262, '都江堰市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'D'), + (2279, 2262, '彭州市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'P'), + (2280, 2262, '邛崃市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'Q'), + (2281, 2262, '崇州市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'C'), + (2282, 2262, '简阳市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'J'), + (2283, 2261, '自贡市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'Z'), + (2284, 2283, '自流井区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'Z'), + (2285, 2283, '贡井区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'G'), + (2286, 2283, '大安区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'D'), + (2287, 2283, '沿滩区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'Y'), + (2288, 2283, '荣县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'R'), + (2289, 2283, '富顺县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'F'), + (2290, 2261, '攀枝花市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'P'), + (2291, 2290, '东区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'D'), + (2292, 2290, '西区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:54', 'X'), + (2293, 2290, '仁和区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'R'), + (2294, 2290, '米易县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'M'), + (2295, 2290, '盐边县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'Y'), + (2296, 2261, '泸州市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'L'), + (2297, 2296, '江阳区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'J'), + (2298, 2296, '纳溪区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'N'), + (2299, 2296, '龙马潭区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'L'), + (2300, 2296, '泸县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'L'), + (2301, 2296, '合江县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'H'), + (2302, 2296, '叙永县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'X'), + (2303, 2296, '古蔺县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'G'), + (2304, 2261, '德阳市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'D'), + (2305, 2304, '旌阳区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'J'), + (2306, 2304, '罗江区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'L'), + (2307, 2304, '中江县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'Z'), + (2308, 2304, '广汉市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'G'), + (2309, 2304, '什邡市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'S'), + (2310, 2304, '绵竹市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'M'), + (2311, 2261, '绵阳市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'M'), + (2312, 2311, '涪城区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'F'), + (2313, 2311, '游仙区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'Y'), + (2314, 2311, '安州区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'A'), + (2315, 2311, '三台县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'S'), + (2316, 2311, '盐亭县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'Y'), + (2317, 2311, '梓潼县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'Z'), + (2318, 2311, '北川羌族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'B'), + (2319, 2311, '平武县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'P'), + (2320, 2311, '江油市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'J'), + (2321, 2261, '广元市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'G'), + (2322, 2321, '利州区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'L'), + (2323, 2321, '昭化区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'Z'), + (2324, 2321, '朝天区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'C'), + (2325, 2321, '旺苍县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'W'), + (2326, 2321, '青川县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'Q'), + (2327, 2321, '剑阁县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'J'), + (2328, 2321, '苍溪县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'C'), + (2329, 2261, '遂宁市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'S'), + (2330, 2329, '船山区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'C'), + (2331, 2329, '安居区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'A'), + (2332, 2329, '蓬溪县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'P'), + (2333, 2329, '大英县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'D'), + (2334, 2329, '射洪市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'S'), + (2335, 2261, '内江市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'N'), + (2336, 2335, '市中区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'S'), + (2337, 2335, '东兴区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'D'), + (2338, 2335, '威远县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'W'), + (2339, 2335, '资中县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:55', 'Z'), + (2340, 2335, '隆昌市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'L'), + (2341, 2261, '乐山市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'L'), + (2342, 2341, '市中区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'S'), + (2343, 2341, '沙湾区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'S'), + (2344, 2341, '五通桥区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'W'), + (2345, 2341, '金口河区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'J'), + (2346, 2341, '犍为县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'Q'), + (2347, 2341, '井研县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'J'), + (2348, 2341, '夹江县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'J'), + (2349, 2341, '沐川县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'M'), + (2350, 2341, '峨边彝族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'E'), + (2351, 2341, '马边彝族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'M'), + (2352, 2341, '峨眉山市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'E'), + (2353, 2261, '南充市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'N'), + (2354, 2353, '顺庆区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'S'), + (2355, 2353, '高坪区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'G'), + (2356, 2353, '嘉陵区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'J'), + (2357, 2353, '南部县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'N'), + (2358, 2353, '营山县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'Y'), + (2359, 2353, '蓬安县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'P'), + (2360, 2353, '仪陇县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'Y'), + (2361, 2353, '西充县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'X'), + (2362, 2353, '阆中市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'L'), + (2363, 2261, '眉山市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'M'), + (2364, 2363, '东坡区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'D'), + (2365, 2363, '彭山区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'P'), + (2366, 2363, '仁寿县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'R'), + (2367, 2363, '洪雅县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'H'), + (2368, 2363, '丹棱县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'D'), + (2369, 2363, '青神县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'Q'), + (2370, 2261, '宜宾市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'Y'), + (2371, 2370, '翠屏区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'C'), + (2372, 2370, '南溪区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'N'), + (2373, 2370, '叙州区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'X'), + (2374, 2370, '江安县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'J'), + (2375, 2370, '长宁县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'C'), + (2376, 2370, '高县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'G'), + (2377, 2370, '珙县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'G'), + (2378, 2370, '筠连县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'Y'), + (2379, 2370, '兴文县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'X'), + (2380, 2370, '屏山县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'P'), + (2381, 2261, '广安市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'G'), + (2382, 2381, '广安区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'G'), + (2383, 2381, '前锋区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'Q'), + (2384, 2381, '岳池县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'Y'), + (2385, 2381, '武胜县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'W'), + (2386, 2381, '邻水县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'L'), + (2387, 2381, '华蓥市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:56', 'H'), + (2388, 2261, '达州市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'D'), + (2389, 2388, '通川区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'T'), + (2390, 2388, '达川区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'D'), + (2391, 2388, '宣汉县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'X'), + (2392, 2388, '开江县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'K'), + (2393, 2388, '大竹县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'D'), + (2394, 2388, '渠县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'Q'), + (2395, 2388, '万源市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'W'), + (2396, 2261, '雅安市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'Y'), + (2397, 2396, '雨城区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'Y'), + (2398, 2396, '名山区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'M'), + (2399, 2396, '荥经县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'Y'), + (2400, 2396, '汉源县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'H'), + (2401, 2396, '石棉县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'S'), + (2402, 2396, '天全县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'T'), + (2403, 2396, '芦山县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'L'), + (2404, 2396, '宝兴县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'B'), + (2405, 2261, '巴中市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'B'), + (2406, 2405, '巴州区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'B'), + (2407, 2405, '恩阳区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'E'), + (2408, 2405, '通江县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'T'), + (2409, 2405, '南江县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'N'), + (2410, 2405, '平昌县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'P'), + (2411, 2261, '资阳市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'Z'), + (2412, 2411, '雁江区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'Y'), + (2413, 2411, '安岳县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'A'), + (2414, 2411, '乐至县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'L'), + (2415, 2261, '阿坝藏族羌族自治州', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'A'), + (2416, 2415, '马尔康市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'M'), + (2417, 2415, '汶川县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'W'), + (2418, 2415, '理县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'L'), + (2419, 2415, '茂县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'M'), + (2420, 2415, '松潘县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'S'), + (2421, 2415, '九寨沟县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'J'), + (2422, 2415, '金川县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'J'), + (2423, 2415, '小金县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'X'), + (2424, 2415, '黑水县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'H'), + (2425, 2415, '壤塘县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'R'), + (2426, 2415, '阿坝县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'A'), + (2427, 2415, '若尔盖县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'R'), + (2428, 2415, '红原县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'H'), + (2429, 2261, '甘孜藏族自治州', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'G'), + (2430, 2429, '康定市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'K'), + (2431, 2429, '泸定县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'L'), + (2432, 2429, '丹巴县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'D'), + (2433, 2429, '九龙县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'J'), + (2434, 2429, '雅江县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'Y'), + (2435, 2429, '道孚县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:57', 'D'), + (2436, 2429, '炉霍县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'L'), + (2437, 2429, '甘孜县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'G'), + (2438, 2429, '新龙县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'X'), + (2439, 2429, '德格县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'D'), + (2440, 2429, '白玉县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'B'), + (2441, 2429, '石渠县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'S'), + (2442, 2429, '色达县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'S'), + (2443, 2429, '理塘县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'L'), + (2444, 2429, '巴塘县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'B'), + (2445, 2429, '乡城县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'X'), + (2446, 2429, '稻城县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'D'), + (2447, 2429, '得荣县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'D'), + (2448, 2261, '凉山彝族自治州', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'L'), + (2449, 2448, '西昌市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'X'), + (2450, 2448, '木里藏族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'M'), + (2451, 2448, '盐源县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'Y'), + (2452, 2448, '德昌县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'D'), + (2453, 2448, '会理县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'H'), + (2454, 2448, '会东县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'H'), + (2455, 2448, '宁南县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'N'), + (2456, 2448, '普格县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'P'), + (2457, 2448, '布拖县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'B'), + (2458, 2448, '金阳县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'J'), + (2459, 2448, '昭觉县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'Z'), + (2460, 2448, '喜德县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'X'), + (2461, 2448, '冕宁县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'M'), + (2462, 2448, '越西县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'Y'), + (2463, 2448, '甘洛县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'G'), + (2464, 2448, '美姑县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'M'), + (2465, 2448, '雷波县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'L'), + (2466, NULL, '贵州省', 'province', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'G'), + (2467, 2466, '贵阳市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'G'), + (2468, 2467, '南明区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'N'), + (2469, 2467, '云岩区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'Y'), + (2470, 2467, '花溪区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'H'), + (2471, 2467, '乌当区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'W'), + (2472, 2467, '白云区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'B'), + (2473, 2467, '观山湖区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'G'), + (2474, 2467, '开阳县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'K'), + (2475, 2467, '息烽县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'X'), + (2476, 2467, '修文县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'X'), + (2477, 2467, '清镇市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'Q'), + (2478, 2466, '六盘水市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'L'), + (2479, 2478, '钟山区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'Z'), + (2480, 2478, '六枝特区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'L'), + (2481, 2478, '水城县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'S'), + (2482, 2478, '盘州市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'P'), + (2483, 2466, '遵义市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:58', 'Z'), + (2484, 2483, '红花岗区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'H'), + (2485, 2483, '汇川区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'H'), + (2486, 2483, '播州区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'B'), + (2487, 2483, '桐梓县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'T'), + (2488, 2483, '绥阳县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'S'), + (2489, 2483, '正安县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'Z'), + (2490, 2483, '道真仡佬族苗族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'D'), + (2491, 2483, '务川仡佬族苗族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'W'), + (2492, 2483, '凤冈县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'F'), + (2493, 2483, '湄潭县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'M'), + (2494, 2483, '余庆县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'Y'), + (2495, 2483, '习水县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'X'), + (2496, 2483, '赤水市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'C'), + (2497, 2483, '仁怀市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'R'), + (2498, 2466, '安顺市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'A'), + (2499, 2498, '西秀区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'X'), + (2500, 2498, '平坝区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'P'), + (2501, 2498, '普定县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'P'), + (2502, 2498, '镇宁布依族苗族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'Z'), + (2503, 2498, '关岭布依族苗族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'G'), + (2504, 2498, '紫云苗族布依族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'Z'), + (2505, 2466, '毕节市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'B'), + (2506, 2505, '七星关区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'Q'), + (2507, 2505, '大方县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'D'), + (2508, 2505, '黔西县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'Q'), + (2509, 2505, '金沙县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'J'), + (2510, 2505, '织金县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'Z'), + (2511, 2505, '纳雍县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'N'), + (2512, 2505, '威宁彝族回族苗族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'W'), + (2513, 2505, '赫章县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'H'), + (2514, 2466, '铜仁市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'T'), + (2515, 2514, '碧江区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'B'), + (2516, 2514, '万山区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'W'), + (2517, 2514, '江口县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'J'), + (2518, 2514, '玉屏侗族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'Y'), + (2519, 2514, '石阡县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'S'), + (2520, 2514, '思南县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'S'), + (2521, 2514, '印江土家族苗族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'Y'), + (2522, 2514, '德江县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'D'), + (2523, 2514, '沿河土家族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'Y'), + (2524, 2514, '松桃苗族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'S'), + (2525, 2466, '黔西南布依族苗族自治州', 'city', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'Q'), + (2526, 2525, '兴义市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'X'), + (2527, 2525, '兴仁市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'X'), + (2528, 2525, '普安县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'P'), + (2529, 2525, '晴隆县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'Q'), + (2530, 2525, '贞丰县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:56:59', 'Z'), + (2531, 2525, '望谟县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'W'), + (2532, 2525, '册亨县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'C'), + (2533, 2525, '安龙县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'A'), + (2534, 2466, '黔东南苗族侗族自治州', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'Q'), + (2535, 2534, '凯里市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'K'), + (2536, 2534, '黄平县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'H'), + (2537, 2534, '施秉县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'S'), + (2538, 2534, '三穗县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'S'), + (2539, 2534, '镇远县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'Z'), + (2540, 2534, '岑巩县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'C'), + (2541, 2534, '天柱县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'T'), + (2542, 2534, '锦屏县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'J'), + (2543, 2534, '剑河县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'J'), + (2544, 2534, '台江县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'T'), + (2545, 2534, '黎平县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'L'), + (2546, 2534, '榕江县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'R'), + (2547, 2534, '从江县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'C'), + (2548, 2534, '雷山县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'L'), + (2549, 2534, '麻江县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'M'), + (2550, 2534, '丹寨县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'D'), + (2551, 2466, '黔南布依族苗族自治州', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'Q'), + (2552, 2551, '都匀市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'D'), + (2553, 2551, '福泉市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'F'), + (2554, 2551, '荔波县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'L'), + (2555, 2551, '贵定县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'G'), + (2556, 2551, '瓮安县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'W'), + (2557, 2551, '独山县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'D'), + (2558, 2551, '平塘县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'P'), + (2559, 2551, '罗甸县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'L'), + (2560, 2551, '长顺县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'C'), + (2561, 2551, '龙里县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'L'), + (2562, 2551, '惠水县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'H'), + (2563, 2551, '三都水族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'S'), + (2564, NULL, '云南省', 'province', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'Y'), + (2565, 2564, '昆明市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'K'), + (2566, 2565, '五华区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'W'), + (2567, 2565, '盘龙区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'P'), + (2568, 2565, '官渡区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'G'), + (2569, 2565, '西山区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'X'), + (2570, 2565, '东川区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'D'), + (2571, 2565, '呈贡区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'C'), + (2572, 2565, '晋宁区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'J'), + (2573, 2565, '富民县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'F'), + (2574, 2565, '宜良县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'Y'), + (2575, 2565, '石林彝族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'S'), + (2576, 2565, '嵩明县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'S'), + (2577, 2565, '禄劝彝族苗族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'L'), + (2578, 2565, '寻甸回族彝族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:00', 'X'), + (2579, 2565, '安宁市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'A'), + (2580, 2564, '曲靖市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'Q'), + (2581, 2580, '麒麟区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'Q'), + (2582, 2580, '沾益区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'Z'), + (2583, 2580, '马龙区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'M'), + (2584, 2580, '陆良县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'L'), + (2585, 2580, '师宗县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'S'), + (2586, 2580, '罗平县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'L'), + (2587, 2580, '富源县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'F'), + (2588, 2580, '会泽县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'H'), + (2589, 2580, '宣威市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'X'), + (2590, 2564, '玉溪市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'Y'), + (2591, 2590, '红塔区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'H'), + (2592, 2590, '江川区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'J'), + (2593, 2590, '通海县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'T'), + (2594, 2590, '华宁县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'H'), + (2595, 2590, '易门县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'Y'), + (2596, 2590, '峨山彝族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'E'), + (2597, 2590, '新平彝族傣族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'X'), + (2598, 2590, '元江哈尼族彝族傣族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'Y'), + (2599, 2590, '澄江市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'C'), + (2600, 2564, '保山市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'B'), + (2601, 2600, '隆阳区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'L'), + (2602, 2600, '施甸县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'S'), + (2603, 2600, '龙陵县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'L'), + (2604, 2600, '昌宁县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'C'), + (2605, 2600, '腾冲市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'T'), + (2606, 2564, '昭通市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'Z'), + (2607, 2606, '昭阳区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'Z'), + (2608, 2606, '鲁甸县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'L'), + (2609, 2606, '巧家县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'Q'), + (2610, 2606, '盐津县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'Y'), + (2611, 2606, '大关县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'D'), + (2612, 2606, '永善县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'Y'), + (2613, 2606, '绥江县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'S'), + (2614, 2606, '镇雄县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'Z'), + (2615, 2606, '彝良县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'Y'), + (2616, 2606, '威信县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'W'), + (2617, 2606, '水富市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'S'), + (2618, 2564, '丽江市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'L'), + (2619, 2618, '古城区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'G'), + (2620, 2618, '玉龙纳西族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'Y'), + (2621, 2618, '永胜县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'Y'), + (2622, 2618, '华坪县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'H'), + (2623, 2618, '宁蒗彝族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'N'), + (2624, 2564, '普洱市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'P'), + (2625, 2624, '思茅区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'S'), + (2626, 2624, '宁洱哈尼族彝族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:01', 'N'), + (2627, 2624, '墨江哈尼族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'M'), + (2628, 2624, '景东彝族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'J'), + (2629, 2624, '景谷傣族彝族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'J'), + (2630, 2624, '镇沅彝族哈尼族拉祜族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'Z'), + (2631, 2624, '江城哈尼族彝族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'J'), + (2632, 2624, '孟连傣族拉祜族佤族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'M'), + (2633, 2624, '澜沧拉祜族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'L'), + (2634, 2624, '西盟佤族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'X'), + (2635, 2564, '临沧市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'L'), + (2636, 2635, '临翔区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'L'), + (2637, 2635, '凤庆县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'F'), + (2638, 2635, '云县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'Y'), + (2639, 2635, '永德县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'Y'), + (2640, 2635, '镇康县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'Z'), + (2641, 2635, '双江拉祜族佤族布朗族傣族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'S'), + (2642, 2635, '耿马傣族佤族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'G'), + (2643, 2635, '沧源佤族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'C'), + (2644, 2564, '楚雄彝族自治州', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'C'), + (2645, 2644, '楚雄市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'C'), + (2646, 2644, '双柏县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'S'), + (2647, 2644, '牟定县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'M'), + (2648, 2644, '南华县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'N'), + (2649, 2644, '姚安县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'Y'), + (2650, 2644, '大姚县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'D'), + (2651, 2644, '永仁县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'Y'), + (2652, 2644, '元谋县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'Y'), + (2653, 2644, '武定县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'W'), + (2654, 2644, '禄丰县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'L'), + (2655, 2564, '红河哈尼族彝族自治州', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'H'), + (2656, 2655, '个旧市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'G'), + (2657, 2655, '开远市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'K'), + (2658, 2655, '蒙自市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'M'), + (2659, 2655, '弥勒市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'M'), + (2660, 2655, '屏边苗族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'P'), + (2661, 2655, '建水县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'J'), + (2662, 2655, '石屏县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'S'), + (2663, 2655, '泸西县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'L'), + (2664, 2655, '元阳县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'Y'), + (2665, 2655, '红河县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'H'), + (2666, 2655, '金平苗族瑶族傣族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'J'), + (2667, 2655, '绿春县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'L'), + (2668, 2655, '河口瑶族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'H'), + (2669, 2564, '文山壮族苗族自治州', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'W'), + (2670, 2669, '文山市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'W'), + (2671, 2669, '砚山县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'Y'), + (2672, 2669, '西畴县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'X'), + (2673, 2669, '麻栗坡县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'M'), + (2674, 2669, '马关县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:02', 'M'), + (2675, 2669, '丘北县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'Q'), + (2676, 2669, '广南县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'G'), + (2677, 2669, '富宁县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'F'), + (2678, 2564, '西双版纳傣族自治州', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'X'), + (2679, 2678, '景洪市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'J'), + (2680, 2678, '勐海县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'M'), + (2681, 2678, '勐腊县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'M'), + (2682, 2564, '大理白族自治州', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'D'), + (2683, 2682, '大理市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'D'), + (2684, 2682, '漾濞彝族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'Y'), + (2685, 2682, '祥云县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'X'), + (2686, 2682, '宾川县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'B'), + (2687, 2682, '弥渡县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'M'), + (2688, 2682, '南涧彝族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'N'), + (2689, 2682, '巍山彝族回族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'W'), + (2690, 2682, '永平县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'Y'), + (2691, 2682, '云龙县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'Y'), + (2692, 2682, '洱源县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'E'), + (2693, 2682, '剑川县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'J'), + (2694, 2682, '鹤庆县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'H'), + (2695, 2564, '德宏傣族景颇族自治州', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'D'), + (2696, 2695, '瑞丽市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'R'), + (2697, 2695, '芒市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'M'), + (2698, 2695, '梁河县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'L'), + (2699, 2695, '盈江县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'Y'), + (2700, 2695, '陇川县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'L'), + (2701, 2564, '怒江傈僳族自治州', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'N'), + (2702, 2701, '泸水市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'L'), + (2703, 2701, '福贡县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'F'), + (2704, 2701, '贡山独龙族怒族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'G'), + (2705, 2701, '兰坪白族普米族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'L'), + (2706, 2564, '迪庆藏族自治州', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'D'), + (2707, 2706, '香格里拉市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'X'), + (2708, 2706, '德钦县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'D'), + (2709, 2706, '维西傈僳族自治县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'W'), + (2710, NULL, '西藏自治区', 'province', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'X'), + (2711, 2710, '拉萨市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'L'), + (2712, 2711, '城关区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'C'), + (2713, 2711, '堆龙德庆区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'D'), + (2714, 2711, '达孜区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'D'), + (2715, 2711, '林周县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'L'), + (2716, 2711, '当雄县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'D'), + (2717, 2711, '尼木县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'N'), + (2718, 2711, '曲水县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'Q'), + (2719, 2711, '墨竹工卡县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'M'), + (2720, 2710, '日喀则市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'R'), + (2721, 2720, '桑珠孜区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'S'), + (2722, 2720, '南木林县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:03', 'N'), + (2723, 2720, '江孜县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'J'), + (2724, 2720, '定日县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'D'), + (2725, 2720, '萨迦县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'S'), + (2726, 2720, '拉孜县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'L'), + (2727, 2720, '昂仁县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'A'), + (2728, 2720, '谢通门县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'X'), + (2729, 2720, '白朗县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'B'), + (2730, 2720, '仁布县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'R'), + (2731, 2720, '康马县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'K'), + (2732, 2720, '定结县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'D'), + (2733, 2720, '仲巴县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'Z'), + (2734, 2720, '亚东县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'Y'), + (2735, 2720, '吉隆县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'J'), + (2736, 2720, '聂拉木县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'N'), + (2737, 2720, '萨嘎县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'S'), + (2738, 2720, '岗巴县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'G'), + (2739, 2710, '昌都市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'C'), + (2740, 2739, '卡若区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'K'), + (2741, 2739, '江达县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'J'), + (2742, 2739, '贡觉县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'G'), + (2743, 2739, '类乌齐县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'L'), + (2744, 2739, '丁青县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'D'), + (2745, 2739, '察雅县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'C'), + (2746, 2739, '八宿县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'B'), + (2747, 2739, '左贡县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'Z'), + (2748, 2739, '芒康县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'M'), + (2749, 2739, '洛隆县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'L'), + (2750, 2739, '边坝县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'B'), + (2751, 2710, '林芝市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'L'), + (2752, 2751, '巴宜区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'B'), + (2753, 2751, '工布江达县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'G'), + (2754, 2751, '米林县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'M'), + (2755, 2751, '墨脱县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'M'), + (2756, 2751, '波密县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'B'), + (2757, 2751, '察隅县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'C'), + (2758, 2751, '朗县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'L'), + (2759, 2710, '山南市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'S'), + (2760, 2759, '乃东区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'N'), + (2761, 2759, '扎囊县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'Z'), + (2762, 2759, '贡嘎县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'G'), + (2763, 2759, '桑日县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'S'), + (2764, 2759, '琼结县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'Q'), + (2765, 2759, '曲松县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'Q'), + (2766, 2759, '措美县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'C'), + (2767, 2759, '洛扎县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'L'), + (2768, 2759, '加查县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'J'), + (2769, 2759, '隆子县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'L'), + (2770, 2759, '错那县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:04', 'C'), + (2771, 2759, '浪卡子县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'L'), + (2772, 2710, '那曲市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'N'), + (2773, 2772, '色尼区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'S'), + (2774, 2772, '嘉黎县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'J'), + (2775, 2772, '比如县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'B'), + (2776, 2772, '聂荣县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'N'), + (2777, 2772, '安多县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'A'), + (2778, 2772, '申扎县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'S'), + (2779, 2772, '索县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'S'), + (2780, 2772, '班戈县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'B'), + (2781, 2772, '巴青县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'B'), + (2782, 2772, '尼玛县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'N'), + (2783, 2772, '双湖县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'S'), + (2784, 2710, '阿里地区', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'A'), + (2785, 2784, '普兰县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'P'), + (2786, 2784, '札达县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'Z'), + (2787, 2784, '噶尔县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'G'), + (2788, 2784, '日土县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'R'), + (2789, 2784, '革吉县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'G'), + (2790, 2784, '改则县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'G'), + (2791, 2784, '措勤县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'C'), + (2792, NULL, '陕西省', 'province', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'S'), + (2793, 2792, '西安市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'X'), + (2794, 2793, '新城区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'X'), + (2795, 2793, '碑林区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'B'), + (2796, 2793, '莲湖区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'L'), + (2797, 2793, '灞桥区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'B'), + (2798, 2793, '未央区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'W'), + (2799, 2793, '雁塔区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'Y'), + (2800, 2793, '阎良区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'Y'), + (2801, 2793, '临潼区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'L'), + (2802, 2793, '长安区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'C'), + (2803, 2793, '高陵区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'G'), + (2804, 2793, '鄠邑区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'H'), + (2805, 2793, '蓝田县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'L'), + (2806, 2793, '周至县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'Z'), + (2807, 2792, '铜川市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'T'), + (2808, 2807, '王益区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'W'), + (2809, 2807, '印台区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'Y'), + (2810, 2807, '耀州区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'Y'), + (2811, 2807, '宜君县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'Y'), + (2812, 2792, '宝鸡市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'B'), + (2813, 2812, '渭滨区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'W'), + (2814, 2812, '金台区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'J'), + (2815, 2812, '陈仓区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'C'), + (2816, 2812, '凤翔县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'F'), + (2817, 2812, '岐山县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'Q'), + (2818, 2812, '扶风县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:05', 'F'), + (2819, 2812, '眉县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'M'), + (2820, 2812, '陇县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'L'), + (2821, 2812, '千阳县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'Q'), + (2822, 2812, '麟游县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'L'), + (2823, 2812, '凤县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'F'), + (2824, 2812, '太白县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'T'), + (2825, 2792, '咸阳市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'X'), + (2826, 2825, '秦都区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'Q'), + (2827, 2825, '杨陵区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'Y'), + (2828, 2825, '渭城区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'W'), + (2829, 2825, '三原县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'S'), + (2830, 2825, '泾阳县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'J'), + (2831, 2825, '乾县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'Q'), + (2832, 2825, '礼泉县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'L'), + (2833, 2825, '永寿县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'Y'), + (2834, 2825, '长武县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'C'), + (2835, 2825, '旬邑县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'X'), + (2836, 2825, '淳化县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'C'), + (2837, 2825, '武功县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'W'), + (2838, 2825, '兴平市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'X'), + (2839, 2825, '彬州市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'B'), + (2840, 2792, '渭南市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'W'), + (2841, 2840, '临渭区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'L'), + (2842, 2840, '华州区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'H'), + (2843, 2840, '潼关县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'T'), + (2844, 2840, '大荔县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'D'), + (2845, 2840, '合阳县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'H'), + (2846, 2840, '澄城县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'C'), + (2847, 2840, '蒲城县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'P'), + (2848, 2840, '白水县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'B'), + (2849, 2840, '富平县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'F'), + (2850, 2840, '韩城市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'H'), + (2851, 2840, '华阴市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'H'), + (2852, 2792, '延安市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'Y'), + (2853, 2852, '宝塔区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'B'), + (2854, 2852, '安塞区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'A'), + (2855, 2852, '延长县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'Y'), + (2856, 2852, '延川县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'Y'), + (2857, 2852, '志丹县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'Z'), + (2858, 2852, '吴起县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'W'), + (2859, 2852, '甘泉县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'G'), + (2860, 2852, '富县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'F'), + (2861, 2852, '洛川县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'L'), + (2862, 2852, '宜川县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'Y'), + (2863, 2852, '黄龙县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'H'), + (2864, 2852, '黄陵县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'H'), + (2865, 2852, '子长市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'Z'), + (2866, 2792, '汉中市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:06', 'H'), + (2867, 2866, '汉台区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'H'), + (2868, 2866, '南郑区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'N'), + (2869, 2866, '城固县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'C'), + (2870, 2866, '洋县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'Y'), + (2871, 2866, '西乡县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'X'), + (2872, 2866, '勉县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'M'), + (2873, 2866, '宁强县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'N'), + (2874, 2866, '略阳县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'L'), + (2875, 2866, '镇巴县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'Z'), + (2876, 2866, '留坝县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'L'), + (2877, 2866, '佛坪县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'F'), + (2878, 2792, '榆林市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'Y'), + (2879, 2878, '榆阳区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'Y'), + (2880, 2878, '横山区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'H'), + (2881, 2878, '府谷县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'F'), + (2882, 2878, '靖边县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'J'), + (2883, 2878, '定边县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'D'), + (2884, 2878, '绥德县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'S'), + (2885, 2878, '米脂县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'M'), + (2886, 2878, '佳县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'J'), + (2887, 2878, '吴堡县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'W'), + (2888, 2878, '清涧县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'Q'), + (2889, 2878, '子洲县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'Z'), + (2890, 2878, '神木市', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'S'), + (2891, 2792, '安康市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'A'), + (2892, 2891, '汉滨区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'H'), + (2893, 2891, '汉阴县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'H'), + (2894, 2891, '石泉县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'S'), + (2895, 2891, '宁陕县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'N'), + (2896, 2891, '紫阳县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'Z'), + (2897, 2891, '岚皋县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'L'), + (2898, 2891, '平利县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'P'), + (2899, 2891, '镇坪县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'Z'), + (2900, 2891, '旬阳县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'X'), + (2901, 2891, '白河县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'B'), + (2902, 2792, '商洛市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'S'), + (2903, 2902, '商州区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'S'), + (2904, 2902, '洛南县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'L'), + (2905, 2902, '丹凤县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'D'), + (2906, 2902, '商南县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'S'), + (2907, 2902, '山阳县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'S'), + (2908, 2902, '镇安县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'Z'), + (2909, 2902, '柞水县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'Z'), + (2910, NULL, '甘肃省', 'province', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'G'), + (2911, 2910, '兰州市', 'city', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'L'), + (2912, 2911, '城关区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'C'), + (2913, 2911, '七里河区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:07', 'Q'), + (2914, 2911, '西固区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:08', 'X'), + (2915, 2911, '安宁区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:08', 'A'), + (2916, 2911, '红古区', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:08', 'H'), + (2917, 2911, '永登县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:08', 'Y'), + (2918, 2911, '皋兰县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:08', 'G'), + (2919, 2911, '榆中县', 'area', '2021-12-07 17:50:57', '2022-09-06 14:57:08', 'Y'), + (2920, 2910, '嘉峪关市', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'J'), + (2921, 2910, '金昌市', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'J'), + (2922, 2921, '金川区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'J'), + (2923, 2921, '永昌县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'Y'), + (2924, 2910, '白银市', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'B'), + (2925, 2924, '白银区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'B'), + (2926, 2924, '平川区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'P'), + (2927, 2924, '靖远县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'J'), + (2928, 2924, '会宁县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'H'), + (2929, 2924, '景泰县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'J'), + (2930, 2910, '天水市', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'T'), + (2931, 2930, '秦州区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'Q'), + (2932, 2930, '麦积区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'M'), + (2933, 2930, '清水县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'Q'), + (2934, 2930, '秦安县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'Q'), + (2935, 2930, '甘谷县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'G'), + (2936, 2930, '武山县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'W'), + (2937, 2930, '张家川回族自治县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'Z'), + (2938, 2910, '武威市', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'W'), + (2939, 2938, '凉州区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'L'), + (2940, 2938, '民勤县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'M'), + (2941, 2938, '古浪县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'G'), + (2942, 2938, '天祝藏族自治县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'T'), + (2943, 2910, '张掖市', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'Z'), + (2944, 2943, '甘州区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'G'), + (2945, 2943, '肃南裕固族自治县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'S'), + (2946, 2943, '民乐县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'M'), + (2947, 2943, '临泽县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'L'), + (2948, 2943, '高台县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'G'), + (2949, 2943, '山丹县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'S'), + (2950, 2910, '平凉市', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'P'), + (2951, 2950, '崆峒区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'K'), + (2952, 2950, '泾川县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'J'), + (2953, 2950, '灵台县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'L'), + (2954, 2950, '崇信县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'C'), + (2955, 2950, '庄浪县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'Z'), + (2956, 2950, '静宁县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'J'), + (2957, 2950, '华亭市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'H'), + (2958, 2910, '酒泉市', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'J'), + (2959, 2958, '肃州区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'S'), + (2960, 2958, '金塔县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'J'), + (2961, 2958, '瓜州县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:08', 'G'), + (2962, 2958, '肃北蒙古族自治县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'S'), + (2963, 2958, '阿克塞哈萨克族自治县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'A'), + (2964, 2958, '玉门市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'Y'), + (2965, 2958, '敦煌市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'D'), + (2966, 2910, '庆阳市', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'Q'), + (2967, 2966, '西峰区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'X'), + (2968, 2966, '庆城县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'Q'), + (2969, 2966, '环县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'H'), + (2970, 2966, '华池县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'H'), + (2971, 2966, '合水县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'H'), + (2972, 2966, '正宁县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'Z'), + (2973, 2966, '宁县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'N'), + (2974, 2966, '镇原县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'Z'), + (2975, 2910, '定西市', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'D'), + (2976, 2975, '安定区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'A'), + (2977, 2975, '通渭县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'T'), + (2978, 2975, '陇西县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'L'), + (2979, 2975, '渭源县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'W'), + (2980, 2975, '临洮县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'L'), + (2981, 2975, '漳县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'Z'), + (2982, 2975, '岷县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'M'), + (2983, 2910, '陇南市', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'L'), + (2984, 2983, '武都区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'W'), + (2985, 2983, '成县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'C'), + (2986, 2983, '文县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'W'), + (2987, 2983, '宕昌县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'D'), + (2988, 2983, '康县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'K'), + (2989, 2983, '西和县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'X'), + (2990, 2983, '礼县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'L'), + (2991, 2983, '徽县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'H'), + (2992, 2983, '两当县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'L'), + (2993, 2910, '临夏回族自治州', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'L'), + (2994, 2993, '临夏市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'L'), + (2995, 2993, '临夏县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'L'), + (2996, 2993, '康乐县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'K'), + (2997, 2993, '永靖县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'Y'), + (2998, 2993, '广河县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'G'), + (2999, 2993, '和政县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'H'), + (3000, 2993, '东乡族自治县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'D'), + (3001, 2993, '积石山保安族东乡族撒拉族自治县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'J'), + (3002, 2910, '甘南藏族自治州', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'G'), + (3003, 3002, '合作市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'H'), + (3004, 3002, '临潭县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'L'), + (3005, 3002, '卓尼县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'Z'), + (3006, 3002, '舟曲县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'Z'), + (3007, 3002, '迭部县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'D'), + (3008, 3002, '玛曲县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'M'), + (3009, 3002, '碌曲县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:09', 'L'), + (3010, 3002, '夏河县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'X'), + (3011, NULL, '青海省', 'province', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'Q'), + (3012, 3011, '西宁市', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'X'), + (3013, 3012, '城东区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'C'), + (3014, 3012, '城中区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'C'), + (3015, 3012, '城西区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'C'), + (3016, 3012, '城北区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'C'), + (3017, 3012, '湟中区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'H'), + (3018, 3012, '大通回族土族自治县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'D'), + (3019, 3012, '湟源县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'H'), + (3020, 3011, '海东市', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'H'), + (3021, 3020, '乐都区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'L'), + (3022, 3020, '平安区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'P'), + (3023, 3020, '民和回族土族自治县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'M'), + (3024, 3020, '互助土族自治县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'H'), + (3025, 3020, '化隆回族自治县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'H'), + (3026, 3020, '循化撒拉族自治县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'X'), + (3027, 3011, '海北藏族自治州', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'H'), + (3028, 3027, '门源回族自治县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'M'), + (3029, 3027, '祁连县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'Q'), + (3030, 3027, '海晏县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'H'), + (3031, 3027, '刚察县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'G'), + (3032, 3011, '黄南藏族自治州', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'H'), + (3033, 3032, '同仁市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'T'), + (3034, 3032, '尖扎县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'J'), + (3035, 3032, '泽库县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'Z'), + (3036, 3032, '河南蒙古族自治县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'H'), + (3037, 3011, '海南藏族自治州', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'H'), + (3038, 3037, '共和县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'G'), + (3039, 3037, '同德县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'T'), + (3040, 3037, '贵德县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'G'), + (3041, 3037, '兴海县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'X'), + (3042, 3037, '贵南县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'G'), + (3043, 3011, '果洛藏族自治州', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'G'), + (3044, 3043, '玛沁县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'M'), + (3045, 3043, '班玛县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'B'), + (3046, 3043, '甘德县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'G'), + (3047, 3043, '达日县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'D'), + (3048, 3043, '久治县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'J'), + (3049, 3043, '玛多县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'M'), + (3050, 3011, '玉树藏族自治州', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'Y'), + (3051, 3050, '玉树市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'Y'), + (3052, 3050, '杂多县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'Z'), + (3053, 3050, '称多县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'C'), + (3054, 3050, '治多县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'Z'), + (3055, 3050, '囊谦县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'N'), + (3056, 3050, '曲麻莱县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:10', 'Q'), + (3057, 3011, '海西蒙古族藏族自治州', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'H'), + (3058, 3057, '格尔木市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'G'), + (3059, 3057, '德令哈市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'D'), + (3060, 3057, '茫崖市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'M'), + (3061, 3057, '乌兰县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'W'), + (3062, 3057, '都兰县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'D'), + (3063, 3057, '天峻县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'T'), + (3064, NULL, '宁夏回族自治区', 'province', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'N'), + (3065, 3064, '银川市', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'Y'), + (3066, 3065, '兴庆区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'X'), + (3067, 3065, '西夏区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'X'), + (3068, 3065, '金凤区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'J'), + (3069, 3065, '永宁县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'Y'), + (3070, 3065, '贺兰县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'H'), + (3071, 3065, '灵武市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'L'), + (3072, 3064, '石嘴山市', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'S'), + (3073, 3072, '大武口区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'D'), + (3074, 3072, '惠农区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'H'), + (3075, 3072, '平罗县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'P'), + (3076, 3064, '吴忠市', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'W'), + (3077, 3076, '利通区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'L'), + (3078, 3076, '红寺堡区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'H'), + (3079, 3076, '盐池县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'Y'), + (3080, 3076, '同心县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'T'), + (3081, 3076, '青铜峡市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'Q'), + (3082, 3064, '固原市', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'G'), + (3083, 3082, '原州区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'Y'), + (3084, 3082, '西吉县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'X'), + (3085, 3082, '隆德县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'L'), + (3086, 3082, '泾源县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'J'), + (3087, 3082, '彭阳县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'P'), + (3088, 3064, '中卫市', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'Z'), + (3089, 3088, '沙坡头区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'S'), + (3090, 3088, '中宁县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'Z'), + (3091, 3088, '海原县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'H'), + (3092, NULL, '新疆维吾尔自治区', 'province', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'X'), + (3093, 3092, '乌鲁木齐市', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'W'), + (3094, 3093, '天山区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'T'), + (3095, 3093, '沙依巴克区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'S'), + (3096, 3093, '新市区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'X'), + (3097, 3093, '水磨沟区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'S'), + (3098, 3093, '头屯河区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'T'), + (3099, 3093, '达坂城区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'D'), + (3100, 3093, '米东区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'M'), + (3101, 3093, '乌鲁木齐县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'W'), + (3102, 3092, '克拉玛依市', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'K'), + (3103, 3102, '独山子区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'D'), + (3104, 3102, '克拉玛依区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:11', 'K'), + (3105, 3102, '白碱滩区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'B'), + (3106, 3102, '乌尔禾区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'W'), + (3107, 3092, '吐鲁番市', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'T'), + (3108, 3107, '高昌区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'G'), + (3109, 3107, '鄯善县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'S'), + (3110, 3107, '托克逊县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'T'), + (3111, 3092, '哈密市', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'H'), + (3112, 3111, '伊州区', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'Y'), + (3113, 3111, '巴里坤哈萨克自治县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'B'), + (3114, 3111, '伊吾县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'Y'), + (3115, 3092, '昌吉回族自治州', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'C'), + (3116, 3115, '昌吉市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'C'), + (3117, 3115, '阜康市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'F'), + (3118, 3115, '呼图壁县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'H'), + (3119, 3115, '玛纳斯县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'M'), + (3120, 3115, '奇台县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'Q'), + (3121, 3115, '吉木萨尔县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'J'), + (3122, 3115, '木垒哈萨克自治县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'M'), + (3123, 3092, '博尔塔拉蒙古自治州', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'B'), + (3124, 3123, '博乐市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'B'), + (3125, 3123, '阿拉山口市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'A'), + (3126, 3123, '精河县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'J'), + (3127, 3123, '温泉县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'W'), + (3128, 3092, '巴音郭楞蒙古自治州', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'B'), + (3129, 3128, '库尔勒市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'K'), + (3130, 3128, '轮台县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'L'), + (3131, 3128, '尉犁县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'Y'), + (3132, 3128, '若羌县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'R'), + (3133, 3128, '且末县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'Q'), + (3134, 3128, '焉耆回族自治县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'Y'), + (3135, 3128, '和静县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'H'), + (3136, 3128, '和硕县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'H'), + (3137, 3128, '博湖县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'B'), + (3138, 3092, '阿克苏地区', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'A'), + (3139, 3138, '阿克苏市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'A'), + (3140, 3138, '库车市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'K'), + (3141, 3138, '温宿县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'W'), + (3142, 3138, '沙雅县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'S'), + (3143, 3138, '新和县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'X'), + (3144, 3138, '拜城县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'B'), + (3145, 3138, '乌什县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'W'), + (3146, 3138, '阿瓦提县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'A'), + (3147, 3138, '柯坪县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'K'), + (3148, 3092, '克孜勒苏柯尔克孜自治州', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'K'), + (3149, 3148, '阿图什市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'A'), + (3150, 3148, '阿克陶县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'A'), + (3151, 3148, '阿合奇县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'A'), + (3152, 3148, '乌恰县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:12', 'W'), + (3153, 3092, '喀什地区', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'K'), + (3154, 3153, '喀什市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'K'), + (3155, 3153, '疏附县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'S'), + (3156, 3153, '疏勒县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'S'), + (3157, 3153, '英吉沙县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'Y'), + (3158, 3153, '泽普县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'Z'), + (3159, 3153, '莎车县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'S'), + (3160, 3153, '叶城县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'Y'), + (3161, 3153, '麦盖提县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'M'), + (3162, 3153, '岳普湖县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'Y'), + (3163, 3153, '伽师县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'J'), + (3164, 3153, '巴楚县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'B'), + (3165, 3153, '塔什库尔干塔吉克自治县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'T'), + (3166, 3092, '和田地区', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'H'), + (3167, 3166, '和田市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'H'), + (3168, 3166, '和田县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'H'), + (3169, 3166, '墨玉县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'M'), + (3170, 3166, '皮山县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'P'), + (3171, 3166, '洛浦县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'L'), + (3172, 3166, '策勒县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'C'), + (3173, 3166, '于田县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'Y'), + (3174, 3166, '民丰县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'M'), + (3175, 3092, '伊犁哈萨克自治州', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'Y'), + (3176, 3175, '伊宁市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'Y'), + (3177, 3175, '奎屯市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'K'), + (3178, 3175, '霍尔果斯市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'H'), + (3179, 3175, '伊宁县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'Y'), + (3180, 3175, '察布查尔锡伯自治县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'C'), + (3181, 3175, '霍城县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'H'), + (3182, 3175, '巩留县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'G'), + (3183, 3175, '新源县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'X'), + (3184, 3175, '昭苏县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'Z'), + (3185, 3175, '特克斯县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'T'), + (3186, 3175, '尼勒克县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'N'), + (3187, 3092, '塔城地区', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'T'), + (3188, 3187, '塔城市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'T'), + (3189, 3187, '乌苏市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'W'), + (3190, 3187, '额敏县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'E'), + (3191, 3187, '沙湾县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'S'), + (3192, 3187, '托里县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'T'), + (3193, 3187, '裕民县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'Y'), + (3194, 3187, '和布克赛尔蒙古自治县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'H'), + (3195, 3092, '阿勒泰地区', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'A'), + (3196, 3195, '阿勒泰市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'A'), + (3197, 3195, '布尔津县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'B'), + (3198, 3195, '富蕴县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'F'), + (3199, 3195, '福海县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:13', 'F'), + (3200, 3195, '哈巴河县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:14', 'H'), + (3201, 3195, '青河县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:14', 'Q'), + (3202, 3195, '吉木乃县', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:14', 'J'), + (3203, 3218, '石河子市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:14', 'S'), + (3204, 3218, '阿拉尔市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:14', 'A'), + (3205, 3218, '图木舒克市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:14', 'T'), + (3206, 3218, '五家渠市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:14', 'W'), + (3207, 3218, '北屯市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:14', 'B'), + (3208, 3218, '铁门关市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:14', 'T'), + (3209, 3218, '双河市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:14', 'S'), + (3210, 3218, '可克达拉市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:14', 'K'), + (3211, 3218, '昆玉市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:14', 'K'), + (3212, 3218, '胡杨河市', 'area', '2021-12-07 17:50:58', '2022-09-06 14:57:14', 'H'), + (3216, 1669, '省直辖县级行政区划', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:14', 'S'), + (3217, 2193, '省直辖县级行政区划', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:14', 'S'), + (3218, 3092, '自治区直辖县级行政区划', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:14', 'Z'), + (3219, 1493, '省直辖县级行政区划', 'city', '2021-12-07 17:50:58', '2022-09-06 14:57:14', 'S'), + (3220, 2050, '中山市', 'area', '2022-04-06 10:15:56', '2022-09-06 14:57:14', 'Z'), + (3221, 2049, '东莞市', 'area', '2022-04-06 10:15:56', '2022-09-06 14:57:14', 'D'), + (3222, 2204, '三沙市', 'area', '2022-04-06 10:26:00', '2022-09-06 14:57:14', 'S'), + (3223, 2205, '儋州市', 'area', '2022-04-06 10:26:00', '2022-09-06 14:57:14', 'D'), + (3224, 2920, '嘉峪关市', 'area', '2020-04-06 11:02:58', '2022-09-06 14:57:14', 'J'); +/*!40000 ALTER TABLE `zones` ENABLE KEYS */; + +/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; +/*!40014 SET FOREIGN_KEY_CHECKS=IFNULL(@OLD_FOREIGN_KEY_CHECKS, 1) */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40111 SET SQL_NOTES=IFNULL(@OLD_SQL_NOTES, 1) */; diff --git a/lang/en/admin.php b/lang/en/admin.php new file mode 100644 index 0000000..40846b4 --- /dev/null +++ b/lang/en/admin.php @@ -0,0 +1,200 @@ + 'Remember me', + 'login' => 'Login', + 'logout' => 'Logout', + 'username' => 'Username', + 'password' => 'Password', + 'old_password' => 'Old Password', + 'confirm_password' => 'Confirm Password', + 'captcha' => 'Captcha', + 'captcha_error' => 'Captcha Error', + 'required' => ':attribute is required', + 'login_successful' => 'Login Success', + 'login_failed' => 'Username Or Password Error', + 'user_setting' => 'User Settings', + 'created_at' => 'Created At', + 'updated_at' => 'Updated At', + 'deleted_at' => 'Deleted At', + 'actions' => 'Actions', + 'create' => 'Create', + 'edit' => 'Edit', + 'show' => 'Show', + 'delete' => 'Delete', + 'confirm_delete' => 'Confirm Delete Selected Items?', + 'back' => 'Back', + 'reset' => 'Reset', + 'search' => 'Search', + 'list' => 'List', + 'add' => 'Add', + 'save' => 'Save', + 'detail' => 'Detail', + + 'developer' => 'Developer', + 'code_generator' => 'Code Generator', + 'terminal' => 'Terminal', + 'administrator' => 'Administrator', + 'soft_delete' => 'Soft Delete', + 'keyword' => 'Keyword', + 'unknown_error' => 'Unknown Error', + 'upload_file_error' => 'Upload File Error', + 'parent' => 'Parent', + 'order' => 'Order', + 'order_desc' => 'Order Desc', + 'order_asc' => 'Order Asc', + 'menus' => 'Menus', + 'successfully_message' => ':attribute Successfully', + 'failed_message' => ':attribute Failed', + 'action_success' => 'Action Success', + 'action_failed' => 'Action Failed', + 'save_success' => 'Save Success', + 'save_failed' => 'Save Failed', + 'yes' => 'Yes', + 'no' => 'No', + 'need_start_with_slash' => 'Need Start With /', + + 'code_generators' => [ + 'remark1' => 'For more parameters, please refer to', + 'remark2' => 'Database Migration', + 'remark3' => 'Multiple parameters are separated by English commas', + 'table_name' => 'Table Name', + 'model_name' => 'Model', + 'controller_name' => 'Controller', + 'service_name' => 'Service', + 'primary_key' => 'Primary Key', + 'primary_key_description' => 'Use increments method', + 'options' => 'Options', + 'create_database_migration' => 'Create Database Migration File', + 'create_table' => 'Create Table', + 'create_model' => 'Create Model', + 'create_controller' => 'Create Controller', + 'create_service' => 'Create Service', + 'app_title' => 'App Title', + 'column_name' => 'Column Name', + 'type' => 'Type', + 'extra_params' => 'Extra Params', + 'nullable' => 'Nullable', + 'index' => 'Index', + 'default_value' => 'Default Value', + 'comment' => 'Comment', + 'exists_table' => 'Exists Table', + 'generate_code' => 'Generate Code', + 'expand_more_settings' => 'More Settings', + 'collapse_settings' => 'Collapse Settings', + ], + + 'admin_users' => 'Admin Users', + 'admin_user' => [ + 'avatar' => 'Avatar', + 'name' => 'Name', + 'roles' => 'Roles', + 'search_username' => 'Search Username/Name', + 'password_confirmation' => 'Password Not Match', + 'old_password_required' => 'Old Password Required', + 'old_password_error' => 'Old Password Error', + 'username_already_exists' => 'Username Already Exists', + ], + + 'admin_roles' => 'Admin Roles', + 'admin_role' => [ + 'name' => 'Name', + 'slug' => 'Slug', + 'permissions' => 'Permissions', + 'slug_description' => 'unique identifier of a role', + 'name_already_exists' => 'Role Name Already Exists', + 'slug_already_exists' => 'Role Slug Already Exists', + ], + + 'admin_permissions' => 'Permissions', + 'admin_permission' => [ + 'name' => 'Name', + 'slug' => 'Slug', + 'http_method' => 'Http Method', + 'http_method_description' => 'if you do not select the value is ANY', + 'http_path' => 'Http Path', + 'auto_generate' => 'Auto Generate', + 'auto_generate_confirm' => 'The permission information will be generated after the permission table and permission menu association table are truncated. Do you want to continue?', + 'parent_id_not_allow' => 'Parent Id Not Allow', + 'name_already_exists' => 'Permission Name Already Exists', + 'slug_already_exists' => 'Permission Slug Already Exists', + ], + + 'admin_menus' => 'Menus', + 'admin_menu' => [ + 'parent_id' => 'Parent', + 'order' => 'Order', + 'title' => 'Title', + 'icon' => 'Icon', + 'icon_description' => 'Please refer to ', + 'url' => 'Url', + 'visible' => 'Visible', + 'type' => 'Type', + 'api' => 'Page API', + 'api_description' => 'schemaApi, the api for page initialization requests, needs to be consistent with queryPath in Controller', + 'route' => 'Route', + 'link' => 'Link', + 'class_name' => 'Class Name', + 'class_name_description' => 'The CSS class name of the menu, which is typically used to customize styles', + 'show' => 'Show', + 'hide' => 'Hide', + 'is_home' => 'Is Home', + 'is_home_description' => 'In multi-tab mode, the page label is fixed on the left', + 'parent_id_not_allow' => 'The parent menu cannot be set to the current submenu', + ], + + 'extensions' => [ + 'menu' => 'Extensions', + 'page_title' => 'Extensions', + 'create' => 'Create', + 'install' => 'Install', + 'create_extension' => 'Create Extension', + 'create_tips' => 'After the directory is created, a basic extended directory structure is created under the
:dir
directory', + 'local_install' => 'Local Install', + 'more_extensions' => 'More Extensions', + 'setting' => 'Setting', + 'enable' => 'Enable', + 'enable_confirm' => 'Are you sure to enable the extension?', + 'disable' => 'Disable', + 'disable_confirm' => 'Are you sure to disable the extension?', + 'uninstall' => 'Uninstall', + 'uninstall_confirm' => ' +
+Confirm to uninstall the extension?
+Uninstallation will delete all files and databases published after the extension is enabled and cannot be retrieved!!!
+Backup important data before performing operations!!!
+Extension package files will not be deleted, please manually delete them!!! +
+', + 'filter_placeholder' => 'Search by extension name', + 'form' => [ + 'create_extension' => 'Create Extension', + 'name' => 'Name', + 'namespace' => 'Namespace', + 'create_description' => 'It will be created in :dir Directory to create a basic extended directory structure', + ], + 'card' => [ + 'author' => 'Author', + 'version' => 'Version', + 'homepage' => 'Home', + 'status' => 'Status', + ], + 'status_map' => [ + 'enabled' => 'Enabled', + 'disabled' => 'Disabled', + ], + 'validation' => [ + 'file' => 'Please select file', + 'invalid_package' => 'Invalid extension package', + ], + ], + 'export' => [ + 'title' => 'Export', + 'all' => 'All', + 'page' => 'Current Page', + 'selected_rows' => 'Selected Rows', + 'page_no_data' => 'Current page has no data', + 'selected_rows_no_data' => 'No data is selected', + 'please_install_laravel_excel' => 'Please install the package "maatwebsite/excel" first', + ], +]; diff --git a/lang/en/menu.php b/lang/en/menu.php new file mode 100644 index 0000000..6ef0038 --- /dev/null +++ b/lang/en/menu.php @@ -0,0 +1,11 @@ + 'Dashboard', + 'admin_system' => 'Admin', + 'admin_users' => 'Users', + 'admin_roles' => 'Roles', + 'admin_permission' => 'Permissions', + 'admin_menu' => 'Menus', + 'admin_setting' => 'Settings', +]; diff --git a/lang/zh_CN/admin.php b/lang/zh_CN/admin.php new file mode 100644 index 0000000..6f7bf78 --- /dev/null +++ b/lang/zh_CN/admin.php @@ -0,0 +1,202 @@ + '记住我', + 'login' => '登 录', + 'logout' => '退出登录', + 'username' => '用户名', + 'password' => '密码', + 'old_password' => '旧密码', + 'confirm_password' => '确认密码', + 'captcha' => '验证码', + 'captcha_error' => '验证码有误', + 'required' => '请填写:attribute', + 'login_successful' => '登录成功', + 'login_failed' => '用户名或密码错误', + 'user_setting' => '个人设置', + 'created_at' => '创建时间', + 'updated_at' => '更新时间', + 'deleted_at' => '删除时间', + 'actions' => '操作', + 'create' => '新增', + 'edit' => '编辑', + 'show' => '查看', + 'delete' => '删除', + 'confirm_delete' => '确认删除选中项?', + 'back' => '返回', + 'reset' => '重置', + 'search' => '搜索', + 'list' => '列表', + 'add' => '新增', + 'save' => '保存', + 'detail' => '详情', + + 'developer' => '开发', + 'code_generator' => '代码生成器', + 'terminal' => '终端', + 'administrator' => '管理员', + 'soft_delete' => '软删除', + 'keyword' => '关键字', + 'unknown_error' => '未知错误', + 'upload_file_error' => '上传文件错误', + 'parent' => '父级', + 'order' => '排序', + 'order_desc' => '降序排序', + 'order_asc' => '升序排序', + 'menus' => '菜单', + 'successfully' => '成功', + 'failed' => '失败', + 'successfully_message' => ':attribute成功', + 'failed_message' => ':attribute失败', + 'action_success' => '操作成功', + 'action_failed' => '操作失败', + 'save_success' => '保存成功', + 'save_failed' => '保存失败', + 'yes' => '是', + 'no' => '否', + 'need_start_with_slash' => '需要以 / 开头', + + 'code_generators' => [ + 'remark1' => '额外参数请参考', + 'remark2' => '数据库迁移', + 'remark3' => '多个参数使用英文逗号分割', + 'table_name' => '表名', + 'model_name' => '模型', + 'controller_name' => '控制器', + 'service_name' => 'Service', + 'primary_key' => '主键名称', + 'primary_key_description' => '使用 increments 方法', + 'options' => '可选项', + 'create_database_migration' => '创建数据库迁移文件', + 'create_table' => '创建数据表', + 'create_model' => '创建模型', + 'create_controller' => '创建控制器', + 'create_service' => '创建Service', + 'app_title' => '功能名称', + 'column_name' => '字段名', + 'type' => '类型', + 'extra_params' => '额外参数', + 'nullable' => '允许空值', + 'index' => '索引', + 'default_value' => '默认值', + 'comment' => '注释', + 'exists_table' => '已有数据表', + 'generate_code' => '生成代码', + 'expand_more_settings' => '更多设置', + 'collapse_settings' => '收起设置', + ], + + 'admin_users' => '管理员', + 'admin_user' => [ + 'avatar' => '头像', + 'name' => '姓名', + 'roles' => '角色', + 'search_username' => '搜索用户名/名称', + 'password_confirmation' => '两次输入密码不一致', + 'old_password_required' => '请输入原密码', + 'old_password_error' => '原密码错误', + 'username_already_exists' => '用户名已存在', + ], + + 'admin_roles' => '角色', + 'admin_role' => [ + 'name' => '名称', + 'slug' => '标识', + 'permissions' => '权限', + 'slug_description' => '角色的唯一标识, 不可重复', + 'name_already_exists' => '角色名称已存在', + 'slug_already_exists' => '角色标识已存在', + ], + + 'admin_permissions' => '权限', + 'admin_permission' => [ + 'name' => '名称', + 'slug' => '标识', + 'http_method' => '请求方式', + 'http_method_description' => '不选则为ANY', + 'http_path' => '路由', + 'auto_generate' => '自动生成', + 'auto_generate_confirm' => '权限信息会在 截断权限表&权限菜单关联表 后重新生成, 是否继续操作 ?', + 'parent_id_not_allow' => '父级不允许设置为当前子权限', + 'name_already_exists' => '权限名称已存在', + 'slug_already_exists' => '权限标识已存在', + ], + + 'admin_menus' => '菜单', + 'admin_menu' => [ + 'parent_id' => '父级', + 'order' => '排序', + 'title' => '名称', + 'icon' => '图标', + 'icon_description' => '请参考', + 'url' => '链接', + 'visible' => '可见', + 'type' => '类型', + 'api' => '页面Api', + 'api_description' => 'schemaApi, 页面初始化请求的api, 需要与Controller中的queryPath一致', + 'route' => '路由', + 'link' => '外链', + 'class_name' => '类名', + 'class_name_description' => '菜单的CSS类名, 一般用于自定义样式', + 'show' => '可见', + 'hide' => '隐藏', + 'is_home' => '首页', + 'is_home_description' => '在多页签卡模式下,页面标签将固定在左侧', + 'parent_id_not_allow' => '父级菜单不允许设置为当前子菜单', + ], + + 'extensions' => [ + 'menu' => '扩展', + 'page_title' => '扩展', + 'create' => '创建', + 'install' => '安装', + 'create_extension' => '创建扩展', + 'create_tips' => '创建成功后会在
:dir
目录下创建基础的扩展目录结构', + 'local_install' => '本地安装', + 'more_extensions' => '更多扩展', + 'setting' => '设置', + 'enable' => '启用', + 'enable_confirm' => '确定要启用该扩展吗?', + 'disable' => '禁用', + 'disable_confirm' => '确定要禁用该扩展吗?', + 'uninstall' => '卸载', + 'uninstall_confirm' => ' +
+确认卸载该扩展?
+卸载将会删除启用扩展后发布的所有文件及数据库, 且不可找回!!!
+如有重要数据请备份后再操作!!!
+扩展包文件将不会被删除, 请手动删除!!! +
+', + 'filter_placeholder' => '输入扩展名称', + 'form' => [ + 'create_extension' => '创建扩展', + 'name' => '名称', + 'namespace' => '命名空间', + 'create_description' => '创建成功后会在 :dir 目录下创建基础的扩展目录结构', + ], + 'card' => [ + 'author' => '作者', + 'version' => '版本', + 'homepage' => '主页', + 'status' => '状态', + ], + 'status_map' => [ + 'enabled' => '已启用', + 'disabled' => '已禁用', + ], + 'validation' => [ + 'file' => '请选择文件', + 'invalid_package' => '无效的扩展包', + ], + ], + 'export' => [ + 'title' => '导出', + 'all' => '全部', + 'page' => '本页', + 'selected_rows' => '选中行', + 'page_no_data' => '本页无数据', + 'selected_rows_no_data' => '请选择要导出的数据', + 'please_install_laravel_excel' => '请先安装 laravel-excel 扩展', + ], +]; diff --git a/lang/zh_CN/menu.php b/lang/zh_CN/menu.php new file mode 100644 index 0000000..0b89e30 --- /dev/null +++ b/lang/zh_CN/menu.php @@ -0,0 +1,11 @@ + '控制台', + 'admin_system' => '系统管理', + 'admin_users' => '管理员', + 'admin_roles' => '角色', + 'admin_permission' => '权限', + 'admin_menu' => '菜单', + 'admin_setting' => '设置', +]; diff --git a/package.json b/package.json new file mode 100644 index 0000000..e543e0d --- /dev/null +++ b/package.json @@ -0,0 +1,13 @@ +{ + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build" + }, + "devDependencies": { + "axios": "^1.1.2", + "laravel-vite-plugin": "^0.7.5", + "vite": "^4.0.0" + } +} diff --git a/phpunit.xml b/phpunit.xml new file mode 100644 index 0000000..e9f533d --- /dev/null +++ b/phpunit.xml @@ -0,0 +1,31 @@ + + + + + ./tests/Unit + + + ./tests/Feature + + + + + ./app + + + + + + + + + + + + + + diff --git a/public/.htaccess b/public/.htaccess new file mode 100644 index 0000000..3aec5e2 --- /dev/null +++ b/public/.htaccess @@ -0,0 +1,21 @@ + + + Options -MultiViews -Indexes + + + RewriteEngine On + + # Handle Authorization Header + RewriteCond %{HTTP:Authorization} . + RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] + + # Redirect Trailing Slashes If Not A Folder... + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_URI} (.+)/$ + RewriteRule ^ %1 [L,R=301] + + # Send Requests To Front Controller... + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_FILENAME} !-f + RewriteRule ^ index.php [L] + diff --git a/public/admin/assets/BarCode-d645932b.js b/public/admin/assets/BarCode-d645932b.js new file mode 100644 index 0000000..3d9d208 --- /dev/null +++ b/public/admin/assets/BarCode-d645932b.js @@ -0,0 +1 @@ +import{g as At,b as Pt,R as te,t as Tt}from"./index-14fc2d8d.js";var he={},U={},l={};Object.defineProperty(l,"__esModule",{value:!0});function Mt(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var kt=function t(e,r){Mt(this,t),this.data=e,this.text=r.text||e,this.options=r};l.default=kt;Object.defineProperty(U,"__esModule",{value:!0});U.CODE39=void 0;var It=function(){function t(e,r){for(var n=0;n=200){u=n.shift()-105;var y=h.SWAP[u];y!==void 0?o=e.next(n,a+1,y):((i===h.SET_A||i===h.SET_B)&&u===h.SHIFT&&(n[0]=i===h.SET_A?n[0]>95?n[0]-96:n[0]:n[0]<32?n[0]+96:n[0]),o=e.next(n,a+1,i))}else u=e.correctIndex(n,i),o=e.next(n,a+1,i);var $=e.getBar(u),Rt=u*a;return{result:$+o.result,checksum:Rt+o.checksum}}}]),e}(Wt.default);P.default=tn;var _e={};Object.defineProperty(_e,"__esModule",{value:!0});var g=f,ut=function(e){return e.match(new RegExp("^"+g.A_CHARS+"*"))[0].length},ft=function(e){return e.match(new RegExp("^"+g.B_CHARS+"*"))[0].length},ct=function(e){return e.match(new RegExp("^"+g.C_CHARS+"*"))[0]};function ve(t,e){var r=e?g.A_CHARS:g.B_CHARS,n=t.match(new RegExp("^("+r+"+?)(([0-9]{2}){2,})([^0-9]|$)"));if(n)return n[1]+String.fromCharCode(204)+lt(t.substring(n[1].length));var a=t.match(new RegExp("^"+r+"+"))[0];return a.length===t.length?t:a+String.fromCharCode(e?205:206)+ve(t.substring(a.length),!e)}function lt(t){var e=ct(t),r=e.length;if(r===t.length)return t;t=t.substring(r);var n=ut(t)>=ft(t);return e+String.fromCharCode(n?206:205)+ve(t,n)}_e.default=function(t){var e=void 0,r=ct(t).length;if(r>=2)e=g.C_START_CHAR+lt(t);else{var n=ut(t)>ft(t);e=(n?g.A_START_CHAR:g.B_START_CHAR)+ve(t,n)}return e.replace(/[\xCD\xCE]([^])[\xCD\xCE]/,function(a,i){return String.fromCharCode(203)+i})};Object.defineProperty(de,"__esModule",{value:!0});var nn=P,rn=ht(nn),an=_e,on=ht(an);function ht(t){return t&&t.__esModule?t:{default:t}}function un(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function ae(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e&&(typeof e=="object"||typeof e=="function")?e:t}function fn(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var cn=function(t){fn(e,t);function e(r,n){if(un(this,e),/^[\x00-\x7F\xC8-\xD3]+$/.test(r))var a=ae(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,(0,on.default)(r),n));else var a=ae(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,r,n));return ae(a)}return e}(rn.default);de.default=cn;var se={};Object.defineProperty(se,"__esModule",{value:!0});var ln=function(){function t(e,r){for(var n=0;nn.width*10?n.width*10:n.fontSize,a.guardHeight=n.height+a.fontSize/2+n.textMargin,a}return zn(e,[{key:"encode",value:function(){return this.options.flat?this.encodeFlat():this.encodeGuarded()}},{key:"leftText",value:function(n,a){return this.text.substr(n,a)}},{key:"leftEncode",value:function(n,a){return(0,Ue.default)(n,a)}},{key:"rightText",value:function(n,a){return this.text.substr(n,a)}},{key:"rightEncode",value:function(n,a){return(0,Ue.default)(n,a)}},{key:"encodeGuarded",value:function(){var n={fontSize:this.fontSize},a={height:this.guardHeight};return[{data:S.SIDE_BIN,options:a},{data:this.leftEncode(),text:this.leftText(),options:n},{data:S.MIDDLE_BIN,options:a},{data:this.rightEncode(),text:this.rightText(),options:n},{data:S.SIDE_BIN,options:a}]}},{key:"encodeFlat",value:function(){var n=[S.SIDE_BIN,this.leftEncode(),S.MIDDLE_BIN,this.rightEncode(),S.SIDE_BIN];return{data:n.join(""),text:this.text}}}]),e}(Vn.default);V.default=Yn;Object.defineProperty(ge,"__esModule",{value:!0});var Zn=function(){function t(e,r){for(var n=0;nn.width*10?a.fontSize=n.width*10:a.fontSize=n.fontSize,a.guardHeight=n.height+a.fontSize/2+n.textMargin,a}return Br(e,[{key:"valid",value:function(){return this.data.search(/^[0-9]{12}$/)!==-1&&this.data[11]==fe(this.data)}},{key:"encode",value:function(){return this.options.flat?this.flatEncoding():this.guardedEncoding()}},{key:"flatEncoding",value:function(){var n="";return n+="101",n+=(0,x.default)(this.data.substr(0,6),"LLLLLL"),n+="01010",n+=(0,x.default)(this.data.substr(6,6),"RRRRRR"),n+="101",{data:n,text:this.text}}},{key:"guardedEncoding",value:function(){var n=[];return this.displayValue&&n.push({data:"00000000",text:this.text.substr(0,1),options:{textAlign:"left",fontSize:this.fontSize}}),n.push({data:"101"+(0,x.default)(this.data[0],"L"),options:{height:this.guardHeight}}),n.push({data:(0,x.default)(this.data.substr(1,5),"LLLLL"),text:this.text.substr(1,5),options:{fontSize:this.fontSize}}),n.push({data:"01010",options:{height:this.guardHeight}}),n.push({data:(0,x.default)(this.data.substr(6,5),"RRRRR"),text:this.text.substr(6,5),options:{fontSize:this.fontSize}}),n.push({data:(0,x.default)(this.data[11],"R")+"101",options:{height:this.guardHeight}}),this.displayValue&&n.push({data:"00000000",text:this.text.substr(11,1),options:{textAlign:"right",fontSize:this.fontSize}}),n}}]),e}(Cr.default);function fe(t){var e=0,r;for(r=1;r<11;r+=2)e+=parseInt(t[r]);for(r=0;r<11;r+=2)e+=parseInt(t[r])*3;return(10-e%10)%10}L.default=Xr;var me={};Object.defineProperty(me,"__esModule",{value:!0});var zr=function(){function t(e,r){for(var n=0;nn.width*10?a.fontSize=n.width*10:a.fontSize=n.fontSize,a.guardHeight=n.height+a.fontSize/2+n.textMargin,a}return zr(e,[{key:"valid",value:function(){return this.isValid}},{key:"encode",value:function(){return this.options.flat?this.flatEncoding():this.guardedEncoding()}},{key:"flatEncoding",value:function(){var n="";return n+="101",n+=this.encodeMiddleDigits(),n+="010101",{data:n,text:this.text}}},{key:"guardedEncoding",value:function(){var n=[];return this.displayValue&&n.push({data:"00000000",text:this.text[0],options:{textAlign:"left",fontSize:this.fontSize}}),n.push({data:"101",options:{height:this.guardHeight}}),n.push({data:this.encodeMiddleDigits(),text:this.text.substring(1,7),options:{fontSize:this.fontSize}}),n.push({data:"010101",options:{height:this.guardHeight}}),this.displayValue&&n.push({data:"00000000",text:this.text[7],options:{textAlign:"right",fontSize:this.fontSize}}),n}},{key:"encodeMiddleDigits",value:function(){var n=this.upcA[0],a=this.upcA[this.upcA.length-1],i=Kr[parseInt(a)][parseInt(n)];return(0,qr.default)(this.middleDigits,i)}}]),e}(Jr.default);function Je(t,e){for(var r=parseInt(t[t.length-1]),n=Zr[r],a="",i=0,o=0;o=3&&this.number<=131070}}]),e}(ki.default);Q.pharmacode=Li;var W={};Object.defineProperty(W,"__esModule",{value:!0});W.codabar=void 0;var Ni=function(){function t(e,r){for(var n=0;n0?e.fontSize+e.textMargin:0)+e.marginTop+e.marginBottom}function Et(t,e,r){if(r.displayValue&&ee&&(e=t[r].height);return e}function Eo(t,e,r){var n;if(r)n=r;else if(typeof document<"u")n=document.createElement("canvas").getContext("2d");else return 0;n.font=e.fontOptions+" "+e.fontSize+"px "+e.font;var a=n.measureText(t);if(!a)return 0;var i=a.width;return i}d.getMaximumHeightOfEncodings=Oo;d.getEncodingHeight=Ot;d.getBarcodePadding=Et;d.calculateEncodingAttributes=po;d.getTotalWidthOfEncodings=go;Object.defineProperty(Ie,"__esModule",{value:!0});var bo=function(){function t(e,r){for(var n=0;n0?(o=0,a.textAlign="left"):r.textAlign=="right"?(o=n.width-1,a.textAlign="right"):(o=n.width/2,a.textAlign="center"),a.fillText(n.text,o,u)}}},{key:"moveCanvasDrawing",value:function(r){var n=this.canvas.getContext("2d");n.translate(r.width,0)}},{key:"restoreCanvas",value:function(){var r=this.canvas.getContext("2d");r.restore()}}]),t}();Ie.default=xo;var De={};Object.defineProperty(De,"__esModule",{value:!0});var Ro=function(){function t(e,r){for(var n=0;n0&&(this.drawRect(y-n.width*u,o,n.width*u,n.height,r),u=0);u>0&&this.drawRect(y-n.width*(u-1),o,n.width*u,n.height,r)}},{key:"drawSVGText",value:function(r,n,a){var i=this.document.createElementNS(z,"text");if(n.displayValue){var o,u;i.setAttribute("style","font:"+n.fontOptions+" "+n.fontSize+"px "+n.font),n.textPosition=="top"?u=n.fontSize-n.textMargin:u=n.height+n.textMargin+n.fontSize,n.textAlign=="left"||a.barcodePadding>0?(o=0,i.setAttribute("text-anchor","start")):n.textAlign=="right"?(o=a.width-1,i.setAttribute("text-anchor","end")):(o=a.width/2,i.setAttribute("text-anchor","middle")),i.setAttribute("x",o),i.setAttribute("y",u),i.appendChild(this.document.createTextNode(a.text)),r.appendChild(i)}}},{key:"setSvgAttributes",value:function(r,n){var a=this.svg;a.setAttribute("width",r+"px"),a.setAttribute("height",n+"px"),a.setAttribute("x","0px"),a.setAttribute("y","0px"),a.setAttribute("viewBox","0 0 "+r+" "+n),a.setAttribute("xmlns",z),a.setAttribute("version","1.1"),a.setAttribute("style","transform: translate(0,0)")}},{key:"createGroup",value:function(r,n,a){var i=this.document.createElementNS(z,"g");return i.setAttribute("transform","translate("+r+", "+n+")"),a.appendChild(i),i}},{key:"setGroupOptions",value:function(r,n){r.setAttribute("style","fill:"+n.lineColor+";")}},{key:"drawRect",value:function(r,n,a,i,o){var u=this.document.createElementNS(z,"rect");return u.setAttribute("x",r),u.setAttribute("y",n),u.setAttribute("width",a),u.setAttribute("height",i),o.appendChild(u),u}}]),t}();De.default=ko;var je={};Object.defineProperty(je,"__esModule",{value:!0});var Io=function(){function t(e,r){for(var n=0;n"u"?"undefined":Uo(t))==="object"&&!t.nodeName)return{element:t,renderer:B.default.ObjectRenderer};throw new Jo.InvalidElementException}}function Qo(t){var e=document.querySelectorAll(t);if(e.length!==0){for(var r=[],n=0;n"u")throw Error("No element to render on was provided.");return a._renderProperties=(0,iu.default)(e),a._encodings=[],a._options=$t.default,a._errorHandler=new cu.default(a),typeof r<"u"&&(n=n||{},n.format||(n.format=xt()),a.options(n)[n.format](r,n).render()),a};ee.getModule=function(t){return E.default[t]};for(var tt in E.default)E.default.hasOwnProperty(tt)&&hu(E.default,tt);function hu(t,e){p.prototype[e]=p.prototype[e.toUpperCase()]=p.prototype[e.toLowerCase()]=function(r,n){var a=this;return a._errorHandler.wrapBarcodeCall(function(){n.text=typeof n.text>"u"?void 0:""+n.text;var i=(0,G.default)(a._options,n);i=(0,uu.default)(i);var o=t[e],u=St(r,o,i);return a._encodings.push(u),a})}}function St(t,e,r){t=""+t;var n=new e(t,r);if(!n.valid())throw new wt.InvalidInputException(n.constructor.name,t);var a=n.encode();a=(0,mt.default)(a);for(var i=0;i"u"&&(r=!0),c=CM(n),o=0,e=t.length;o=55296&&s<=57343){if(s>=55296&&s<=56319&&o+1=56320&&i<=57343)){a+=encodeURIComponent(t[o]+t[o+1]),o++;continue}a+="%EF%BF%BD";continue}a+=encodeURIComponent(t[o])}return a}ln.defaultChars=";/?:@&=+$,-_.!~*'()#";ln.componentChars="-_.!~*'()";var wM=ln,Zn={};function AM(t){var n,r,o=Zn[t];if(o)return o;for(o=Zn[t]=[],n=0;n<128;n++)r=String.fromCharCode(n),o.push(r);for(n=0;n=55296&&u<=57343?p+="���":p+=String.fromCharCode(u),e+=6;continue}if((i&248)===240&&e+91114111?p+="����":(u-=65536,p+=String.fromCharCode(55296+(u>>10),56320+(u&1023))),e+=9;continue}p+="�"}return p})}un.defaultChars=";/?:@&=+$,#";un.componentChars="";var qM=un,DM=function(n){var r="";return r+=n.protocol||"",r+=n.slashes?"//":"",r+=n.auth?n.auth+"@":"",n.hostname&&n.hostname.indexOf(":")!==-1?r+="["+n.hostname+"]":r+=n.hostname||"",r+=n.port?":"+n.port:"",r+=n.pathname||"",r+=n.search||"",r+=n.hash||"",r};function cn(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}var EM=/^([a-z0-9.+-]+:)/i,SM=/:[0-9]*$/,FM=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,TM=["<",">",'"',"`"," ","\r",` +`," "],RM=["{","}","|","\\","^","`"].concat(TM),LM=["'"].concat(RM),Jn=["%","/","?",";","#"].concat(LM),Yn=["/","?","#"],zM=255,Wn=/^[+a-z0-9A-Z_-]{0,63}$/,IM=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,Qn={javascript:!0,"javascript:":!0},Kn={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function BM(t,n){if(t&&t instanceof cn)return t;var r=new cn;return r.parse(t,n),r}cn.prototype.parse=function(t,n){var r,o,e,s,i,c=t;if(c=c.trim(),!n&&t.split("#").length===1){var a=FM.exec(c);if(a)return this.pathname=a[1],a[2]&&(this.search=a[2]),this}var l=EM.exec(c);if(l&&(l=l[0],e=l.toLowerCase(),this.protocol=l,c=c.substr(l.length)),(n||l||c.match(/^\/\/[^@\/]+@[^@\/]+/))&&(i=c.substr(0,2)==="//",i&&!(l&&Qn[l])&&(c=c.substr(2),this.slashes=!0)),!Qn[l]&&(i||l&&!Kn[l])){var u=-1;for(r=0;r127?k+="x":k+=x[d];if(!k.match(Wn)){var y=m.slice(0,r),C=m.slice(r+1),_=x.match(IM);_&&(y.push(_[1]),C.unshift(_[2])),C.length&&(c=C.join(".")+c),this.hostname=y.join(".");break}}}}this.hostname.length>zM&&(this.hostname=""),b&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}var D=c.indexOf("#");D!==-1&&(this.hash=c.substr(D),c=c.slice(0,D));var F=c.indexOf("?");return F!==-1&&(this.search=c.substr(F),c=c.slice(0,F)),c&&(this.pathname=c),Kn[e]&&this.hostname&&!this.pathname&&(this.pathname=""),this};cn.prototype.parseHost=function(t){var n=SM.exec(t);n&&(n=n[0],n!==":"&&(this.port=n.substr(1)),t=t.substr(0,t.length-n.length)),t&&(this.hostname=t)};var MM=BM;J.encode=wM;J.decode=qM;J.format=DM;J.parse=MM;var O={},_n,Xn;function Tr(){return Xn||(Xn=1,_n=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/),_n}var kn,nr;function Rr(){return nr||(nr=1,kn=/[\0-\x1F\x7F-\x9F]/),kn}var xn,rr;function NM(){return rr||(rr=1,xn=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/),xn}var vn,tr;function Lr(){return tr||(tr=1,vn=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/),vn}var or;function PM(){return or||(or=1,O.Any=Tr(),O.Cc=Rr(),O.Cf=NM(),O.P=zn,O.Z=Lr()),O}(function(t){function n(g){return Object.prototype.toString.call(g)}function r(g){return n(g)==="[object String]"}var o=Object.prototype.hasOwnProperty;function e(g,S){return o.call(g,S)}function s(g){var S=Array.prototype.slice.call(arguments,1);return S.forEach(function(A){if(A){if(typeof A!="object")throw new TypeError(A+"must be object");Object.keys(A).forEach(function(N){g[N]=A[N]})}}),g}function i(g,S,A){return[].concat(g.slice(0,S),A,g.slice(S+1))}function c(g){return!(g>=55296&&g<=57343||g>=64976&&g<=65007||(g&65535)===65535||(g&65535)===65534||g>=0&&g<=8||g===11||g>=14&&g<=31||g>=127&&g<=159||g>1114111)}function a(g){if(g>65535){g-=65536;var S=55296+(g>>10),A=56320+(g&1023);return String.fromCharCode(S,A)}return String.fromCharCode(g)}var l=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,u=/&([a-z#][a-z0-9]{1,31});/gi,p=new RegExp(l.source+"|"+u.source,"gi"),h=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,f=Fr;function b(g,S){var A=0;return e(f,S)?f[S]:S.charCodeAt(0)===35&&h.test(S)&&(A=S[1].toLowerCase()==="x"?parseInt(S.slice(2),16):parseInt(S.slice(1),10),c(A))?a(A):g}function m(g){return g.indexOf("\\")<0?g:g.replace(l,"$1")}function x(g){return g.indexOf("\\")<0&&g.indexOf("&")<0?g:g.replace(p,function(S,A,N){return A||b(S,N)})}var k=/[&<>"]/,d=/[&<>"]/g,v={"&":"&","<":"<",">":">",'"':"""};function y(g){return v[g]}function C(g){return k.test(g)?g.replace(d,y):g}var _=/[.?*+^$[\]\\(){}|-]/g;function D(g){return g.replace(_,"\\$&")}function F(g){switch(g){case 9:case 32:return!0}return!1}function $(g){if(g>=8192&&g<=8202)return!0;switch(g){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1}var w=zn;function E(g){return w.test(g)}function Q(g){switch(g){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}}function G(g){return g=g.trim().replace(/\s+/g," "),"ẞ".toLowerCase()==="Ṿ"&&(g=g.replace(/ẞ/g,"ß")),g.toLowerCase().toUpperCase()}t.lib={},t.lib.mdurl=J,t.lib.ucmicro=PM(),t.assign=s,t.isString=r,t.has=e,t.unescapeMd=m,t.unescapeAll=x,t.isValidEntityCode=c,t.fromCodePoint=a,t.escapeHtml=C,t.arrayReplaceAt=i,t.isSpace=F,t.isWhiteSpace=$,t.isMdAsciiPunct=Q,t.isPunctChar=E,t.escapeRE=D,t.normalizeReference=G})(q);var pn={},OM=function(n,r,o){var e,s,i,c,a=-1,l=n.posMax,u=n.pos;for(n.pos=r+1,e=1;n.pos32))return a;if(e===41){if(s===0)break;s--}r++}return c===r||s!==0||(a.str=er(n.slice(c,r)),a.lines=i,a.pos=r,a.ok=!0),a},VM=q.unescapeAll,$M=function(n,r,o){var e,s,i=0,c=r,a={ok:!1,pos:0,lines:0,str:""};if(r>=o||(s=n.charCodeAt(r),s!==34&&s!==39&&s!==40))return a;for(r++,s===40&&(s=41);r"+V(t[n].content)+""};B.code_block=function(t,n,r,o,e){var s=t[n];return""+V(t[n].content)+` +`};B.fence=function(t,n,r,o,e){var s=t[n],i=s.info?HM(s.info).trim():"",c="",a="",l,u,p,h,f;return i&&(p=i.split(/(\s+)/g),c=p[0],a=p.slice(2).join("")),r.highlight?l=r.highlight(s.content,c,a)||V(s.content):l=V(s.content),l.indexOf(""+l+` +`):"
"+l+`
+`};B.image=function(t,n,r,o,e){var s=t[n];return s.attrs[s.attrIndex("alt")][1]=e.renderInlineAsText(s.children,r,o),e.renderToken(t,n,r)};B.hardbreak=function(t,n,r){return r.xhtmlOut?`
+`:`
+`};B.softbreak=function(t,n,r){return r.breaks?r.xhtmlOut?`
+`:`
+`:` +`};B.text=function(t,n){return V(t[n].content)};B.html_block=function(t,n){return t[n].content};B.html_inline=function(t,n){return t[n].content};function Y(){this.rules=GM({},B)}Y.prototype.renderAttrs=function(n){var r,o,e;if(!n.attrs)return"";for(e="",r=0,o=n.attrs.length;r +`:">",s)};Y.prototype.renderInline=function(t,n,r){for(var o,e="",s=this.rules,i=0,c=t.length;i\s]/i.test(t)}function nN(t){return/^<\/a\s*>/i.test(t)}var rN=function(n){var r,o,e,s,i,c,a,l,u,p,h,f,b,m,x,k,d=n.tokens,v;if(n.md.options.linkify){for(o=0,e=d.length;o=0;r--){if(c=s[r],c.type==="link_close"){for(r--;s[r].level!==c.level&&s[r].type!=="link_open";)r--;continue}if(c.type==="html_inline"&&(XM(c.content)&&b>0&&b--,nN(c.content)&&b++),!(b>0)&&c.type==="text"&&n.md.linkify.test(c.content)){for(u=c.content,v=n.md.linkify.match(u),a=[],f=c.level,h=0,l=0;lh&&(i=new n.Token("text","",0),i.content=u.slice(h,p),i.level=f,a.push(i)),i=new n.Token("link_open","a",1),i.attrs=[["href",x]],i.level=f++,i.markup="linkify",i.info="auto",a.push(i),i=new n.Token("text","",0),i.content=k,i.level=f,a.push(i),i=new n.Token("link_close","a",-1),i.level=--f,i.markup="linkify",i.info="auto",a.push(i),h=v[l].lastIndex);h=0;n--)r=t[n],r.type==="text"&&!o&&(r.content=r.content.replace(oN,sN)),r.type==="link_open"&&r.info==="auto"&&o--,r.type==="link_close"&&r.info==="auto"&&o++}function iN(t){var n,r,o=0;for(n=t.length-1;n>=0;n--)r=t[n],r.type==="text"&&!o&&zr.test(r.content)&&(r.content=r.content.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/mg,"$1—").replace(/(^|\s)--(?=\s|$)/mg,"$1–").replace(/(^|[^-\s])--(?=[^-\s]|$)/mg,"$1–")),r.type==="link_open"&&r.info==="auto"&&o--,r.type==="link_close"&&r.info==="auto"&&o++}var aN=function(n){var r;if(n.md.options.typographer)for(r=n.tokens.length-1;r>=0;r--)n.tokens[r].type==="inline"&&(tN.test(n.tokens[r].content)&&cN(n.tokens[r].children),zr.test(n.tokens[r].content)&&iN(n.tokens[r].children))},sr=q.isWhiteSpace,cr=q.isPunctChar,ir=q.isMdAsciiPunct,lN=/['"]/,ar=/['"]/g,lr="’";function tn(t,n,r){return t.substr(0,n)+r+t.substr(n+1)}function uN(t,n){var r,o,e,s,i,c,a,l,u,p,h,f,b,m,x,k,d,v,y,C,_;for(y=[],r=0;r=0&&!(y[d].level<=a);d--);if(y.length=d+1,o.type==="text"){e=o.content,i=0,c=e.length;n:for(;i=0)u=e.charCodeAt(s.index-1);else for(d=r-1;d>=0&&!(t[d].type==="softbreak"||t[d].type==="hardbreak");d--)if(t[d].content){u=t[d].content.charCodeAt(t[d].content.length-1);break}if(p=32,i=48&&u<=57&&(k=x=!1),x&&k&&(x=h,k=f),!x&&!k){v&&(o.content=tn(o.content,s.index,lr));continue}if(k){for(d=y.length-1;d>=0&&(l=y[d],!(y[d].level=0;r--)n.tokens[r].type!=="inline"||!lN.test(n.tokens[r].content)||uN(n.tokens[r].children,n)};function W(t,n,r){this.type=t,this.tag=n,this.attrs=null,this.map=null,this.nesting=r,this.level=0,this.children=null,this.content="",this.markup="",this.info="",this.meta=null,this.block=!1,this.hidden=!1}W.prototype.attrIndex=function(n){var r,o,e;if(!this.attrs)return-1;for(r=this.attrs,o=0,e=r.length;o=0&&(o=this.attrs[r][1]),o};W.prototype.attrJoin=function(n,r){var o=this.attrIndex(n);o<0?this.attrPush([n,r]):this.attrs[o][1]=this.attrs[o][1]+" "+r};var Bn=W,fN=Bn;function Ir(t,n,r){this.src=t,this.env=r,this.tokens=[],this.inlineMode=!1,this.md=n}Ir.prototype.Token=fN;var hN=Ir,dN=In,yn=[["normalize",YM],["block",WM],["inline",QM],["linkify",rN],["replacements",aN],["smartquotes",pN]];function Mn(){this.ruler=new dN;for(var t=0;to||(u=r+1,n.sCount[u]=4||(c=n.bMarks[u]+n.tShift[u],c>=n.eMarks[u])||(C=n.src.charCodeAt(c++),C!==124&&C!==45&&C!==58)||c>=n.eMarks[u]||(_=n.src.charCodeAt(c++),_!==124&&_!==45&&_!==58&&!Cn(_))||C===45&&Cn(_))return!1;for(;c=4||(p=ur(i),p.length&&p[0]===""&&p.shift(),p.length&&p[p.length-1]===""&&p.pop(),h=p.length,h===0||h!==b.length))return!1;if(e)return!0;for(d=n.parentType,n.parentType="table",y=n.md.block.ruler.getRules("blockquote"),f=n.push("table_open","table",1),f.map=x=[r,0],f=n.push("thead_open","thead",1),f.map=[r,r+1],f=n.push("tr_open","tr",1),f.map=[r,r+1],a=0;a=4)break;for(p=ur(i),p.length&&p[0]===""&&p.shift(),p.length&&p[p.length-1]===""&&p.pop(),u===r+2&&(f=n.push("tbody_open","tbody",1),f.map=k=[r+2,0]),f=n.push("tr_open","tr",1),f.map=[u,u+1],a=0;a=4){e++,s=e;continue}break}return n.line=s,i=n.push("code_block","code",0),i.content=n.getLines(r,s,4+n.blkIndent,!1)+` +`,i.map=[r,n.line],!0},_N=function(n,r,o,e){var s,i,c,a,l,u,p,h=!1,f=n.bMarks[r]+n.tShift[r],b=n.eMarks[r];if(n.sCount[r]-n.blkIndent>=4||f+3>b||(s=n.src.charCodeAt(f),s!==126&&s!==96)||(l=f,f=n.skipChars(f,s),i=f-l,i<3)||(p=n.src.slice(l,f),c=n.src.slice(f,b),s===96&&c.indexOf(String.fromCharCode(s))>=0))return!1;if(e)return!0;for(a=r;a++,!(a>=o||(f=l=n.bMarks[a]+n.tShift[a],b=n.eMarks[a],f=4)&&(f=n.skipChars(f,s),!(f-l=4||n.src.charCodeAt(w++)!==62)return!1;if(e)return!0;for(a=f=n.sCount[r]+1,n.src.charCodeAt(w)===32?(w++,a++,f++,s=!1,y=!0):n.src.charCodeAt(w)===9?(y=!0,(n.bsCount[r]+f)%4===3?(w++,a++,f++,s=!1):s=!0):y=!1,b=[n.bMarks[r]],n.bMarks[r]=w;w=E,d=[n.sCount[r]],n.sCount[r]=f-a,v=[n.tShift[r]],n.tShift[r]=w-n.bMarks[r],_=n.md.block.ruler.getRules("blockquote"),k=n.parentType,n.parentType="blockquote",h=r+1;h=E));h++){if(n.src.charCodeAt(w++)===62&&!F){for(a=f=n.sCount[h]+1,n.src.charCodeAt(w)===32?(w++,a++,f++,s=!1,y=!0):n.src.charCodeAt(w)===9?(y=!0,(n.bsCount[h]+f)%4===3?(w++,a++,f++,s=!1):s=!0):y=!1,b.push(n.bMarks[h]),n.bMarks[h]=w;w=E,m.push(n.bsCount[h]),n.bsCount[h]=n.sCount[h]+1+(y?1:0),d.push(n.sCount[h]),n.sCount[h]=f-a,v.push(n.tShift[h]),n.tShift[h]=w-n.bMarks[h];continue}if(u)break;for(C=!1,c=0,l=_.length;c",D.map=p=[r,0],n.md.block.tokenize(n,r,h),D=n.push("blockquote_close","blockquote",-1),D.markup=">",n.lineMax=$,n.parentType=k,p[1]=n.line,c=0;c=4||(s=n.src.charCodeAt(l++),s!==42&&s!==45&&s!==95))return!1;for(i=1;l=s||(r=t.src.charCodeAt(e++),r<48||r>57))return-1;for(;;){if(e>=s)return-1;if(r=t.src.charCodeAt(e++),r>=48&&r<=57){if(e-o>=10)return-1;continue}if(r===41||r===46)break;return-1}return e=4||n.listIndent>=0&&n.sCount[r]-n.listIndent>=4&&n.sCount[r]=n.blkIndent&&(N=!0),(E=hr(n,r))>=0){if(p=!0,G=n.bMarks[r]+n.tShift[r],k=Number(n.src.slice(G,E-1)),N&&k!==1)return!1}else if((E=fr(n,r))>=0)p=!1;else return!1;if(N&&n.skipSpaces(E)>=n.eMarks[r])return!1;if(x=n.src.charCodeAt(E-1),e)return!0;for(m=n.tokens.length,p?(A=n.push("ordered_list_open","ol",1),k!==1&&(A.attrs=[["start",k]])):A=n.push("bullet_list_open","ul",1),A.map=b=[r,0],A.markup=String.fromCharCode(x),v=r,Q=!1,S=n.md.block.ruler.getRules("list"),_=n.parentType,n.parentType="list";v=d?l=1:l=y-u,l>4&&(l=1),a=u+l,A=n.push("list_item_open","li",1),A.markup=String.fromCharCode(x),A.map=h=[r,0],p&&(A.info=n.src.slice(G,E-1)),$=n.tight,F=n.tShift[r],D=n.sCount[r],C=n.listIndent,n.listIndent=n.blkIndent,n.blkIndent=a,n.tight=!0,n.tShift[r]=i-n.bMarks[r],n.sCount[r]=y,i>=d&&n.isEmpty(r+1)?n.line=Math.min(n.line+2,o):n.md.block.tokenize(n,r,o,!0),(!n.tight||Q)&&(Gn=!1),Q=n.line-r>1&&n.isEmpty(n.line-1),n.blkIndent=n.listIndent,n.listIndent=C,n.tShift[r]=F,n.sCount[r]=D,n.tight=$,A=n.push("list_item_close","li",-1),A.markup=String.fromCharCode(x),v=r=n.line,h[1]=v,i=n.bMarks[r],v>=o||n.sCount[v]=4)break;for(g=!1,c=0,f=S.length;c=4||n.src.charCodeAt(_)!==91)return!1;for(;++_3)&&!(n.sCount[F]<0)){for(d=!1,u=0,p=v.length;u"u"&&(n.env.references={}),typeof n.env.references[h]>"u"&&(n.env.references[h]={title:y,href:l}),n.parentType=b,n.line=r+C+1),!0)},qN=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","section","source","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],fn={},DN="[a-zA-Z_:][a-zA-Z0-9:._-]*",EN="[^\"'=<>`\\x00-\\x20]+",SN="'[^']*'",FN='"[^"]*"',TN="(?:"+EN+"|"+SN+"|"+FN+")",RN="(?:\\s+"+DN+"(?:\\s*=\\s*"+TN+")?)",Mr="<[A-Za-z][A-Za-z0-9\\-]*"+RN+"*\\s*\\/?>",Nr="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",LN="|",zN="<[?][\\s\\S]*?[?]>",IN="]*>",BN="",MN=new RegExp("^(?:"+Mr+"|"+Nr+"|"+LN+"|"+zN+"|"+IN+"|"+BN+")"),NN=new RegExp("^(?:"+Mr+"|"+Nr+")");fn.HTML_TAG_RE=MN;fn.HTML_OPEN_CLOSE_TAG_RE=NN;var PN=qN,ON=fn.HTML_OPEN_CLOSE_TAG_RE,H=[[/^<(script|pre|style|textarea)(?=(\s|>|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(ON.source+"\\s*$"),/^$/,!1]],UN=function(n,r,o,e){var s,i,c,a,l=n.bMarks[r]+n.tShift[r],u=n.eMarks[r];if(n.sCount[r]-n.blkIndent>=4||!n.md.options.html||n.src.charCodeAt(l)!==60)return!1;for(a=n.src.slice(l,u),s=0;s=4||(s=n.src.charCodeAt(l),s!==35||l>=u))return!1;for(i=1,s=n.src.charCodeAt(++l);s===35&&l6||ll&&dr(n.src.charCodeAt(c-1))&&(u=c),n.line=r+1,a=n.push("heading_open","h"+String(i),1),a.markup="########".slice(0,i),a.map=[r,n.line],a=n.push("inline","",0),a.content=n.src.slice(l,u).trim(),a.map=[r,n.line],a.children=[],a=n.push("heading_close","h"+String(i),-1),a.markup="########".slice(0,i)),!0)},$N=function(n,r,o){var e,s,i,c,a,l,u,p,h,f=r+1,b,m=n.md.block.ruler.getRules("paragraph");if(n.sCount[r]-n.blkIndent>=4)return!1;for(b=n.parentType,n.parentType="paragraph";f3)){if(n.sCount[f]>=n.blkIndent&&(l=n.bMarks[f]+n.tShift[f],u=n.eMarks[f],l=u)))){p=h===61?1:2;break}if(!(n.sCount[f]<0)){for(s=!1,i=0,c=m.length;i3)&&!(n.sCount[l]<0)){for(e=!1,s=0,i=u.length;s0&&this.level++,this.tokens.push(o),o};M.prototype.isEmpty=function(n){return this.bMarks[n]+this.tShift[n]>=this.eMarks[n]};M.prototype.skipEmptyLines=function(n){for(var r=this.lineMax;nr;)if(!hn(this.src.charCodeAt(--n)))return n+1;return n};M.prototype.skipChars=function(n,r){for(var o=this.src.length;no;)if(r!==this.src.charCodeAt(--n))return n+1;return n};M.prototype.getLines=function(n,r,o,e){var s,i,c,a,l,u,p,h=n;if(n>=r)return"";for(u=new Array(r-n),s=0;ho?u[s]=new Array(i-o+1).join(" ")+this.src.slice(a,l):u[s]=this.src.slice(a,l)}return u.join("")};M.prototype.Token=Pr;var HN=M,jN=In,en=[["table",gN,["paragraph","reference"]],["code",bN],["fence",_N,["paragraph","reference","blockquote","list"]],["blockquote",kN,["paragraph","reference","blockquote","list"]],["hr",vN,["paragraph","reference","blockquote","list"]],["list",CN,["paragraph","reference","blockquote"]],["reference",AN],["html_block",UN,["paragraph","reference","blockquote"]],["heading",VN,["paragraph","reference","blockquote"]],["lheading",$N],["paragraph",GN]];function dn(){this.ruler=new jN;for(var t=0;t=r||t.sCount[c]=l){t.line=r;break}for(e=0;e=0&&n.pending.charCodeAt(o)===32)if(o>=1&&n.pending.charCodeAt(o-1)===32){for(s=o-1;s>=1&&n.pending.charCodeAt(s-1)===32;)s--;n.pending=n.pending.slice(0,s),n.push("hardbreak","br",0)}else n.pending=n.pending.slice(0,-1),n.push("softbreak","br",0);else n.push("softbreak","br",0);for(i++;i?@[]^_`{|}~-".split("").forEach(function(t){Nn[t.charCodeAt(0)]=1});var XN=function(n,r){var o,e=n.pos,s=n.posMax;if(n.src.charCodeAt(e)!==92)return!1;if(e++,e=0;r--)o=n[r],!(o.marker!==95&&o.marker!==42)&&o.end!==-1&&(e=n[o.end],c=r>0&&n[r-1].end===o.end+1&&n[r-1].marker===o.marker&&n[r-1].token===o.token-1&&n[o.end+1].token===e.token+1,i=String.fromCharCode(o.marker),s=t.tokens[o.token],s.type=c?"strong_open":"em_open",s.tag=c?"strong":"em",s.nesting=1,s.markup=c?i+i:i,s.content="",s=t.tokens[e.token],s.type=c?"strong_close":"em_close",s.tag=c?"strong":"em",s.nesting=-1,s.markup=c?i+i:i,s.content="",c&&(t.tokens[n[r-1].token].content="",t.tokens[n[o.end+1].token].content="",r--))}gn.postProcess=function(n){var r,o=n.tokens_meta,e=n.tokens_meta.length;for(br(n,n.delimiters),r=0;r=m)return!1;if(x=a,l=n.md.helpers.parseLinkDestination(n.src,a,n.posMax),l.ok){for(h=n.md.normalizeLink(l.str),n.md.validateLink(h)?a=l.pos:h="",x=a;a=m||n.src.charCodeAt(a)!==41)&&(k=!0),a++}if(k){if(typeof n.env.references>"u")return!1;if(a=0?s=n.src.slice(x,a++):a=i+1):a=i+1,s||(s=n.src.slice(c,i)),u=n.env.references[rP(s)],!u)return n.pos=b,!1;h=u.href,f=u.title}return r||(n.pos=c,n.posMax=i,p=n.push("link_open","a",1),p.attrs=o=[["href",h]],f&&o.push(["title",f]),n.md.inline.tokenize(n),p=n.push("link_close","a",-1)),n.pos=a,n.posMax=m,!0},oP=q.normalizeReference,qn=q.isSpace,eP=function(n,r){var o,e,s,i,c,a,l,u,p,h,f,b,m,x="",k=n.pos,d=n.posMax;if(n.src.charCodeAt(n.pos)!==33||n.src.charCodeAt(n.pos+1)!==91||(a=n.pos+2,c=n.md.helpers.parseLinkLabel(n,n.pos+1,!1),c<0))return!1;if(l=c+1,l=d)return!1;for(m=l,p=n.md.helpers.parseLinkDestination(n.src,l,n.posMax),p.ok&&(x=n.md.normalizeLink(p.str),n.md.validateLink(x)?l=p.pos:x=""),m=l;l=d||n.src.charCodeAt(l)!==41)return n.pos=k,!1;l++}else{if(typeof n.env.references>"u")return!1;if(l=0?i=n.src.slice(m,l++):l=c+1):l=c+1,i||(i=n.src.slice(a,c)),u=n.env.references[oP(i)],!u)return n.pos=k,!1;x=u.href,h=u.title}return r||(s=n.src.slice(a,c),n.md.inline.parse(s,n.md,n.env,b=[]),f=n.push("image","img",0),f.attrs=o=[["src",x],["alt",""]],f.children=b,f.content=s,h&&o.push(["title",h])),n.pos=l,n.posMax=d,!0},sP=/^([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/,cP=/^([a-zA-Z][a-zA-Z0-9+.\-]{1,31}):([^<>\x00-\x20]*)$/,iP=function(n,r){var o,e,s,i,c,a,l=n.pos;if(n.src.charCodeAt(l)!==60)return!1;for(c=n.pos,a=n.posMax;;){if(++l>=a||(i=n.src.charCodeAt(l),i===60))return!1;if(i===62)break}return o=n.src.slice(c+1,l),cP.test(o)?(e=n.md.normalizeLink(o),n.md.validateLink(e)?(r||(s=n.push("link_open","a",1),s.attrs=[["href",e]],s.markup="autolink",s.info="auto",s=n.push("text","",0),s.content=n.md.normalizeLinkText(o),s=n.push("link_close","a",-1),s.markup="autolink",s.info="auto"),n.pos+=o.length+2,!0):!1):sP.test(o)?(e=n.md.normalizeLink("mailto:"+o),n.md.validateLink(e)?(r||(s=n.push("link_open","a",1),s.attrs=[["href",e]],s.markup="autolink",s.info="auto",s=n.push("text","",0),s.content=n.md.normalizeLinkText(o),s=n.push("link_close","a",-1),s.markup="autolink",s.info="auto"),n.pos+=o.length+2,!0):!1):!1},aP=fn.HTML_TAG_RE;function lP(t){var n=t|32;return n>=97&&n<=122}var uP=function(n,r){var o,e,s,i,c=n.pos;return!n.md.options.html||(s=n.posMax,n.src.charCodeAt(c)!==60||c+2>=s)||(o=n.src.charCodeAt(c+1),o!==33&&o!==63&&o!==47&&!lP(o))||(e=n.src.slice(c).match(aP),!e)?!1:(r||(i=n.push("html_inline","",0),i.content=n.src.slice(c,c+e[0].length)),n.pos+=e[0].length,!0)},_r=Fr,pP=q.has,fP=q.isValidEntityCode,kr=q.fromCodePoint,hP=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,dP=/^&([a-z][a-z0-9]{1,31});/i,mP=function(n,r){var o,e,s,i=n.pos,c=n.posMax;if(n.src.charCodeAt(i)!==38)return!1;if(i+1i;o-=b[o]+1)if(s=n[o],s.marker===e.marker&&s.open&&s.end<0&&(a=!1,(s.close||e.open)&&(s.length+e.length)%3===0&&(s.length%3!==0||e.length%3!==0)&&(a=!0),!a)){l=o>0&&!n[o-1].open?b[o-1]+1:0,b[r]=r-o+l,b[o]=l,e.open=!1,s.end=r,s.close=!1,c=-1,f=-2;break}c!==-1&&(u[e.marker][(e.open?3:0)+(e.length||0)%3]=c)}}}var gP=function(n){var r,o=n.tokens_meta,e=n.tokens_meta.length;for(xr(n,n.delimiters),r=0;r0&&e++,s[r].type==="text"&&r+10&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],e={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(o),this.tokens_meta.push(e),o};nn.prototype.scanDelims=function(t,n){var r=t,o,e,s,i,c,a,l,u,p,h=!0,f=!0,b=this.posMax,m=this.src.charCodeAt(t);for(o=t>0?this.src.charCodeAt(t-1):32;r=s)break;continue}t.pending+=t.src[t.pos++]}t.pending&&t.pushPending()};rn.prototype.parse=function(t,n,r,o){var e,s,i,c=new this.State(t,n,r,o);for(this.tokenize(c),s=this.ruler2.getRules(""),i=s.length,e=0;e|$))",n.tpl_email_fuzzy="(^|"+r+'|"|\\(|'+n.src_ZCc+")("+n.src_email_name+"@"+n.tpl_host_fuzzy_strict+")",n.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+n.src_ZPCc+"))((?![$+<=>^`||])"+n.tpl_host_port_fuzzy_strict+n.src_path+")",n.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+n.src_ZPCc+"))((?![$+<=>^`||])"+n.tpl_host_port_no_ip_fuzzy_strict+n.src_path+")",n}),Sn}function Rn(t){var n=Array.prototype.slice.call(arguments,1);return n.forEach(function(r){r&&Object.keys(r).forEach(function(o){t[o]=r[o]})}),t}function bn(t){return Object.prototype.toString.call(t)}function vP(t){return bn(t)==="[object String]"}function yP(t){return bn(t)==="[object Object]"}function CP(t){return bn(t)==="[object RegExp]"}function qr(t){return bn(t)==="[object Function]"}function wP(t){return t.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}var Or={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};function AP(t){return Object.keys(t||{}).reduce(function(n,r){return n||Or.hasOwnProperty(r)},!1)}var qP={"http:":{validate:function(t,n,r){var o=t.slice(n);return r.re.http||(r.re.http=new RegExp("^\\/\\/"+r.re.src_auth+r.re.src_host_port_strict+r.re.src_path,"i")),r.re.http.test(o)?o.match(r.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(t,n,r){var o=t.slice(n);return r.re.no_http||(r.re.no_http=new RegExp("^"+r.re.src_auth+"(?:localhost|(?:(?:"+r.re.src_domain+")\\.)+"+r.re.src_domain_root+")"+r.re.src_port+r.re.src_host_terminator+r.re.src_path,"i")),r.re.no_http.test(o)?n>=3&&t[n-3]===":"||n>=3&&t[n-3]==="/"?0:o.match(r.re.no_http)[0].length:0}},"mailto:":{validate:function(t,n,r){var o=t.slice(n);return r.re.mailto||(r.re.mailto=new RegExp("^"+r.re.src_email_name+"@"+r.re.src_host_strict,"i")),r.re.mailto.test(o)?o.match(r.re.mailto)[0].length:0}}},DP="a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]",EP="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function SP(t){t.__index__=-1,t.__text_cache__=""}function FP(t){return function(n,r){var o=n.slice(r);return t.test(o)?o.match(t)[0].length:0}}function Dr(){return function(t,n){n.normalize(t)}}function an(t){var n=t.re=xP()(t.__opts__),r=t.__tlds__.slice();t.onCompile(),t.__tlds_replaced__||r.push(DP),r.push(n.src_xn),n.src_tlds=r.join("|");function o(c){return c.replace("%TLDS%",n.src_tlds)}n.email_fuzzy=RegExp(o(n.tpl_email_fuzzy),"i"),n.link_fuzzy=RegExp(o(n.tpl_link_fuzzy),"i"),n.link_no_ip_fuzzy=RegExp(o(n.tpl_link_no_ip_fuzzy),"i"),n.host_fuzzy_test=RegExp(o(n.tpl_host_fuzzy_test),"i");var e=[];t.__compiled__={};function s(c,a){throw new Error('(LinkifyIt) Invalid schema "'+c+'": '+a)}Object.keys(t.__schemas__).forEach(function(c){var a=t.__schemas__[c];if(a!==null){var l={validate:null,link:null};if(t.__compiled__[c]=l,yP(a)){CP(a.validate)?l.validate=FP(a.validate):qr(a.validate)?l.validate=a.validate:s(c,a),qr(a.normalize)?l.normalize=a.normalize:a.normalize?s(c,a):l.normalize=Dr();return}if(vP(a)){e.push(c);return}s(c,a)}}),e.forEach(function(c){t.__compiled__[t.__schemas__[c]]&&(t.__compiled__[c].validate=t.__compiled__[t.__schemas__[c]].validate,t.__compiled__[c].normalize=t.__compiled__[t.__schemas__[c]].normalize)}),t.__compiled__[""]={validate:null,normalize:Dr()};var i=Object.keys(t.__compiled__).filter(function(c){return c.length>0&&t.__compiled__[c]}).map(wP).join("|");t.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+n.src_ZPCc+"))("+i+")","i"),t.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+n.src_ZPCc+"))("+i+")","ig"),t.re.pretest=RegExp("("+t.re.schema_test.source+")|("+t.re.host_fuzzy_test.source+")|@","i"),SP(t)}function TP(t,n){var r=t.__index__,o=t.__last_index__,e=t.__text_cache__.slice(r,o);this.schema=t.__schema__.toLowerCase(),this.index=r+n,this.lastIndex=o+n,this.raw=e,this.text=e,this.url=e}function Er(t,n){var r=new TP(t,n);return t.__compiled__[r.schema].normalize(r,t),r}function T(t,n){if(!(this instanceof T))return new T(t,n);n||AP(t)&&(n=t,t={}),this.__opts__=Rn({},Or,n),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=Rn({},qP,t),this.__compiled__={},this.__tlds__=EP,this.__tlds_replaced__=!1,this.re={},an(this)}T.prototype.add=function(n,r){return this.__schemas__[n]=r,an(this),this};T.prototype.set=function(n){return this.__opts__=Rn(this.__opts__,n),this};T.prototype.test=function(n){if(this.__text_cache__=n,this.__index__=-1,!n.length)return!1;var r,o,e,s,i,c,a,l,u;if(this.re.schema_test.test(n)){for(a=this.re.schema_search,a.lastIndex=0;(r=a.exec(n))!==null;)if(s=this.testSchemaAt(n,r[2],a.lastIndex),s){this.__schema__=r[2],this.__index__=r.index+r[1].length,this.__last_index__=r.index+r[0].length+s;break}}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(l=n.search(this.re.host_fuzzy_test),l>=0&&(this.__index__<0||l=0&&(e=n.match(this.re.email_fuzzy))!==null&&(i=e.index+e[1].length,c=e.index+e[0].length,(this.__index__<0||ithis.__last_index__)&&(this.__schema__="mailto:",this.__index__=i,this.__last_index__=c))),this.__index__>=0};T.prototype.pretest=function(n){return this.re.pretest.test(n)};T.prototype.testSchemaAt=function(n,r,o){return this.__compiled__[r.toLowerCase()]?this.__compiled__[r.toLowerCase()].validate(n,o,this):0};T.prototype.match=function(n){var r=0,o=[];this.__index__>=0&&this.__text_cache__===n&&(o.push(Er(this,r)),r=this.__last_index__);for(var e=r?n.slice(r):n;this.test(e);)o.push(Er(this,r)),e=e.slice(this.__last_index__),r+=this.__last_index__;return o.length?o:null};T.prototype.tlds=function(n,r){return n=Array.isArray(n)?n:[n],r?(this.__tlds__=this.__tlds__.concat(n).sort().filter(function(o,e,s){return o!==s[e-1]}).reverse(),an(this),this):(this.__tlds__=n.slice(),this.__tlds_replaced__=!0,an(this),this)};T.prototype.normalize=function(n){n.schema||(n.url="http://"+n.url),n.schema==="mailto:"&&!/^mailto:/i.test(n.url)&&(n.url="mailto:"+n.url)};T.prototype.onCompile=function(){};var RP=T;const Z=2147483647,z=36,On=1,X=26,LP=38,zP=700,Ur=72,Vr=128,$r="-",IP=/^xn--/,BP=/[^\0-\x7F]/,MP=/[\x2E\u3002\uFF0E\uFF61]/g,NP={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},Fn=z-On,I=Math.floor,Tn=String.fromCharCode;function P(t){throw new RangeError(NP[t])}function PP(t,n){const r=[];let o=t.length;for(;o--;)r[o]=n(t[o]);return r}function Gr(t,n){const r=t.split("@");let o="";r.length>1&&(o=r[0]+"@",t=r[1]),t=t.replace(MP,".");const e=t.split("."),s=PP(e,n).join(".");return o+s}function Un(t){const n=[];let r=0;const o=t.length;for(;r=55296&&e<=56319&&rString.fromCodePoint(...t),OP=function(t){return t>=48&&t<58?26+(t-48):t>=65&&t<91?t-65:t>=97&&t<123?t-97:z},Sr=function(t,n){return t+22+75*(t<26)-((n!=0)<<5)},jr=function(t,n,r){let o=0;for(t=r?I(t/zP):t>>1,t+=I(t/n);t>Fn*X>>1;o+=z)t=I(t/Fn);return I(o+(Fn+1)*t/(t+LP))},Vn=function(t){const n=[],r=t.length;let o=0,e=Vr,s=Ur,i=t.lastIndexOf($r);i<0&&(i=0);for(let c=0;c=128&&P("not-basic"),n.push(t.charCodeAt(c));for(let c=i>0?i+1:0;c=r&&P("invalid-input");const h=OP(t.charCodeAt(c++));h>=z&&P("invalid-input"),h>I((Z-o)/u)&&P("overflow"),o+=h*u;const f=p<=s?On:p>=s+X?X:p-s;if(hI(Z/b)&&P("overflow"),u*=b}const l=n.length+1;s=jr(o-a,l,a==0),I(o/l)>Z-e&&P("overflow"),e+=I(o/l),o%=l,n.splice(o++,0,e)}return String.fromCodePoint(...n)},$n=function(t){const n=[];t=Un(t);const r=t.length;let o=Vr,e=0,s=Ur;for(const a of t)a<128&&n.push(Tn(a));const i=n.length;let c=i;for(i&&n.push($r);c=o&&uI((Z-e)/l)&&P("overflow"),e+=(a-o)*l,o=a;for(const u of t)if(uZ&&P("overflow"),u===o){let p=e;for(let h=z;;h+=z){const f=h<=s?On:h>=s+X?X:h-s;if(p=0))try{n.hostname=Yr.toASCII(n.hostname)}catch{}return U.encode(U.format(n))}function eO(t){var n=U.parse(t,!0);if(n.hostname&&(!n.protocol||Wr.indexOf(n.protocol)>=0))try{n.hostname=Yr.toUnicode(n.hostname)}catch{}return U.decode(U.format(n),U.decode.defaultChars+"%")}function R(t,n){if(!(this instanceof R))return new R(t,n);n||K.isString(t)||(n=t||{},t="default"),this.inline=new QP,this.block=new WP,this.core=new YP,this.renderer=new JP,this.linkify=new KP,this.validateLink=tO,this.normalizeLink=oO,this.normalizeLinkText=eO,this.utils=K,this.helpers=K.assign({},ZP),this.options={},this.configure(t),n&&this.set(n)}R.prototype.set=function(t){return K.assign(this.options,t),this};R.prototype.configure=function(t){var n=this,r;if(K.isString(t)&&(r=t,t=XP[r],!t))throw new Error('Wrong `markdown-it` preset "'+r+'", check name');if(!t)throw new Error("Wrong `markdown-it` preset, can't be empty");return t.options&&n.set(t.options),t.components&&Object.keys(t.components).forEach(function(o){t.components[o].rules&&n[o].ruler.enableOnly(t.components[o].rules),t.components[o].rules2&&n[o].ruler2.enableOnly(t.components[o].rules2)}),this};R.prototype.enable=function(t,n){var r=[];Array.isArray(t)||(t=[t]),["core","block","inline"].forEach(function(e){r=r.concat(this[e].ruler.enable(t,!0))},this),r=r.concat(this.inline.ruler2.enable(t,!0));var o=t.filter(function(e){return r.indexOf(e)<0});if(o.length&&!n)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+o);return this};R.prototype.disable=function(t,n){var r=[];Array.isArray(t)||(t=[t]),["core","block","inline"].forEach(function(e){r=r.concat(this[e].ruler.disable(t,!0))},this),r=r.concat(this.inline.ruler2.disable(t,!0));var o=t.filter(function(e){return r.indexOf(e)<0});if(o.length&&!n)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+o);return this};R.prototype.use=function(t){var n=[this].concat(Array.prototype.slice.call(arguments,1));return t.apply(t,n),this};R.prototype.parse=function(t,n){if(typeof t!="string")throw new Error("Input data should be a String");var r=new this.core.State(t,this,n);return this.core.process(r),r.tokens};R.prototype.render=function(t,n){return n=n||{},this.renderer.render(this.parse(t,n),this.options,n)};R.prototype.parseInline=function(t,n){var r=new this.core.State(t,this,n);return r.inlineMode=!0,this.core.process(r),r.tokens};R.prototype.renderInline=function(t,n){return n=n||{},this.renderer.render(this.parseInline(t,n),this.options,n)};var sO=R,cO=sO;const iO=Xr(cO),aO=["aac","m4a","mp3","oga","ogg","wav"],lO=["mp4","m4v","ogv","webm","mpg","mpeg"];let j={en:{"html5 video not supported":"Your browser does not support playing HTML5 video.","html5 audio not supported":"Your browser does not support playing HTML5 audio.","html5 media fallback link":'You can download the file instead.',"html5 media description":"Here is a description of the content: %s"}},sn=function(t,n,r){if((!j[t]||!j[t][n])&&(t="en"),!j[t])return"";let o=j[t][n]||"";if(r)for(let e of r)o=o.replace("%s",e);return o};function uO(t,n,r){let o,e,s,i,c,a,l,u,p,h,f,b,m,x="",k=t.pos,d=t.posMax;if(t.src.charCodeAt(t.pos)!==33||t.src.charCodeAt(t.pos+1)!==91||(a=t.pos+2,c=t.md.helpers.parseLinkLabel(t,t.pos+1,!1),c<0))return!1;if(l=c+1,l=d)return!1;for(m=l,p=t.md.helpers.parseLinkDestination(t.src,l,t.posMax),p.ok&&(x=t.md.normalizeLink(p.str),t.md.validateLink(x)?l=p.pos:x=""),m=l;l=d||t.src.charCodeAt(l)!==41)return t.pos=k,!1;l++}else{if(typeof t.env.references>"u")return!1;if(l=0?i=t.src.slice(m,l++):l=c+1):l=c+1,i||(i=t.src.slice(a,c)),u=t.env.references[r.utils.normalizeReference(i)],!u)return t.pos=k,!1;x=u.href,h=u.title}if(t.pos=l,t.posMax=d,n)return!0;s=t.src.slice(a,c),t.md.inline.parse(s,t.md,t.env,b=[]);const v=Qr(x),y=v=="image"?"img":v;return f=t.push(v,y,0),f.attrs=o=[["src",x]],v=="image"&&o.push(["alt",""]),f.children=b,f.content=s,h&&o.push(["title",h]),t.pos=l,t.posMax=d,!0}function Qr(t){const n=t.match(/\.([^/.]+)$/);if(n===null)return"image";const r=n[1];return aO.indexOf(r.toLowerCase())!=-1?"audio":lO.indexOf(r.toLowerCase())!=-1?"video":"image"}function pO(t,n,r,o,e){const s=t[n],i=s.type;if(i!=="video"&&i!=="audio")return"";let c=r.html5Media[`${i}Attrs`].trim();c&&(c=" "+c);const a=s.attrs[s.attrIndex("src")][1],l=s.attrIndex("title")!=-1?` title="${e.utils.escapeHtml(s.attrs[s.attrIndex("title")][1])}"`:"",u=sn(o.language,`html5 ${i} not supported`)+` +`+sn(o.language,"html5 media fallback link",[a]),p=s.content?` +`+sn(o.language,"html5 media description",[e.utils.escapeHtml(s.content)]):"";return`<${i} src="${a}"${l}${c}> +${u}${p} +`}function fO(t,n={}){n.messages&&(j=n.messages),n.translateFn&&(sn=n.translateFn);const r=n.videoAttrs!==void 0?n.videoAttrs:'controls class="html5-video-player"',o=n.audioAttrs!==void 0?n.audioAttrs:'controls class="html5-audio-player"';t.inline.ruler.at("image",(e,s)=>uO(e,s,t)),t.renderer.rules.video=t.renderer.rules.audio=(e,s,i,c)=>(i.html5Media={videoAttrs:r,audioAttrs:o},pO(e,s,i,c,t))}var hO={html5Media:fO,messages:j,guessMediaType:Qr},Ln=iO();Ln.use(hO.html5Media);function dO(t,n){return n&&Ln.set(n),Ln.render(t)}var gO=function(t){nt(n,t);function n(r){var o=t.call(this,r)||this;return o.htmlRef=o.htmlRef.bind(o),o}return n.prototype.htmlRef=function(r){this.dom=r,r&&this._render()},n.prototype.componentDidUpdate=function(r){this.props.content!==r.content&&this._render()},n.prototype._render=function(){return rt(this,void 0,void 0,function(){var r,o,e;return tt(this,function(s){return r=this.props,o=r.content,e=r.options,this.dom.innerHTML=dO(o,e),[2]})})},n.prototype.render=function(){return Hn.createElement("div",{"data-testid":"markdown-body",className:"markdown-body",ref:this.htmlRef})},n.defaultProps={content:"",options:{linkify:!0}},n}(Hn.Component);export{gO as default,dO as markdown}; diff --git a/public/admin/assets/Markdown-59d5f941.js.gz b/public/admin/assets/Markdown-59d5f941.js.gz new file mode 100644 index 0000000..9d01594 Binary files /dev/null and b/public/admin/assets/Markdown-59d5f941.js.gz differ diff --git a/public/admin/assets/RichText-95e56af5.js b/public/admin/assets/RichText-95e56af5.js new file mode 100644 index 0000000..cd3274b --- /dev/null +++ b/public/admin/assets/RichText-95e56af5.js @@ -0,0 +1,165 @@ +import{c as ke,g as qe,b as Ge,d as je,R as We}from"./index-14fc2d8d.js";var Fe={exports:{}};/*! + * froala_editor v3.1.0 (https://www.froala.com/wysiwyg-editor) + * License https://froala.com/wysiwyg-editor/terms/ + * Copyright 2014-2020 Froala Labs + */var Ye;function $e(){return Ye||(Ye=1,function(Ie,Le){(function(o,t){Ie.exports=t()})(ke,function(){function o(e){return(o=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r})(e)}Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),Element.prototype.closest||(Element.prototype.closest=function(e){var r=this;if(!document.documentElement.contains(r))return null;do{if(r.matches(e))return r;r=r.parentElement||r.parentNode}while(r!==null&&r.nodeType===1);return null}),Element.prototype.matches||(Element.prototype.matches=Element.prototype.matchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector||Element.prototype.oMatchesSelector||Element.prototype.webkitMatchesSelector||function(e){for(var r=(this.document||this.ownerDocument).querySelectorAll(e),s=r.length;0<=--s&&r.item(s)!==this;);return-1")},closeTagString:function(m){return"")},isFirstSibling:function g(m,C){C===void 0&&(C=!0);for(var O=m.previousSibling;O&&C&&e.node.hasClass(O,"fr-marker");)O=O.previousSibling;return!O||O.nodeType===Node.TEXT_NODE&&O.textContent===""&&g(O)},isLastSibling:function g(m,C){C===void 0&&(C=!0);for(var O=m.nextSibling;O&&C&&e.node.hasClass(O,"fr-marker");)O=O.nextSibling;return!O||O.nodeType===Node.TEXT_NODE&&O.textContent===""&&g(O)},isList:function(m){return!!m&&0<=["UL","OL"].indexOf(m.tagName)},isLink:function(m){return!!m&&m.nodeType===Node.ELEMENT_NODE&&m.tagName.toLowerCase()==="a"},isElement:E,contents:s,isVoid:function(m){return m&&m.nodeType===Node.ELEMENT_NODE&&0<=t.VOID_ELEMENTS.indexOf((m.tagName||"").toLowerCase())},hasFocus:function(m){return m===e.doc.activeElement&&(!e.doc.hasFocus||e.doc.hasFocus())&&!!(E(m)||m.type||m.href||~m.tabIndex)},isEditable:function(m){return(!m.getAttribute||m.getAttribute("contenteditable")!=="false")&&["STYLE","SCRIPT"].indexOf(m.tagName)<0},isDeletable:function(m){return m&&m.nodeType===Node.ELEMENT_NODE&&m.getAttribute("class")&&0<=(m.getAttribute("class")||"").indexOf("fr-deletable")},hasClass:function(m,C){return m instanceof r&&(m=m.get(0)),m&&m.classList&&m.classList.contains(C)},filter:function(m){return e.browser.msie?m:{acceptNode:m}}}},Object.assign(t.DEFAULTS,{htmlAllowedTags:["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","br","button","canvas","caption","cite","code","col","colgroup","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meter","nav","noscript","object","ol","optgroup","option","output","p","param","pre","progress","queue","rp","rt","ruby","s","samp","script","style","section","select","small","source","span","strike","strong","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","track","u","ul","var","video","wbr"],htmlRemoveTags:["script","style"],htmlAllowedAttrs:["accept","accept-charset","accesskey","action","align","allowfullscreen","allowtransparency","alt","async","autocomplete","autofocus","autoplay","autosave","background","bgcolor","border","charset","cellpadding","cellspacing","checked","cite","class","color","cols","colspan","content","contenteditable","contextmenu","controls","coords","data","data-.*","datetime","default","defer","dir","dirname","disabled","download","draggable","dropzone","enctype","for","form","formaction","frameborder","headers","height","hidden","high","href","hreflang","http-equiv","icon","id","ismap","itemprop","keytype","kind","label","lang","language","list","loop","low","max","maxlength","media","method","min","mozallowfullscreen","multiple","muted","name","novalidate","open","optimum","pattern","ping","placeholder","playsinline","poster","preload","pubdate","radiogroup","readonly","rel","required","reversed","rows","rowspan","sandbox","scope","scoped","scrolling","seamless","selected","shape","size","sizes","span","src","srcdoc","srclang","srcset","start","step","summary","spellcheck","style","tabindex","target","title","type","translate","usemap","value","valign","webkitallowfullscreen","width","wrap"],htmlAllowedStyleProps:[".*"],htmlAllowComments:!0,htmlUntouched:!1,fullPage:!1}),t.HTML5Map={B:"STRONG",I:"EM",STRIKE:"S"},t.MODULES.clean=function(e){var r,s,d,u,b=e.$;function E(x){if(x.nodeType===Node.ELEMENT_NODE&&x.getAttribute("class")&&0<=x.getAttribute("class").indexOf("fr-marker"))return!1;var v,A=e.node.contents(x),l=[];for(v=0;v");if(x.nodeType===Node.TEXT_NODE)return v?x.textContent.replace(/&/g,"&").replace(//g,">"):x.textContent.replace(/&/g,"&").replace(//g,">").replace(/\u00A0/g," ").replace(/\u0009/g,"");if(x.nodeType!==Node.ELEMENT_NODE||x.nodeType===Node.ELEMENT_NODE&&0<=["STYLE","SCRIPT","NOSCRIPT"].indexOf(x.tagName))return x.outerHTML;if(x.nodeType===Node.ELEMENT_NODE&&x.tagName==="svg"){var A=document.createElement("div"),l=x.cloneNode(!0);return A.appendChild(l),A.innerHTML}if(x.tagName==="IFRAME")return x.outerHTML.replace(/</g,"<").replace(/>/g,">");var i=x.childNodes;if(i.length===0)return x.outerHTML;for(var a="",p=0;p)<[^<]*)*<\/script>/gi,function(c){return m.push(c),"[FROALA.EDITOR.SCRIPT ".concat(m.length-1,"]")})).replace(/)<[^<]*)*<\/noscript>/gi,function(c){return m.push(c),"[FROALA.EDITOR.NOSCRIPT ".concat(m.length-1,"]")})).replace(/")})).replace(/":c;var ie=O(e.html.extractNodeAttrs(h,"head")),D=O(e.html.extractNodeAttrs(h,"body"));return"".concat(M,"").concat(c,"").concat(p,"")}return p}(l,i,x))}function B(x){var v=e.doc.createElement("DIV");return v.innerText=x,v.textContent}function I(x){for(var v=e.node.contents(x),A=0;A"))}(i),i.nodeType===Node.ELEMENT_NODE&&(i.getAttribute("data-fr-src")&&i.getAttribute("data-fr-src").indexOf("blob:")!==0&&i.setAttribute("data-fr-src",e.helpers.sanitizeURL(B(i.getAttribute("data-fr-src")))),i.getAttribute("href")&&i.setAttribute("href",e.helpers.sanitizeURL(B(i.getAttribute("href")))),i.getAttribute("src")&&i.setAttribute("src",e.helpers.sanitizeURL(B(i.getAttribute("src")))),0<=["TABLE","TBODY","TFOOT","TR"].indexOf(i.tagName)&&(i.innerHTML=i.innerHTML.trim())),!e.opts.pasteAllowLocalImages&&i.nodeType===Node.ELEMENT_NODE&&i.tagName==="IMG"&&i.getAttribute("data-fr-src")&&i.getAttribute("data-fr-src").indexOf("file://")===0)return i.parentNode.removeChild(i),!1;if(i.nodeType===Node.ELEMENT_NODE&&t.HTML5Map[i.tagName]&&e.node.attributes(i)===""){var a=t.HTML5Map[i.tagName],p="<".concat(a,">").concat(i.innerHTML,"");i.insertAdjacentHTML("beforebegin",p),(i=i.previousSibling).parentNode.removeChild(i.nextSibling)}if(e.opts.htmlAllowComments||i.nodeType!==Node.COMMENT_NODE)if(i.tagName&&i.tagName.match(s))i.tagName=="STYLE"&&e.helpers.isMac()&&function(){for(var D,_=i.innerHTML.trim(),Q=[],re=/{([^}]+)}/g;D=re.exec(_);)Q.push(D[1]);for(var q=function(H){var W=_.substring(0,_.indexOf("{")).trim();i.parentNode.querySelectorAll(W).forEach(function(T){T.removeAttribute("class"),T.setAttribute("style",Q[H])}),_=_.substring(_.indexOf("}")+1)},ae=0;_.indexOf("{")!=-1;ae++)q(ae)}(),i.parentNode.removeChild(i);else if(i.tagName&&!i.tagName.match(r))i.tagName==="svg"?i.parentNode.removeChild(i):e.browser.safari&&i.tagName==="path"&&i.parentNode&&i.parentNode.tagName==="svg"||(i.outerHTML=i.innerHTML);else{var c=i.attributes;if(c)for(var h=c.length-1;0<=h;h--){var M=c[h],N=M.nodeName.match(d),ie=null;M.nodeName==="style"&&e.opts.htmlAllowedStyleProps.length&&(ie=M.value.match(u)),N&&ie?M.value=C(ie.join(";")):N&&(M.nodeName!=="style"||ie)||i.removeAttribute(M.nodeName)}}else i.data.indexOf("[FROALA.EDITOR")!==0&&i.parentNode.removeChild(i)})(x)}return{_init:function(){e.opts.fullPage&&b.merge(e.opts.htmlAllowedTags,["head","title","style","link","base","body","html","meta"])},html:function(v,A,l,i){A===void 0&&(A=[]),l===void 0&&(l=[]);var a,p=b.merge([],e.opts.htmlAllowedTags);for(a=0;a").concat(v[l].innerHTML,""));A&&e.selection.restore()}},tables:function(){(function(){for(var A=e.el.querySelectorAll("tr"),l=0;l ul, ol > ol, ul > ol, ol > ul"),l=0;l"))}}(),function(){for(var A=e.el.querySelectorAll("li > ul, li > ol"),l=0;l ul, li > ol"),l=0;l");else if(i.previousSibling&&i.previousSibling.tagName==="BR"){for(var a=i.previousSibling.previousSibling;a&&e.node.hasClass(a,"fr-marker");)a=a.previousSibling;a&&a.tagName!=="BR"&&b(i.previousSibling).remove()}}}(),function(){for(var A=e.el.querySelectorAll("li:empty"),l=0;l/g,"%3E").replace(/"/g,"%22").replace(/ /g,"%20"),new RegExp("^".concat(t.LinkRegExHTTP).concat(t.LinkRegExEnd,"$"),"gi").test(O))},getAlignment:function(O){O.css||(O=s(O));var U=(O.css("text-align")||"").replace(/-(.*)-/g,"");if(["left","right","justify","center"].indexOf(U)<0){if(!r){var y=s('
..
'));s("body").first().append(y);var B=y.find("#s1").get(0).getBoundingClientRect().left,I=y.find("#s2").get(0).getBoundingClientRect().left;y.remove(),r=B=(window.innerHeight||document.documentElement.clientHeight)}}},t.MODULES.events=function(e){var r,s=e.$,d={};function u(A,l,i){y(A,l,i)}function b(A){if(A===void 0&&(A=!0),!e.$wp||(e.helpers.isIOS()&&e.$win.get(0).focus(),e.core.hasFocus()))return!1;if(!e.core.hasFocus()&&A){var l=e.$win.scrollTop();if(e.browser.msie&&e.$box&&e.$box.css("position","fixed"),e.browser.msie&&e.$wp&&e.$wp.css("overflow","visible"),e.browser.msie&&e.$sc&&e.$sc.css("position","fixed"),m(),e.el.focus(),e.events.trigger("focus"),g(),e.browser.msie&&e.$sc&&e.$sc.css("position",""),e.browser.msie&&e.$box&&e.$box.css("position",""),e.browser.msie&&e.$wp&&e.$wp.css("overflow","auto"),l!==e.$win.scrollTop()&&e.$win.scrollTop(l),!e.selection.info(e.el).atStart)return!1}if(!e.core.hasFocus()||0").concat(U,"")),U}var d={bold:function(){E("bold","strong")},subscript:function(){e.format.is("sup")&&e.format.remove("sup"),E("subscript","sub")},superscript:function(){e.format.is("sub")&&e.format.remove("sub"),E("superscript","sup")},italic:function(){E("italic","em")},strikeThrough:function(){E("strikeThrough","s")},underline:function(){E("underline","u")},undo:function(){e.undo.run()},redo:function(){e.undo.redo()},indent:function(){g(1)},outdent:function(){g(-1)},show:function(){e.opts.toolbarInline&&e.toolbar.showInline(null,!0)},insertHR:function(){e.selection.remove();var U="";e.core.isEmpty()&&(U=s(U="
")),e.html.insert('
'.concat(U));var y,B=e.$el.find("hr#fr-just").length?e.$el.find("hr#fr-just"):e.$el.find(".fr-just");if(B.removeAttr("id"),B.removeAttr("class"),B.next().length===0){var I=e.html.defaultTag();I?B.after(r(e.doc.createElement(I)).append("
").get(0)):B.after("
")}B.prev().is("hr")?y=e.selection.setAfter(B.get(0),!1):B.next().is("hr")?y=e.selection.setBefore(B.get(0),!1):e.selection.setAfter(B.get(0),!1)||e.selection.setBefore(B.get(0),!1),y||y===void 0||(U=s(U="".concat(t.MARKERS,"
")),B.after(U)),e.selection.restore()},clearFormatting:function(){e.format.remove()},selectAll:function(){e.doc.execCommand("selectAll",!1,!1)},moreText:function(U){u(U)},moreParagraph:function(U){u(U)},moreRich:function(U){u(U)},moreMisc:function(U){u(U)}};function u(U){(function(B){var I=e.$tb.find('.fr-more-toolbar[data-name="'.concat(B.attr("data-group-name"),'"]'));e.$tb.find(".fr-open").not(B).removeClass("fr-open"),B.toggleClass("fr-open"),e.$tb.find(".fr-more-toolbar").removeClass("fr-overflow-visible"),e.$tb.find(".fr-expanded").not(I).length?(e.$tb.find(".fr-expanded").toggleClass("fr-expanded"),I.toggleClass("fr-expanded")):(I.toggleClass("fr-expanded"),e.$box.toggleClass("fr-toolbar-open"),e.$tb.toggleClass("fr-toolbar-open"))})(e.$tb.find("[data-cmd=".concat(U,"]"))),e.toolbar.setMoreToolbarsHeight()}function b(U,y){if(e.events.trigger("commands.before",r.merge([U],y||[]))!==!1){var B=t.COMMANDS[U]&&t.COMMANDS[U].callback||d[U],I=!0,x=!1;t.COMMANDS[U]&&(typeof t.COMMANDS[U].focus<"u"&&(I=t.COMMANDS[U].focus),typeof t.COMMANDS[U].accessibilityFocus<"u"&&(x=t.COMMANDS[U].accessibilityFocus)),(!e.core.hasFocus()&&I&&!e.popups.areVisible()||!e.core.hasFocus()&&x&&e.accessibility.hasFocus())&&e.events.focus(!0),t.COMMANDS[U]&&t.COMMANDS[U].undo!==!1&&(e.$el.find(".fr-marker").length&&(e.events.disableBlur(),e.selection.restore()),e.undo.saveStep()),B&&B.apply(e,r.merge([U],y||[])),e.events.trigger("commands.after",r.merge([U],y||[])),t.COMMANDS[U]&&t.COMMANDS[U].undo!==!1&&e.undo.saveStep()}}function E(U,y){e.format.toggle(y)}function g(U){e.selection.save(),e.html.wrap(!0,!0,!0,!0),e.selection.restore();for(var y=e.selection.blocks(),B=0;B").concat(t.MARKERS,"
").concat(U):O?"".concat(y,"<").concat(O,">").concat(t.MARKERS,"
").concat(U):"".concat(y+t.MARKERS,"
").concat(U);["UL","OL"].indexOf(B.tagName)<0||B.parentNode&&B.parentNode.tagName==="LI";)B=B.parentNode;r(g).replaceWith('');var x=e.node.openTagString(B)+r(B).html()+e.node.closeTagString(B);x=x.replace(/<\/span>/g,I),r(B).replaceWith(x),e.$el.find("li:empty").remove()}else if(C&&m||!e.node.isEmpty(g,!0)){for(var v="
",A=b.parentNode;A&&A.tagName!=="LI";)v=e.node.openTagString(A)+v+e.node.closeTagString(A),A=A.parentNode;r(g).before("
  • ".concat(v,"
  • ")),r(b).remove()}else if(C){E=d(g);for(var l="".concat(t.MARKERS,"
    "),i=b.parentNode;i&&i.tagName!=="LI";)l=e.node.openTagString(i)+l+e.node.closeTagString(i),i=i.parentNode;E.parentNode&&E.parentNode.tagName==="LI"?r(E.parentNode).after("
  • ".concat(l,"
  • ")):O?r(E).after("<".concat(O,">").concat(l,"")):r(E).after(l),r(g).remove()}else(E=d(g)).parentNode&&E.parentNode.tagName==="LI"?m?r(E.parentNode).before("".concat(e.node.openTagString(g)+t.MARKERS,"
    ")):r(E.parentNode).after("".concat(e.node.openTagString(g)+t.MARKERS,"
    ")):O?r(E).before("<".concat(O,">").concat(t.MARKERS,"
    ")):r(E).before("".concat(t.MARKERS,"
    ")),r(g).remove()},_middleEnter:function(b){for(var E=s(b),g="",m=b,C="",O="",U=!1;m!==E;){var y=(m=m.parentNode).tagName==="A"&&e.cursor.isAtEnd(b,m)?"fr-to-remove":"";U||m==E||e.node.isBlock(m)||(U=!0,C+=t.INVISIBLE_SPACE),C=e.node.openTagString(r(m).clone().addClass(y).get(0))+C,O=e.node.closeTagString(m)+O}g=O+g+C+t.MARKERS+(e.opts.keepFormatOnDelete?t.INVISIBLE_SPACE:""),r(b).replaceWith('');var B=e.node.openTagString(E)+r(E).html()+e.node.closeTagString(E);B=B.replace(/<\/span>/g,g),r(E).replaceWith(B)},_endEnter:function(b){for(var E=s(b),g=t.MARKERS,m="",C=b,O=!1;C!==E;)if(!(C=C.parentNode).classList.contains("fr-img-space-wrap")&&!C.classList.contains("fr-img-space-wrap2")){var U=C.tagName==="A"&&e.cursor.isAtEnd(b,C)?"fr-to-remove":"";O||C===E||e.node.isBlock(C)||(O=!0,m+=t.INVISIBLE_SPACE),m=e.node.openTagString(r(C).clone().addClass(U).get(0))+m,g+=e.node.closeTagString(C)}var y=m+g;r(b).remove(),r(E).after(y)},_backspace:function(b){var E=s(b),g=E.previousSibling;if(g){g=r(g).find(e.html.blockTagsQuery()).get(-1)||g,r(b).replaceWith(t.MARKERS);var m=e.node.contents(g);m.length&&m[m.length-1].tagName==="BR"&&r(m[m.length-1]).remove(),r(E).find(e.html.blockTagsQuery()).not("ol, ul, table").each(function(){this.parentNode===E&&r(this).replaceWith(r(this).html()+(e.node.isEmpty(this)?"":"
    "))});for(var C,O=e.node.contents(E)[0];O&&!e.node.isList(O);)C=O.nextSibling,r(g).append(O),O=C;for(g=E.previousSibling;O;)C=O.nextSibling,r(g).append(O),O=C;1<(m=e.node.contents(g)).length&&m[m.length-1].tagName==="BR"&&r(m[m.length-1]).remove(),r(E).remove()}else{var U=d(E);if(r(b).replaceWith(t.MARKERS),U.parentNode&&U.parentNode.tagName==="LI"){var y=U.previousSibling;e.node.isBlock(y)?(r(E).find(e.html.blockTagsQuery()).not("ol, ul, table").each(function(){this.parentNode===E&&r(this).replaceWith(r(this).html()+(e.node.isEmpty(this)?"":"
    "))}),r(y).append(r(E).html())):r(U).before(r(E).html())}else{var B=e.html.defaultTag();B&&r(E).find(e.html.blockTagsQuery()).length===0?r(U).before("<".concat(B,">").concat(r(E).html(),"")):r(U).before(r(E).html())}r(E).remove(),e.html.wrap(),r(U).find("li").length===0&&r(U).remove()}},_del:function(b){var E,g=s(b),m=g.nextSibling;if(m){(E=e.node.contents(m)).length&&E[0].tagName==="BR"&&r(E[0]).remove(),r(m).find(e.html.blockTagsQuery()).not("ol, ul, table").each(function(){this.parentNode===m&&r(this).replaceWith(r(this).html()+(e.node.isEmpty(this)?"":"
    "))});for(var C,O=b,U=e.node.contents(m)[0];U&&!e.node.isList(U);)C=U.nextSibling,r(O).after(U),O=U,U=C;for(;U;)C=U.nextSibling,r(g).append(U),U=C;r(b).replaceWith(t.MARKERS),r(m).remove()}else{for(var y=g;!y.nextSibling&&y!==e.el;)y=y.parentNode;if(y===e.el)return!1;if(y=y.nextSibling,e.node.isBlock(y))t.NO_DELETE_TAGS.indexOf(y.tagName)<0&&(r(b).replaceWith(t.MARKERS),(E=e.node.contents(g)).length&&E[E.length-1].tagName==="BR"&&r(E[E.length-1]).remove(),r(g).append(r(y).html()),r(y).remove());else for((E=e.node.contents(g)).length&&E[E.length-1].tagName==="BR"&&r(E[E.length-1]).remove(),r(b).replaceWith(t.MARKERS);y&&!e.node.isBlock(y)&&y.tagName!=="BR";)r(g).append(r(y)),y=y.nextSibling}}}},t.NO_DELETE_TAGS=["TH","TD","TR","TABLE","FORM"],t.SIMPLE_ENTER_TAGS=["TH","TD","LI","DL","DT","FORM"],t.MODULES.cursor=function(e){var r=e.$;function s(I){return!!I&&(!!e.node.isBlock(I)||(I.nextSibling&&I.nextSibling.nodeType===Node.TEXT_NODE&&I.nextSibling.textContent.replace(/\u200b/g,"").length===0?s(I.nextSibling):!(I.nextSibling&&(!I.previousSibling||I.nextSibling.tagName!=="BR"||I.nextSibling.nextSibling))&&s(I.parentNode)))}function d(I){return!!I&&(!!e.node.isBlock(I)||(I.previousSibling&&I.previousSibling.nodeType===Node.TEXT_NODE&&I.previousSibling.textContent.replace(/\u200b/g,"").length===0?d(I.previousSibling):!I.previousSibling&&(!(I.previousSibling||!e.node.hasClass(I.parentNode,"fr-inner"))||d(I.parentNode))))}function u(I,x){return!!I&&I!==e.$wp.get(0)&&(I.previousSibling&&I.previousSibling.nodeType===Node.TEXT_NODE&&I.previousSibling.textContent.replace(/\u200b/g,"").length===0?u(I.previousSibling,x):!I.previousSibling&&(I.parentNode===x||u(I.parentNode,x)))}function b(I,x){return!!I&&I!==e.$wp.get(0)&&(I.nextSibling&&I.nextSibling.nodeType===Node.TEXT_NODE&&I.nextSibling.textContent.replace(/\u200b/g,"").length===0?b(I.nextSibling,x):!(I.nextSibling&&(!I.previousSibling||I.nextSibling.tagName!=="BR"||I.nextSibling.nextSibling))&&(I.parentNode===x||b(I.parentNode,x)))}function E(I){return 0=e.opts.tabSpaces&&A.substr(A.length-e.opts.tabSpaces,A.length-1).replace(/ /g,"").replace(new RegExp(t.UNICODE_NBSP,"g"),"").length===0&&(l=A.length-e.opts.tabSpaces+1),v.textContent=A.substring(0,l-g(A)),e.opts.htmlUntouched&&!I.nextSibling&&v.textContent.length&&v.textContent[v.textContent.length-1]===" "&&(v.textContent=v.textContent.substring(0,v.textContent.length-1)+t.UNICODE_NBSP);var i=A.length!==v.textContent.length;if(v.textContent.length===0)if(i&&e.opts.keepFormatOnDelete)r(v).after(t.INVISIBLE_SPACE+t.MARKERS);else if(A.length!==0&&e.node.isBlock(v.parentNode))r(v).after(t.MARKERS);else if((v.parentNode.childNodes.length!=2||v.parentNode!=I.parentNode)&&v.parentNode.childNodes.length!=1||e.node.isBlock(v.parentNode)||e.node.isElement(v.parentNode)||!e.node.isDeletable(v.parentNode)){for(;!e.node.isElement(v.parentNode)&&e.node.isEmpty(v.parentNode)&&t.NO_DELETE_TAGS.indexOf(v.parentNode.tagName)<0;){var a=v;v=v.parentNode,a.parentNode.removeChild(a)}r(v).after(t.MARKERS),e.node.isElement(v.parentNode)&&!I.nextSibling&&v.previousSibling&&v.previousSibling.tagName==="BR"&&r(I).after("
    "),v.parentNode.removeChild(v)}else r(v.parentNode).after(t.MARKERS),r(v.parentNode).remove();else r(v).after(t.MARKERS)}else e.node.isDeletable(v)?(r(v).after(t.MARKERS),r(v).remove()):I.nextSibling&&I.nextSibling.tagName==="BR"&&e.node.isVoid(v)&&v.tagName!=="BR"?(r(I.nextSibling).remove(),r(I).replaceWith(t.MARKERS)):e.events.trigger("node.remove",[r(v)])!==!1&&(r(v).after(t.MARKERS),r(v).remove())}else if(t.NO_DELETE_TAGS.indexOf(v.tagName)<0&&(e.node.isEditable(v)||e.node.isDeletable(v)))if(e.node.isDeletable(v))r(I).replaceWith(t.MARKERS),r(v).remove();else if(e.node.isEmpty(v)&&!e.node.isList(v))r(v).remove(),r(I).replaceWith(t.MARKERS);else{for(e.node.isList(v)&&(v=r(v).find("li").last().get(0)),(x=e.node.contents(v))&&x[x.length-1].tagName==="BR"&&r(x[x.length-1]).remove(),x=e.node.contents(v);x&&e.node.isBlock(x[x.length-1]);)v=x[x.length-1],x=e.node.contents(v);r(v).append(t.MARKERS);for(var p=I;!p.previousSibling;)p=p.parentNode;for(;p&&p.tagName!=="BR"&&!e.node.isBlock(p);){var c=p;p=p.nextSibling,r(v).append(c)}p&&p.tagName==="BR"&&r(p).remove(),r(I).remove()}else I.nextSibling&&I.nextSibling.tagName==="BR"&&r(I.nextSibling).remove();return!0}function C(I){var x=0"))}),r(v).append(e.node.contents(a.get(0))),a.remove(),r(i).find("li").length===0&&r(i).remove())}else{if((l=e.node.contents(i)).length&&l[0].tagName==="BR"&&r(l[0]).remove(),i.tagName!=="BLOCKQUOTE"&&v.tagName==="BLOCKQUOTE")for(l=e.node.contents(v);l.length&&e.node.isBlock(l[l.length-1]);)v=l[l.length-1],l=e.node.contents(v);else if(i.tagName==="BLOCKQUOTE"&&v.tagName!=="BLOCKQUOTE")for(l=e.node.contents(i);l.length&&e.node.isBlock(l[0]);)i=l[0],l=e.node.contents(i);r(I).replaceWith(t.MARKERS),r(v).append(i.innerHTML),r(i).remove()}else{for(r(I).replaceWith(t.MARKERS);i&&i.tagName!=="BR"&&!e.node.isBlock(i)&&e.node.isEditable(i);){var p=i;i=i.nextSibling,r(v).append(p)}i&&i.tagName==="BR"&&e.node.isEditable(i)&&r(i).remove()}}}function O(I){for(var x,v=I;!v.nextSibling;)if(v=v.parentNode,e.node.isElement(v))return!1;if((v=v.nextSibling).tagName==="BR"&&e.node.isEditable(v)){if(v.nextSibling){if(e.node.isBlock(v.nextSibling)&&e.node.isEditable(v.nextSibling)){if(!(t.NO_DELETE_TAGS.indexOf(v.nextSibling.tagName)<0))return void r(v).remove();v=v.nextSibling,r(v.previousSibling).remove()}}else if(s(v)){E(I)?e.cursorLists._del(I):e.node.deepestParent(v)&&((!e.node.isEmpty(e.node.blockParent(v))||(e.node.blockParent(v).nextSibling&&t.NO_DELETE_TAGS.indexOf(e.node.blockParent(v).nextSibling.tagName))<0)&&r(v).remove(),C(I));return}}if(!e.node.isBlock(v)&&e.node.isEditable(v)){for(x=e.node.contents(v);v.nodeType!==Node.TEXT_NODE&&x.length&&!e.node.isDeletable(v)&&e.node.isEditable(v);)v=x[0],x=e.node.contents(v);v.nodeType===Node.TEXT_NODE?(r(v).before(t.MARKERS),v.textContent.length&&(v.textContent=v.textContent.substring(g(v.textContent,!0),v.textContent.length))):(e.node.isDeletable(v)||e.events.trigger("node.remove",[r(v)])!==!1)&&(r(v).before(t.MARKERS),r(v).remove()),r(I).remove()}else if(t.NO_DELETE_TAGS.indexOf(v.tagName)<0&&(e.node.isEditable(v)||e.node.isDeletable(v)))if(e.node.isDeletable(v))r(I).replaceWith(t.MARKERS),r(v).remove();else if(e.node.isList(v))I.previousSibling?(r(v).find("li").first().prepend(I),e.cursorLists._backspace(I)):(r(v).find("li").first().prepend(t.MARKERS),r(I).remove());else if((x=e.node.contents(v))&&x[0].tagName==="BR"&&r(x[0]).remove(),x&&v.tagName==="BLOCKQUOTE"){var A=x[0];for(r(I).before(t.MARKERS);A&&A.tagName!=="BR";){var l=A;A=A.nextSibling,r(I).before(l)}A&&A.tagName==="BR"&&r(A).remove()}else r(I).after(r(v).html()).after(t.MARKERS),r(v).remove()}function U(){for(var I=e.el.querySelectorAll("blockquote:empty"),x=0;x"+t.MARKERS):A?r(l).after("<".concat(A,">").concat(t.MARKERS,"
    ")):r(l).after("".concat(t.MARKERS,"
    ")),r(I).remove()):B(I,x,v),!1;if(l===null)(A=e.html.defaultTag())&&e.node.isElement(I.parentNode)?r(I).replaceWith("<".concat(A,">").concat(t.MARKERS,"
    ")):!I.previousSibling||r(I.previousSibling).is("br")||I.nextSibling?r(I).replaceWith("
    ".concat(t.MARKERS)):r(I).replaceWith("
    ".concat(t.MARKERS,"
    "));else{var i=I,a="";l.tagName!="PRE"||I.nextSibling||(x=!0),e.node.isBlock(l)&&!x||(a="
    ");var p,c="",h="",M="",N="";(A=e.html.defaultTag())&&e.node.isBlock(l)&&(M="<".concat(A,">"),N=""),l.tagName===A.toUpperCase()&&(M=e.node.openTagString(r(l).clone().removeAttr("id").get(0))));do if(i=i.parentNode,!x||i!==l||x&&!e.node.isBlock(l))if(c+=e.node.closeTagString(i),i===l&&e.node.isBlock(l))h=M+h;else{var ie=(i.tagName==="A"||e.node.hasClass(i,"fa"))&&b(I,i)?"fr-to-remove":"";h=e.node.openTagString(r(i).clone().addClass(ie).get(0))+h}while(i!==l);a=c+a+h+(I.parentNode===l&&e.node.isBlock(l)?"":t.INVISIBLE_SPACE)+t.MARKERS,e.node.isBlock(l)&&!r(l).find("*").last().is("br")&&r(l).append("
    "),r(I).after(''),r(I).remove(),l.nextSibling&&!e.node.isBlock(l.nextSibling)||e.node.isBlock(l)||r(l).after("
    "),p=(p=!x&&e.node.isBlock(l)?e.node.openTagString(l)+r(l).html()+N:e.node.openTagString(l)+r(l).html()+e.node.closeTagString(l)).replace(/<\/span>/g,a),r(l).replaceWith(p)}}function B(I,x,v){var A=e.node.deepestParent(I,[],!v);if(A===null)e.html.defaultTag()&&I.parentNode===e.el?r(I).replaceWith("<".concat(e.html.defaultTag(),">").concat(t.MARKERS,"
    ")):(I.nextSibling&&!e.node.isBlock(I.nextSibling)||r(I).after("
    "),r(I).replaceWith("
    ".concat(t.MARKERS)));else if(I.previousSibling&&I.previousSibling.tagName=="IMG"||I.nextSibling&&I.nextSibling.tagName=="IMG")r(I).replaceWith("<"+e.html.defaultTag()+">"+t.MARKERS+"
    ");else{var l=I,i="";A.tagName==="PRE"&&(x=!0),e.node.isBlock(A)&&!x||(i="
    ");var a="",p="";do{var c=l;if(l=l.parentNode,A.tagName==="BLOCKQUOTE"&&e.node.isEmpty(c)&&!e.node.hasClass(c,"fr-marker")&&r(c).contains(I)&&r(c).after(I),A.tagName!=="BLOCKQUOTE"||!b(I,l)&&!u(I,l))if(!x||l!==A||x&&!e.node.isBlock(A)){a+=e.node.closeTagString(l);var h=l.tagName=="A"&&b(I,l)||e.node.hasClass(l,"fa")?"fr-to-remove":"";p=e.node.openTagString(r(l).clone().addClass(h).removeAttr("id").get(0))+p}else A.tagName=="BLOCKQUOTE"&&x&&(p=a="")}while(l!==A);var M=A===I.parentNode&&e.node.isBlock(A)||I.nextSibling;if(A.tagName==="BLOCKQUOTE")if(I.previousSibling&&e.node.isBlock(I.previousSibling)&&I.nextSibling&&I.nextSibling.tagName==="BR"&&(r(I.nextSibling).after(I),I.nextSibling&&I.nextSibling.tagName==="BR"&&r(I.nextSibling).remove()),x)i=a+i+t.MARKERS+p;else{var N=e.html.defaultTag();i="".concat(a+i+(N?"<".concat(N,">"):"")+t.MARKERS,"
    ").concat(N?""):"").concat(p)}else i=a+i+p+(M?"":t.INVISIBLE_SPACE)+t.MARKERS;r(I).replaceWith('');var ie=e.node.openTagString(A)+r(A).html()+e.node.closeTagString(A);ie=ie.replace(/<\/span>/g,i),r(A).replaceWith(ie)}}return{enter:function(x){var v=e.markers.insert();if(!v)return!0;for(var A=v.parentNode;A&&!e.node.isElement(A);){if(A.getAttribute("contenteditable")==="false")return r(v).replaceWith(t.MARKERS),e.selection.restore(),!1;if(A.getAttribute("contenteditable")==="true")break;A=A.parentNode}e.el.normalize();var l=!1;0").concat(t.MARKERS,"
    ")):r(M).before("".concat(t.MARKERS,"
    ")),r(a).remove(),!1}else b(a,M)?y(a,p,!0):B(a,p,!0);if(M===null)(h=e.html.defaultTag())&&e.node.isElement(a.parentNode)?r(a).replaceWith("<".concat(h,">").concat(t.MARKERS,"
    ")):r(a).replaceWith("
    ".concat(t.MARKERS));else{if(e.node.isBlock(M))if(M.tagName==="PRE"&&(p=!0),p)r(a).remove(),r(M).prepend("
    ".concat(t.MARKERS));else if(a.nextSibling&&a.nextSibling.tagName=="IMG"||a.nextSibling&&a.nextSibling.nextElementSibling&&a.nextSibling.nextElementSibling=="IMG")r(a).replaceWith("<"+e.html.defaultTag()+">"+t.MARKERS+"
    ");else{if(e.node.isEmpty(M,!0))return y(a,p,c);if(e.opts.keepFormatOnDelete){for(var N=a,ie=t.INVISIBLE_SPACE;N!==M&&!e.node.isElement(N);)N=N.parentNode,ie=e.node.openTagString(N)+ie+e.node.closeTagString(N);r(M).before(ie)}else r(M).before("".concat(e.node.openTagString(r(M).clone().removeAttr("id").get(0)),"
    ").concat(e.node.closeTagString(M)))}else r(M).before("
    ");r(a).remove()}}(v,x,l):e.cursorLists._startEnter(v):!E(v)||x||l?B(v,x,l):e.cursorLists._middleEnter(v),function(){e.$el.find(".fr-to-remove").each(function(){for(var a=e.node.contents(this),p=0;p div").first(),O=C.find("> a"),e.opts.direction==="rtl"&&C.css("left","auto").css("right",0).attr("direction","rtl"),i++}function g(a){for(var p=[l("9qqG-7amjlwq=="),l("KA3B3C2A6D1D5H5H1A3=="),l("3B9B3B5F3C4G3E3=="),l("QzbzvxyB2yA-9m=="),l("ji1kacwmgG5bc=="),l("nmA-13aogi1A3c1jd=="),l("BA9ggq=="),l("emznbjbH3fij=="),l("tkC-22d1qC-13sD1wzF-7=="),l("tA3jjf=="),l("1D1brkm==")],c=0;cthis.length)&&(M=this.length),this.substring(M-h.length,M)===h}),a.endsWith(p[c]))return!0;return!1}function m(){var a=l(I),p=l("tzgatD-13eD1dtdrvmF3c1nrC-7saQcdav==").split(".");return window.parent.document.querySelector(a)&&window[p[1]][p[2]]}var C,O,U=e.$,y="sC-7OB2fwhVC4vsG-7ohPA4ZD4D-8f1J3stzB-11bFE2FC1A3NB2IF1HE1TH4WB8eB-11zVG2F3I3yYB5ZG4CB2DA15CC5AD3F1A1KG1oLA10B1A6wQF1H3vgale2C4F4XA2qc2A5D5B3pepmriKB3OE1HD1fUC10pjD-11E-11TB4YJ3bC-16zE-11yc1B2CE2BC3jhjKC1pdA-21OA6C1D5B-8vF4QA11pD6sqf1C3lldA-16BD4A2H3qoEA7bB-16rmNH5H1F1vSB7RE2A3TH4YC5A5b1A4d1B3whepyAC3AA2zknC3mbgf1SC4WH4PD8TC5ZB2C3H3jb2A5ZA2EF2aoFC5qqHC4B1H1zeGA7UA5RF4TA29TA6ZC4d1C3hyWA10A3rBB2E3decorationRD3QC10UD3E6E6ZD2F3F3fme2E5uxxrEC9C3E4fB-11azhHB1LD7D6VF4VVTPC6b1C4TYG3qzDD6B3B3AH4I2H2kxbHE1JD1yihfd1QD6WB1D4mhrc1B5rvFG3A14A7cDA2OC1AA1JB5zC-16KA6WB4C-8wvlTB5A5lkZB2C2C7zynBD2D2bI-7C-21d1HE2cubyvPC8A6VB3aroxxZE4C4F4e1I2BE1WjdifH1H4A14NA1GB1YG-10tWA3A14A9sVA2C5XH2A29b2A6gsleGG2jaED2D-13fhE1OA8NjwytyTD4e1sc1D-16ZC3B5C-9e1C2FB6EFF5B2C2JH4E1C2tdLE5A3UG4G-7b2D3B4fA-9oh1G3kqvB4AG3ibnjcAC6D2B1cDA9KC2QA6bRC4VA30RB8hYB2A4A-8h1A21A2B2==",B="7D4YH4fkhHB3pqDC3H2E1fkMD1IB1NF1D3QD9wB5rxqlh1A8c2B4ZA3FD2AA6FB5EB3jJG4D2J-7aC-21GB6PC5RE4TC11QD6XC4XE3XH3mlvnqjbaOA2OC2BE6A1fmI-7ujwbc1G5f1F3e1C11mXF4owBG3E1yD1E4F1D2D-8B-8C-7yC-22HD1MF5UE4cWA3D8D6a1B2C3H3a3I3sZA4B3A2akfwEB3xHD5D1F1wIC11pA-16xdxtVI2C9A6YC4a1A2F3B2GA6B4C3lsjyJB1eMA1D-11MF5PE4ja1D3D7byrf1C3e1C7D-16lwqAF3H2A1B-21wNE1MA1OG1HB2A-16tSE5UD4RB3icRA4F-10wtwzBB3E1C3CC2DA8LA2LA1EB1kdH-8uVB7decorg1J2B7B6qjrqGI2J1C6ijehIB1hkemC-13hqkrH4H-7QD6XF5XF3HLNAC3CB2aD2CD2KB10B4ycg1A-8KA4H4B11jVB5TC4yqpB-21pd1E4pedzGB6MD5B3ncB-7MA4LD2JB6PD5uH-8TB9C7YD5XD2E3I3jmiDB3zeimhLD8E2F2JC1H-9ivkPC5lG-10SB1D3H3A-21rc1A3d1E3fsdqwfGA2KA1OrC-22LA6D1B4afUB16SC7AitC-8qYA11fsxcajGA15avjNE2A-9h1hDB16B9tPC1C5F5UC1G3B8d2A5d1D4RnHJ3C3JB5D3ucMG1yzD-17hafjC-8VD3yWC6e1YD2H3ZE2C8C5oBA3H3D2vFA4WzJC4C2i1A-65fNB8afWA1H4A26mvkC-13ZB3E3h1A21BC4eFB2GD2AA5ghqND2A2B2==",I="MekC-11nB-8tIzpD7pewxvzC6mD-16xerg1==",x="AA15A8B6C4B5A2E2B3B1A7==",v="sC-7OB2fwhVC4vsG-7ohPA4ZD4D-8f1J3stzB-11bFE2EE1MA2ND1KD1IE4cA-21pSD2D5ve1G3h1A8b1E5ZC3CD2FA16mC5OC5E1hpnG1NA10B1D7hkUD4I-7b2C3C5nXD2E3F3whidEC2EH3GI2mJE2E2bxci1WA10VC7pllSG2F3A7xd1A4ZC3DB2aaeGA2DE4H2E1j1ywD-13FD1A3VE4WA3D8C6wuc1A2hf1B5B7vnrrjA1B9ic1mpbD1oMB1iSB7rWC4RI4G-7upB6jd1A2F3H2EA4FD3kDF4A2moc1anJD1TD4VI4b2C7oeQF4c1E3XC7ZA3C3G3uDB2wGB6D1JC4D1JD4C1hTE6QC5pH4pD3C-22D7c1A3textAA4gdlB2mpozkmhNC1mrxA3yWA5edhg1I2H3B7ozgmvAI3I2B5GD1LD2RSNH1KA1XA5SB4PA3sA9tlmC-9tnf1G3nd1coBH4I2I2JC3C-16LE6A1tnUA3vbwQB1G3f1A20a3A8a1C6pxAB2eniuE1F3kH2lnjB2hB-16XA5PF1G4zwtYA5B-11mzTG2B9pHB3BE2hGH3B3B2cMD5C1F1wzPA8E7VG5H5vD3H-7C8tyvsVF2I1G2A5fE3bg1mgajoyxMA4fhuzSD8aQB2B4g1A20ukb1A4B3F3GG2CujjanIC1ObiB11SD1C5pWC1D4YB8YE5FE-11jXE2F-7jB4CC2G-10uLH4E1C2tA-13yjUH5d1H1A7sWD5E4hmjF-7pykafoGA16hDD4joyD-8OA33B3C2tC7cRE4SA31a1B8d1e2A4F4g1A2A22CC5zwlAC2C1A12==",A=function(){for(var a=0,p=document.domain,c=p.split("."),h="_gd".concat(new Date().getTime());a")}(y)),e.selection.restore();else{var x;e.selection.save(),b(e.$el.find('.fr-marker[data-type="true"]').length&&e.$el.find('.fr-marker[data-type="true"]').get(0).nextSibling,y,B);do for(x=e.$el.find("".concat(d(y,B)," > ").concat(d(y,B))),I=0;I
    '),A=a.html().replace(/<\/span>/,l+e.node.closeTagString(a.get(0))+i+p+l+e.node.openTagString(a.get(0))+i),a.replaceWith(e.node.openTagString(a.get(0))+A+e.node.closeTagString(a.get(0))),!0}return!1}function m(y,B){B===void 0&&(B={}),B.style&&delete B.style;var I=e.selection.isCollapsed();e.selection.save();for(var x=!0;x;){x=!1;for(var v=e.$el.find(".fr-marker"),A=0;A')){if(e.node.isEmpty(a.get(0)))i=r(e.doc.createElement("span")).attr("style","".concat(y,": ").concat(B,";")).html("".concat(t.INVISIBLE_SPACE).concat(t.MARKERS)),a.replaceWith(i);else{var p={};p["style*"]="".concat(y,":"),g(x,"span",p,!0),x=e.$el.find(".fr-marker"),B?(i=r(e.doc.createElement("span")).attr("style","".concat(y,": ").concat(B,";")).html("".concat(t.INVISIBLE_SPACE).concat(t.MARKERS)),x.replaceWith(i)):x.replaceWith(t.INVISIBLE_SPACE+t.MARKERS)}e.html.cleanEmptyTags()}else e.node.isEmpty(a.get(0))&&a.is("span")?(x.replaceWith(t.MARKERS),a.css(y,B)):(i=r('').concat(t.INVISIBLE_SPACE).concat(t.MARKERS,"")),x.replaceWith(i));i&&O(i,y,B)}else{if(e.selection.save(),B===null||y==="color"&&0").concat(p);y.replaceWith('');var ie=l.get(0).outerHTML;r(l.get(0)).replaceWith(ie.replace(/<\/span>/g,function(){return N}))}}function U(y,B){B===void 0&&(B={}),B.style&&delete B.style;var I=e.selection.ranges(0),x=I.startContainer;if(x.nodeType===Node.ELEMENT_NODE&&0"),t.END_MARKER='"),t.MARKERS=t.START_MARKER+t.END_MARKER,t.MODULES.markers=function(e){var r=e.$;function s(){if(!e.$wp)return null;try{var u=e.selection.ranges(0),b=u.commonAncestorContainer;if(b!==e.el&&!e.$el.contains(b))return null;var E=u.cloneRange(),g=u.cloneRange();E.collapse(!0);var m=r(e.doc.createElement("SPAN")).addClass("fr-marker").attr("style","display: none; line-height: 0;").html(t.INVISIBLE_SPACE).get(0);if(E.insertNode(m),m=e.$el.find("span.fr-marker").get(0)){for(var C=m.nextSibling;C&&C.nodeType===Node.TEXT_NODE&&C.textContent.length===0;)r(C).remove(),C=e.$el.find("span.fr-marker").get(0).nextSibling;return e.selection.clear(),e.selection.get().addRange(g),m}return null}catch{}}function d(){e.$el.find(".fr-marker").remove()}return{place:function(b,E,g){var m,C,O;try{var U=b.cloneRange();if(U.collapse(E),U.insertNode(function(I,x){var v=r(e.doc.createElement("SPAN"));return v.addClass("fr-marker").attr("data-id",x).attr("data-type",I).attr("style","display: ".concat(e.browser.safari?"none":"inline-block","; line-height: 0;")).html(t.INVISIBLE_SPACE),v.get(0)}(E,g)),E===!0)for(O=(m=e.$el.find('span.fr-marker[data-type="true"][data-id="'.concat(g,'"]')).get(0)).nextSibling;O&&O.nodeType===Node.TEXT_NODE&&O.textContent.length===0;)r(O).remove(),O=m.nextSibling;if(E===!0&&!b.collapsed){for(;!e.node.isElement(m.parentNode)&&!O;)r(m.parentNode).after(m),O=m.nextSibling;if(O&&O.nodeType===Node.ELEMENT_NODE&&e.node.isBlock(O)&&O.tagName!=="HR"){for(C=[O];O=C[0],(C=e.node.contents(O))[0]&&e.node.isBlock(C[0]););r(O).prepend(r(m))}}if(E===!1&&!b.collapsed){if((O=(m=e.$el.find('span.fr-marker[data-type="false"][data-id="'.concat(g,'"]')).get(0)).previousSibling)&&O.nodeType===Node.ELEMENT_NODE&&e.node.isBlock(O)&&O.tagName!=="HR"){for(C=[O];O=C[C.length-1],(C=e.node.contents(O))[C.length-1]&&e.node.isBlock(C[C.length-1]););r(O).append(r(m))}(m.parentNode&&0<=["TD","TH"].indexOf(m.parentNode.tagName)||!m.previousSibling&&e.node.isBlock(m.parentElement))&&m.parentNode.previousSibling&&!m.previousSibling&&r(m.parentNode.previousSibling).append(m)}var y=e.$el.find('span.fr-marker[data-type="'.concat(E,'"][data-id="').concat(g,'"]')).get(0);return y&&(y.style.display="none"),y}catch{return null}},insert:s,split:function(){e.selection.isCollapsed()||e.selection.remove();var b=e.$el.find(".fr-marker").get(0);if(b||(b=s()),!b)return null;var E=e.node.deepestParent(b);if(E||(E=e.node.blockParent(b))&&E.tagName!=="LI"&&(E=null),E)if(e.node.isBlock(E)&&e.node.isEmpty(E))E.tagName!=="LI"||E.parentNode.firstElementChild!==E||e.node.isEmpty(E.parentNode)?r(E).replaceWith(''):r(E).append('');else if(e.cursor.isAtStart(b,E))r(E).before(''),r(b).remove();else if(e.cursor.isAtEnd(b,E))r(E).after(''),r(b).remove();else{for(var g=b,m="",C="";g=g.parentNode,m+=e.node.closeTagString(g),C=e.node.openTagString(g)+C,g!==E;);r(b).replaceWith('');var O=e.node.openTagString(E)+r(E).html()+e.node.closeTagString(E);O=O.replace(/<\/span>/g,"".concat(m,'').concat(C)),r(E).replaceWith(O)}return e.$el.find(".fr-marker").get(0)},insertAtPoint:function(b){var E,g=b.clientX,m=b.clientY;d();var C=null;if(typeof e.doc.caretPositionFromPoint<"u"?(E=e.doc.caretPositionFromPoint(g,m),(C=e.doc.createRange()).setStart(E.offsetNode,E.offset),C.setEnd(E.offsetNode,E.offset)):typeof e.doc.caretRangeFromPoint<"u"&&(E=e.doc.caretRangeFromPoint(g,m),(C=e.doc.createRange()).setStart(E.startContainer,E.startOffset),C.setEnd(E.startContainer,E.startOffset)),C!==null&&typeof e.win.getSelection<"u"){var O=e.win.getSelection();O.removeAllRanges(),O.addRange(C)}else if(typeof e.doc.body.createTextRange<"u")try{(C=e.doc.body.createTextRange()).moveToPoint(g,m);var U=C.duplicate();U.moveToPoint(g,m),C.setEndPoint("EndToEnd",U),C.select()}catch{return!1}s()},remove:d}},t.MODULES.selection=function(e){var r=e.$;function s(){var l="";return e.win.getSelection?l=e.win.getSelection():e.doc.getSelection?l=e.doc.getSelection():e.doc.selection&&(l=e.doc.selection.createRange().text),l.toString()}function d(){return e.win.getSelection?e.win.getSelection():e.doc.getSelection?e.doc.getSelection():e.doc.selection.createRange()}function u(l){var i=d(),a=[];if(i&&i.getRangeAt&&i.rangeCount){a=[];for(var p=0;p'.concat(t.INVISIBLE_SPACE,"").concat(a[i].innerHTML));var p=!1,c=U(e.el);for(c.atStart&&c.atEnd&&(p=!0),a=e.el.querySelectorAll(".fr-mk"),i=0;i"):r(X).find(".fr-inner").filter(I).html("
    "):(r(X).empty(),r(X).attr("data-del-cell",!0)):0"),e.spaces.normalize());var T=e.$el.find(".fr-marker").last().get(0),S=e.$el.find(".fr-marker").first().get(0);T!==void 0&&S!==void 0&&!T.nextSibling&&S.previousSibling&&S.previousSibling.tagName==="BR"&&e.node.isElement(T.parentNode)&&e.node.isElement(S.parentNode)&&e.$el.append("
    "),m()},blocks:function(){var i,a,p=[],c=d();if(x()&&c.rangeCount){var h=u();for(i=0;i"))}function d(){e.$wp.removeClass("show-placeholder")}function u(){if(!e.$wp)return!1;e.core.isEmpty()?s():d()}return{_init:function(){if(!e.$wp)return!1;e.events.on("init input keydown keyup contentChanged initialized",u)},show:s,hide:d,refresh:u,isVisible:function(){return!e.$wp||e.node.hasClass(e.$wp.get(0),"show-placeholder")}}},t.UNICODE_NBSP=String.fromCharCode(160),t.VOID_ELEMENTS=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],t.BLOCK_TAGS=["address","article","aside","audio","blockquote","canvas","details","dd","div","dl","dt","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","li","main","nav","noscript","ol","output","p","pre","section","table","tbody","td","tfoot","th","thead","tr","ul","video"],Object.assign(t.DEFAULTS,{htmlAllowedEmptyTags:["textarea","a","iframe","object","video","style","script",".fa",".fr-emoticon",".fr-inner","path","line","hr"],htmlDoNotWrapTags:["script","style"],htmlSimpleAmpersand:!1,htmlIgnoreCSSProperties:[],htmlExecuteScripts:!0}),t.MODULES.html=function(e){var r=e.$;function s(){return e.opts.enter===t.ENTER_P?"p":e.opts.enter===t.ENTER_DIV?"div":e.opts.enter===t.ENTER_BR?null:void 0}function d(D,_){return!(!D||D===e.el)&&(_?["PRE","SCRIPT","STYLE"].indexOf(D.tagName)!=-1||d(D.parentNode,_):["PRE","SCRIPT","STYLE"].indexOf(D.tagName)!==-1)}function u(D){var _,Q=[],re=[];if(D){var q=e.el.querySelectorAll(".fr-marker");for(_=0;_";return _&&(Q="")),Q}function B(D){var _=D.parentNode;if(_&&(e.node.isBlock(_)||e.node.isElement(_))&&["TD","TH"].indexOf(_.tagName)<0){for(var Q=D.previousSibling,re=D.nextSibling;Q&&(Q.nodeType===Node.TEXT_NODE&&Q.textContent.replace(/\n|\r/g,"").length===0||e.node.hasClass(Q,"fr-tmp"));)Q=Q.previousSibling;if(re)return!1;Q&&_&&Q.tagName!=="BR"&&!e.node.isBlock(Q)&&!re&&0<_.textContent.replace(/\u200B/g,"").length&&0").concat(t.MARKERS,"
    ")),e.selection.restore()):e.$el.html("<".concat(s(),">
    "))):e.el.querySelector("*:not(.fr-marker):not(br)")||(e.core.hasFocus()?(e.$el.html("".concat(t.MARKERS,"
    ")),e.selection.restore()):e.$el.html("
    ")))}function v(D,_){return U(D,"<".concat(_,"[^>]*?>([\\w\\W]*)"),1)}function A(D,_){var Q=r("
    ]*?)>"),1)||"",">"));return e.node.rawAttributes(Q.get(0))}function l(D){return(U(D,"]*?)>",0)||"").replace(/\n/g," ").replace(/ {2,}/g," ")}function i(D,_){e.opts.htmlExecuteScripts?D.html(_):D.get(0).innerHTML=_}function a(D){var _;(_=/:not\(([^)]*)\)/g).test(D)&&(D=D.replace(_," $1 "));var Q=100*(D.match(/(#[^\s+>~.[:]+)/g)||[]).length+10*(D.match(/(\[[^]]+\])/g)||[]).length+10*(D.match(/(\.[^\s+>~.[:]+)/g)||[]).length+10*(D.match(/(:[\w-]+\([^)]*\))/gi)||[]).length+10*(D.match(/(:[^\s+>~.[:]+)/g)||[]).length+(D.match(/(::[^\s+>~.[:]+|:first-line|:first-letter|:before|:after)/gi)||[]).length;return Q+=((D=(D=D.replace(/[*\s+>~]/g," ")).replace(/[#.]/g," ")).match(/([^\s+>~.[:]+)/g)||[]).length}function p(D){if(e.events.trigger("html.processGet",[D]),D&&D.getAttribute&&D.getAttribute("class")===""&&D.removeAttribute("class"),D&&D.getAttribute&&D.getAttribute("style")===""&&D.removeAttribute("style"),D&&D.nodeType===Node.ELEMENT_NODE){var _,Q=D.querySelectorAll('[class=""],[style=""]');for(_=0;_")}},cleanEmptyTags:E,cleanWhiteTags:N,cleanBlankSpaces:O,blocks:function(){return e.$el.get(0).querySelectorAll(b())},getDoctype:y,set:function(_){var Q=e.clean.html((_||"").trim(),[],[],e.opts.fullPage);if(e.opts.fullPage){var re=v(Q,"body")||(0<=Q.indexOf("",se=A(Q,"head"),H=r("
    ");H.append(ae).contents().each(function(){(this.nodeType===Node.COMMENT_NODE||0<=["BASE","LINK","META","NOSCRIPT","SCRIPT","STYLE","TEMPLATE","TITLE"].indexOf(this.tagName))&&this.parentNode.removeChild(this)});var W=H.html().trim();ae=r("
    ").append(ae).contents().map(function(){return this.nodeType===Node.COMMENT_NODE?""):0<=["BASE","LINK","META","NOSCRIPT","SCRIPT","STYLE","TEMPLATE","TITLE"].indexOf(this.tagName)?this.outerHTML:""}).toArray().join("");var T=l(Q),S=A(Q,"html");i(e.$el,"".concat(W,` +`).concat(re)),e.node.clearAttributes(e.el),e.$el.attr(q),e.$el.addClass("fr-view"),e.$el.attr("spellcheck",e.opts.spellcheck),e.$el.attr("dir",e.opts.direction),i(e.$head,ae),e.node.clearAttributes(e.$head.get(0)),e.$head.attr(se),e.node.clearAttributes(e.$html.get(0)),e.$html.attr(S),e.iframe_document.doctype.parentNode.replaceChild(function(K,V){var j=K.match(//i);return j?V.implementation.createDocumentType(j[1],j[3],j[4]):V.implementation.createDocumentType("html")}(T,e.iframe_document),e.iframe_document.doctype)}else i(e.$el,Q);var L=e.edit.isDisabled();e.edit.on(),e.core.injectStyle(e.opts.iframeDefaultStyle+e.opts.iframeStyle),I(),e.opts.useClasses||(e.$el.find("[fr-original-class]").each(function(){this.setAttribute("class",this.getAttribute("fr-original-class")),this.removeAttribute("fr-original-class")}),e.$el.find("[fr-original-style]").each(function(){this.setAttribute("style",this.getAttribute("fr-original-style")),this.removeAttribute("fr-original-style")})),L&&e.edit.off(),e.events.trigger("html.set"),e.events.trigger("charCounter.update")},syncInputs:h,get:function(_,Q){if(!e.$wp)return e.$oel.clone().removeClass("fr-view").removeAttr("contenteditable").get(0).outerHTML;var re="";e.events.trigger("html.beforeGet");var q,ae,se=[],H={},W=[];if(h(),!e.opts.useClasses&&!Q){var T=new RegExp("^".concat(e.opts.htmlIgnoreCSSProperties.join("$|^"),"$"),"gi");for(q=0;q=H[j[ae]][ve]&&(H[j[ae]][ve]=X,fe[ne].trim().length))){var Ee=fe[ne].trim().split(":");Ee.splice(0,1),W.push([j[ae],ve.trim(),Ee.join(":").trim(),X])}}}}}}for(W.sort(c),q=0;q").concat(e.$html.find("head").get(0).outerHTML,""));else if(_===void 0&&(_=!1),e.opts.fullPage){re=y(e.iframe_document),e.$el.removeClass("fr-view");var Oe=e.opts.heightMin,De=e.opts.height,Re=e.opts.heightMax;e.opts.heightMin=null,e.opts.height=null,e.opts.heightMax=null,e.size.refresh(),re+="").concat(e.$html.html(),""),e.opts.heightMin=Oe,e.opts.height=De,e.opts.heightMax=Re,e.size.refresh(),e.$el.addClass("fr-view")}else re=e.$el.html();if(!e.opts.useClasses&&!Q)for(q=0;q(?:[\w\W]*?)<\/style>/g,"")).replace(/]*)data-fr-style="true"([^>]*)>/g,"")).replace(/(?:[\w\W]*?)<\/style>/g,"")).replace(/((?:[\w\W]*?))<\/body>/g,"$3")).replace(/((?:[\w\W]*?))<\/body>/g,"$4")).replace(/((?:[\w\W]*?))<\/body>/g,"$4")).replace(/((?:[\w\W]*?))<\/body>/g,'$6')).replace(/((?:[\w\W]*?))<\/body>/g,"$3")),e.opts.htmlSimpleAmpersand&&(re=re.replace(/&/gi,"&")),e.events.trigger("html.afterGet"),_||(re=re.replace(/]*? class\s*=\s*["']?fr-marker["']?[^>]+>\u200b<\/span>/gi,"")),re=e.clean.invisibleSpaces(re),re=e.clean.exec(re,p);var Se=e.events.chainTrigger("html.get",re);return typeof Se=="string"&&(re=Se),re=(re=re.replace(/(?:[\w\W]*?)<\/pre>/g,function(Ne){return Ne.replace(/
    /g,` +`)})).replace(/ ".concat(e.html.defaultTag())),L=S.length-1;0<=L;L--){var R=S[L];e.node.isBlock(R.previousSibling)||(R.previousSibling&&!e.node.isEmpty(R)&&r("
    ").insertAfter(R.previousSibling),R.outerHTML=R.innerHTML)}return T.innerHTML}(q)),!(ae=e.markers.split()))return!1;ae.outerHTML=q}else ae.outerHTML=q}else e.el.innerHTML+=q}I(),e.keys.positionCaret(),e.events.trigger("html.inserted")},wrap:C,unwrap:function(){e.$el.find("div.fr-temp-div").each(function(){this.previousSibling&&this.previousSibling.nodeType===Node.TEXT_NODE&&r(this).before("
    "),r(this).attr("data-empty")||!this.nextSibling||e.node.isBlock(this.nextSibling)&&!r(this.nextSibling).hasClass("fr-temp-div")?r(this).replaceWith(r(this).html()):r(this).replaceWith("".concat(r(this).html(),"
    "))}),e.$el.find(".fr-temp-div").removeClass("fr-temp-div").filter(function(){return r(this).attr("class")===""}).removeAttr("class")},escapeEntities:function(_){return _.replace(//gi,">").replace(/"/gi,""").replace(/'/gi,"'")},checkIfEmpty:x,extractNode:v,extractNodeAttrs:A,extractDoctype:l,cleanBRs:function(){for(var _=e.el.getElementsByTagName("br"),Q=0;Q<_.length;Q++)B(_[Q])},_init:function(){e.$wp&&(e.events.on("mouseup",ie),e.events.on("keydown",ie),e.events.on("contentChanged",x))},_setHtml:i}},t.ENTER_P=0,t.ENTER_DIV=1,t.ENTER_BR=2,t.KEYCODE={BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,ARROW_LEFT:37,ARROW_UP:38,ARROW_RIGHT:39,ARROW_DOWN:40,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,FF_SEMICOLON:59,FF_EQUALS:61,QUESTION_MARK:63,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,META:91,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,FF_HYPHEN:173,SEMICOLON:186,DASH:189,EQUALS:187,COMMA:188,HYPHEN:189,PERIOD:190,SLASH:191,APOSTROPHE:192,TILDE:192,SINGLE_QUOTE:222,OPEN_SQUARE_BRACKET:219,BACKSLASH:220,CLOSE_SQUARE_BRACKET:221,IME:229},Object.assign(t.DEFAULTS,{enter:t.ENTER_P,multiLine:!0,tabSpaces:0}),t.MODULES.keys=function(e){var r,s,d,u=e.$,b=!1;function E(N){if(e.selection.isCollapsed())if(["INPUT","BUTTON","TEXTAREA"].indexOf(N.target&&N.target.tagName)<0&&e.cursor.backspace(),e.helpers.isIOS()){var ie=e.selection.ranges(0);ie.deleteContents(),ie.insertNode(document.createTextNode("​")),e.selection.get().modify("move","forward","character")}else["INPUT","BUTTON","TEXTAREA"].indexOf(N.target&&N.target.tagName)<0&&N.preventDefault(),N.stopPropagation();else N.preventDefault(),N.stopPropagation(),e.selection.remove();e.placeholder.refresh()}function g(N){["INPUT","BUTTON","TEXTAREA"].indexOf(N.target&&N.target.tagName)<0&&N.preventDefault(),N.stopPropagation(),e.selection.text()===""&&e.selection.element().tagName!="IMG"?e.cursor.del():e.selection.remove(),e.placeholder.refresh()}function m(){if(e.browser.mozilla&&e.selection.isCollapsed()&&!b){var N=e.selection.ranges(0),ie=N.startContainer,D=N.startOffset;ie&&ie.nodeType===Node.TEXT_NODE&&D<=ie.textContent.length&&0").concat(t.MARKERS,"
    ")):e.$el.html("".concat(t.MARKERS,"
    ")),e.selection.restore(),e.placeholder.refresh(),e.button.bulkRefresh(),e.undo.saveStep()},0)}function O(){b=!1}function U(){b=!1}function y(){var N=e.html.defaultTag();N?e.$el.html("<".concat(N,">").concat(t.MARKERS,"
    ")):e.$el.html("".concat(t.MARKERS,"
    ")),e.selection.restore()}function B(N,ie){if((-1/g,"")).length<1?N.parentElement.insertAdjacentHTML("afterbegin"," "):D!=" "&&D!=" "&&ie.key=="Backspace"?E(ie):D!=" "&&D!=" "&&ie.key=="Delete"&&g(ie),!0}if(u(N).is("p")){var _=N.innerHTML.replace(/
    /g,"");return _.length<1?N.insertAdjacentHTML("afterbegin"," "):_!=" "&&_!=" "&&ie.key=="Backspace"?E(ie):_!=" "&&_!=" "&&ie.key=="Delete"&&g(ie),!0}}return!1}function I(N){var ie=e.selection.element();if(ie&&0<=["INPUT","TEXTAREA"].indexOf(ie.tagName)||N&&l(N.which))return!0;e.events.disableBlur();var D=N.which;if(D===16)return!0;if((r=D)===t.KEYCODE.IME)return b=!0;b=!1;var _=i(D)&&!A(N)&&!N.altKey,Q=D===t.KEYCODE.BACKSPACE||D===t.KEYCODE.DELETE;if((e.selection.isFull()&&!e.opts.keepFormatOnDelete&&!e.placeholder.isVisible()||Q&&e.placeholder.isVisible()&&e.opts.keepFormatOnDelete)&&(_||Q)&&(y(),!i(D)))return N.preventDefault(),!0;if(D===t.KEYCODE.ENTER)N.shiftKey||ie.classList.contains("fr-inner")||ie.parentElement.classList.contains("fr-inner")?function(q){q.preventDefault(),q.stopPropagation(),e.opts.multiLine&&(e.selection.isCollapsed()||e.selection.remove(),e.cursor.enter(!0))}(N):function(q){e.opts.multiLine?(e.helpers.isIOS()||(q.preventDefault(),q.stopPropagation()),e.selection.isCollapsed()||e.selection.remove(),e.cursor.enter()):(q.preventDefault(),q.stopPropagation())}(N);else if(D===t.KEYCODE.BACKSPACE&&(N.metaKey||N.ctrlKey))(function(){setTimeout(function(){e.events.disableBlur(),e.events.focus()},0)})();else if(D!==t.KEYCODE.BACKSPACE||A(N)||N.altKey)if(D!==t.KEYCODE.DELETE||A(N)||N.altKey||N.shiftKey)D===t.KEYCODE.SPACE?function(q){var ae=e.selection.element();if(!e.helpers.isMobile()&&ae&&ae.tagName==="A"){q.preventDefault(),q.stopPropagation(),e.selection.isCollapsed()||e.selection.remove();var se=e.markers.insert();if(se){var H=se.previousSibling;!se.nextSibling&&se.parentNode&&se.parentNode.tagName==="A"?(se.parentNode.insertAdjacentHTML("afterend"," ".concat(t.MARKERS)),se.parentNode.removeChild(se)):(H&&H.nodeType===Node.TEXT_NODE&&H.textContent.length===1&&H.textContent.charCodeAt(0)===160?H.textContent+=" ":se.insertAdjacentHTML("beforebegin"," "),se.outerHTML=t.MARKERS),e.selection.restore()}}}(N):D===t.KEYCODE.TAB?function(q){if(0e.$wp.offset().top-e.helpers.scrollTop()+e.$wp.height()-20&&e.$wp.scrollTop(N+e.$wp.scrollTop()-(e.$wp.height()+e.$wp.offset().top)+e.helpers.scrollTop()+20)):(N=e.position.getBoundingRect().top,e.opts.toolbarBottom&&(N+=e.opts.toolbarStickyOffset),(e.helpers.isIOS()||e.helpers.isAndroid())&&(N-=e.helpers.scrollTop()),e.opts.iframe&&(N+=e.$iframe.offset().top,N-=e.helpers.scrollTop()),(N+=e.opts.toolbarStickyOffset)>e.o_win.innerHeight-20&&u(e.o_win).scrollTop(N+e.helpers.scrollTop()-e.o_win.innerHeight+20),N=e.position.getBoundingRect().top,e.opts.toolbarBottom||(N-=e.opts.toolbarStickyOffset),(e.helpers.isIOS()||e.helpers.isAndroid())&&(N-=e.helpers.scrollTop()),e.opts.iframe&&(N+=e.$iframe.offset().top,N-=e.helpers.scrollTop()),N<100&&u(e.o_win).scrollTop(N+e.helpers.scrollTop()-100))}function v(N){var ie=e.selection.element();if(ie&&0<=["INPUT","TEXTAREA"].indexOf(ie.tagName)||(N&&N.which===0&&r&&(N.which=r),e.helpers.isAndroid()&&e.browser.mozilla))return!0;if(b)return!1;if(N&&e.helpers.isIOS()&&N.which===t.KEYCODE.ENTER&&e.doc.execCommand("undo"),!e.selection.isCollapsed()||N&&(N.which===t.KEYCODE.META||N.which===t.KEYCODE.CTRL)||N&&l(N.which))return!0;if(N&&!e.helpers.isIOS()&&(N.which===t.KEYCODE.ENTER||N.which===t.KEYCODE.BACKSPACE||37<=N.which&&N.which<=40&&!e.browser.msie))try{x()}catch{}var D=e.selection.element();(function(Q){if(!Q)return!1;var re=Q.innerHTML;return!!((re=re.replace(/]*? class\s*=\s*["']?fr-marker["']?[^>]+>\u200b<\/span>/gi,""))&&/\u200B/.test(re)&&0=t.KEYCODE.ARROW_LEFT&&N<=t.KEYCODE.ARROW_DOWN)return!0}function i(N){if(N>=t.KEYCODE.ZERO&&N<=t.KEYCODE.NINE||N>=t.KEYCODE.NUM_ZERO&&N<=t.KEYCODE.NUM_MULTIPLY||N>=t.KEYCODE.A&&N<=t.KEYCODE.Z||e.browser.webkit&&N===0)return!0;switch(N){case t.KEYCODE.SPACE:case t.KEYCODE.QUESTION_MARK:case t.KEYCODE.NUM_PLUS:case t.KEYCODE.NUM_MINUS:case t.KEYCODE.NUM_PERIOD:case t.KEYCODE.NUM_DIVISION:case t.KEYCODE.SEMICOLON:case t.KEYCODE.FF_SEMICOLON:case t.KEYCODE.DASH:case t.KEYCODE.EQUALS:case t.KEYCODE.FF_EQUALS:case t.KEYCODE.COMMA:case t.KEYCODE.PERIOD:case t.KEYCODE.SLASH:case t.KEYCODE.APOSTROPHE:case t.KEYCODE.SINGLE_QUOTE:case t.KEYCODE.OPEN_SQUARE_BRACKET:case t.KEYCODE.BACKSLASH:case t.KEYCODE.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}function a(N){var ie=N.which;if(A(N)||37<=ie&&ie<=40||!i(ie)&&ie!==t.KEYCODE.DELETE&&ie!==t.KEYCODE.BACKSPACE&&ie!==t.KEYCODE.ENTER&&ie!==t.KEYCODE.IME)return!0;s||(d=e.snapshot.get(),e.undo.canDo()||e.undo.saveStep()),clearTimeout(s),s=setTimeout(function(){s=null,e.undo.saveStep()},Math.max(250,e.opts.typingTimer))}function p(N){var ie=N.which;if(A(N)||37<=ie&&ie<=40)return!0;d&&s?(e.undo.saveStep(d),d=null):ie!==void 0&&ie!==0||d||s||e.undo.saveStep()}function c(N){if(N&&N.tagName==="BR")return!1;try{return(N.textContent||"").length===0&&N.querySelector&&!N.querySelector(":scope > br")||N.childNodes&&N.childNodes.length===1&&N.childNodes[0].getAttribute&&(N.childNodes[0].getAttribute("contenteditable")==="false"||e.node.hasClass(N.childNodes[0],"fr-img-caption"))}catch{return!1}}function h(N){var ie=e.el.childNodes,D=e.html.defaultTag(),_=e.node.blockParent(e.selection.blocks()[0]);return _&&_.tagName=="TR"&&_.getAttribute("contenteditable")==null&&(_=_.closest("table")),!e.node.isEditable(N.target)||_&&_.getAttribute("contenteditable")==="false"?e.toolbar.disable():e.toolbar.enable(),!(!N.target||N.target===e.el)||ie.length===0||void(ie[0].offsetHeight+ie[0].offsetTop<=N.offsetY?c(ie[ie.length-1])&&(D?e.$el.append("<".concat(D,">").concat(t.MARKERS,"
    ")):e.$el.append("".concat(t.MARKERS,"
    ")),e.selection.restore(),x()):N.offsetY<=10&&c(ie[0])&&(D?e.$el.prepend("<".concat(D,">").concat(t.MARKERS,"
    ")):e.$el.prepend("".concat(t.MARKERS,"
    ")),e.selection.restore(),x()))}function M(){s&&clearTimeout(s)}return{_init:function(){e.events.on("keydown",a),e.events.on("input",m),e.events.on("mousedown",U),e.events.on("keyup input",p),e.events.on("keypress",O),e.events.on("keydown",I),e.events.on("keyup",v),e.events.on("destroy",M),e.events.on("html.inserted",v),e.events.on("cut",C),e.opts.multiLine&&e.events.on("click",h)},ctrlKey:A,isCharacter:i,isArrow:l,forceUndo:function(){s&&(clearTimeout(s),e.undo.saveStep(),d=null)},isIME:function(){return b},isBrowserAction:function(ie){var D=ie.which;return A(ie)||D===t.KEYCODE.F5},positionCaret:x}},Object.assign(t.DEFAULTS,{pastePlain:!1,pasteDeniedTags:["colgroup","col","meta"],pasteDeniedAttrs:["class","id"],pasteAllowedStyleProps:[".*"],pasteAllowLocalImages:!1}),t.MODULES.paste=function(e){var r,s,d,u,b=e.$;function E(l,i){try{e.win.localStorage.setItem("fr-copied-html",l),e.win.localStorage.setItem("fr-copied-text",i)}catch{}}function g(l){var i=e.html.getSelected();E(i,b(e.doc.createElement("div")).html(i).text()),l.type==="cut"&&(e.undo.saveStep(),setTimeout(function(){e.selection.save(),e.html.wrap(),e.selection.restore(),e.events.focus(),e.undo.saveStep()},0))}var m=!1;function C(l){if(l.target.nodeName==="INPUT"&&l.target.type==="text")return!0;if(e.edit.isDisabled()||O(l.target)||m)return!1;if(l.originalEvent&&(l=l.originalEvent),e.events.trigger("paste.before",[l])===!1)return l.preventDefault(),!1;if(l&&l.clipboardData&&l.clipboardData.getData){var i="",a=l.clipboardData.types;if(e.helpers.isArray(a))for(var p=0;p
    '),e.browser.webkit||e.browser.mozilla?(d.css("top",e.$sc.scrollTop()),e.$el.after(d)):e.browser.edge&&e.opts.iframe?e.$el.append(d):e.$box.after(d),e.events.on("destroy",function(){d.remove()}));var h;e.helpers.isIOS()&&e.$sc&&(h=e.$sc.scrollTop()),e.opts.iframe&&e.$el.attr("contenteditable","false"),d.focus(),e.helpers.isIOS()&&e.$sc&&e.$sc.scrollTop(h),e.win.setTimeout(y,1)}(),!1}function O(l){return l&&l.contentEditable==="false"}function U(l){if(l.originalEvent&&(l=l.originalEvent),O(l.target))return!1;if(l&&l.dataTransfer&&l.dataTransfer.getData){var i="",a=l.dataTransfer.types;if(e.helpers.isArray(a))for(var p=0;p")),r!==""){e.keys.forceUndo(),u=e.snapshot.get(),e.selection.save(),e.$el.find(".fr-marker").removeClass("fr-marker").addClass("fr-marker-helper");var c=e.markers.insertAtPoint(l);if(e.$el.find(".fr-marker").removeClass("fr-marker").addClass("fr-marker-placeholder"),e.$el.find(".fr-marker-helper").addClass("fr-marker").removeClass("fr-marker-helper"),e.selection.restore(),e.selection.remove(),e.$el.find(".fr-marker-placeholder").addClass("fr-marker").removeClass("fr-marker-placeholder"),c!==!1){var h=e.el.querySelector(".fr-marker");return b(h).replaceWith(t.MARKERS),e.selection.restore(),y(),l.preventDefault&&(l.stopPropagation(),l.preventDefault()),!1}}else r=null}}function y(){e.opts.iframe&&e.$el.attr("contenteditable","true"),e.browser.edge&&e.opts.iframe&&e.$box.after(d),u||(e.keys.forceUndo(),u=e.snapshot.get()),r||(r=d.get(0).innerHTML,e.selection.restore(),e.events.enableBlur());var l=r.match(/(class="?Mso|class='?Mso|class="?Xl|class='?Xl|class=Xl|style="[^"]*\bmso-|style='[^']*\bmso-|w:WordDocument|LibreOffice)/gi),i=e.events.chainTrigger("paste.beforeCleanup",r);i&&typeof i=="string"&&(r=i),(!l||l&&e.events.trigger("paste.wordPaste",[r])!==!1)&&I(r,l)}function B(l){for(var i="",a=0;a++]*(]*>[\s]*[.\s\S\w\W<>]*[\s]*<\/style>)[.\s\S\w\W<>]*/gi,"$1")),l=(l=M+l.replace(/[.\s\S\w\W<>]*]*>[\s]*([.\s\S\w\W<>]*)[\s]*<\/body>[.\s\S\w\W<>]*/gi,"$1")).replace(/ \n/g," ").replace(/\n /g," ").replace(/([^>])\n([^<])/g,"$1 $2")}var N=!1;0<=l.indexOf('id="docs-internal-guid')&&(l=l.replace(/^[\w\W\s\S]* id="docs-internal-guid[^>]*>([\w\W\s\S]*)<\/b>[\w\W\s\S]*$/g,"$1"),N=!0),0<=l.indexOf('content="Sheets"')&&(l=l.replace(/width:0px;/g,""));var ie=!1;if(!i)if((ie=function(K){var V=null;try{V=e.win.localStorage.getItem("fr-copied-text")}catch{}return!(!V||b("
    ").html(K).text().replace(/\u00A0/gi," ").replace(/\r|\n/gi,"")!==V.replace(/\u00A0/gi," ").replace(/\r|\n/gi,""))}(l))&&(l=e.win.localStorage.getItem("fr-copied-html")),ie)l=e.clean.html(l,e.opts.pasteDeniedTags,e.opts.pasteDeniedAttrs);else{var D=e.opts.htmlAllowedStyleProps;e.opts.htmlAllowedStyleProps=e.opts.pasteAllowedStyleProps,e.opts.htmlAllowComments=!1,l=(l=(l=l.replace(/\s*<\/span>/g,B(e.opts.tabSpaces||4))).replace(/(\t*)<\/span>/g,function(R,K){return B(K.length*(e.opts.tabSpaces||4))})).replace(/\t/g,B(e.opts.tabSpaces||4)),l=e.clean.html(l,e.opts.pasteDeniedTags,e.opts.pasteDeniedAttrs),e.opts.htmlAllowedStyleProps=D,e.opts.htmlAllowComments=!0,l=(l=(l=v(l)).replace(/\r/g,"")).replace(/^ */g,"").replace(/ *$/g,"")}!i||e.wordPaste&&a||((l=l.replace(/^\n*/g,"").replace(/^ /g,"")).indexOf("")===0&&(l="".concat(l,"
    ")),l=v(l=function(K){var V;K=(K=(K=(K=(K=(K=(K=(K=(K=(K=(K=(K=(K=(K=(K=K.replace(/([\s\S]*?)<\/p>/gi,"
    • $3
    ")).replace(/([\s\S]*?)<\/p>/gi,"
    1. $3
    ")).replace(/([\s\S]*?)<\/p>/gi,"
      $5")).replace(/([\s\S]*?)<\/p>/gi,"
        $5")).replace(/([\s\S]*?)<\/p>/gi,"$5")).replace(/([\s\S]*?)<\/p>/gi,"$5")).replace(/([\s\S]*?)<\/p>/gi,"$5")).replace(/([\s\S]*?)<\/p>/gi,"$5
    ")).replace(/([\s\S]*?)<\/p>/gi,"$5")).replace(/([\s\S]*?)([\s\S]*?)/gi,"")).replace(/([\s\S]*?)/gi,"")).replace(/(\n|\r| class=(")?Mso[a-zA-Z0-9]+(")?)/gi," ")).replace(//gi,"")).replace(/<(\/)*(meta|link|span|\\?xml:|st1:|o:|font)(.*?)>/gi,"");var j,X=["style","script","applet","embed","noframes","noscript"];for(V=0;V"),"gi");K=K.replace(fe,"")}for(K=(K=(K=K.replace(/ /gi," ")).replace(/]*)><\/td>/g,"
    ")).replace(/]*)><\/th>/g,"
    ");(K=(j=K).replace(/<[^/>][^>]*><\/[^>]+>/gi,""))!==j;);K=(K=K.replace(/]*)>/gi,'
  • ')).replace(/]*)>/gi,""),K=(K=(K=e.clean.html(K,e.opts.pasteDeniedTags,e.opts.pasteDeniedAttrs)).replace(/(.[^<]+)<\/a>/gi,"$1")).replace(/
    */g,"
    ");var ne=e.o_doc.createElement("div");ne.innerHTML=K;var ve=ne.querySelectorAll("li[data-indent]");for(V=0;V ul, :scope > ol");Ae||(Ae=document.createElement("ul"),be.appendChild(Ae)),Ae.appendChild(Ee)}else Ee.removeAttribute("data-indent")}return e.html.cleanBlankSpaces(ne),K=ne.innerHTML}(l))),e.opts.pastePlain&&!ie&&(l=function(K){var V,j=null,X=e.doc.createElement("div");X.innerHTML=K;var fe=X.querySelectorAll("p, div, h1, h2, h3, h4, h5, h6, pre, blockquote");for(V=0;V").concat(j.innerHTML,"");for(V=(fe=X.querySelectorAll("*:not(".concat("p, div, h1, h2, h3, h4, h5, h6, pre, blockquote, ul, ol, li, table, tbody, thead, tr, td, br, img".split(",").join("):not("),")"))).length-1;0<=V;V--)(j=fe[V]).outerHTML=j.innerHTML;return function ne(ve){for(var Ee=e.node.contents(ve),be=0;be")?(e.html.cleanBlankSpaces(Q),e.spaces.normalize(Q,!0)):e.spaces.normalize(Q);var re=Q.getElementsByTagName("span");for(p=re.length-1;0<=p;p--){var q=re[p];q.attributes.length===0&&(q.outerHTML=q.innerHTML)}if(e.opts.linkAlwaysBlank===!0){var ae=Q.getElementsByTagName("a");for(p=ae.length-1;0<=p;p--){var se=ae[p];se.getAttribute("target")||se.setAttribute("target","_blank")}}var H=e.selection.element(),W=!1;if(H&&b(H).parentsUntil(e.el,"ul, ol").length&&(W=!0),W){var T=Q.children;T.length===1&&0<=["OL","UL"].indexOf(T[0].tagName)&&(T[0].outerHTML=T[0].innerHTML)}if(!N){var S=Q.getElementsByTagName("br");for(p=S.length-1;0<=p;p--){var L=S[p];e.node.isBlock(L.previousSibling)&&L.parentNode.removeChild(L)}}if(e.opts.enter===t.ENTER_BR)for(p=(c=Q.querySelectorAll("p, div")).length-1;0<=p;p--)(h=c[p]).attributes.length===0&&(h.outerHTML=h.innerHTML+(h.nextSibling&&!e.node.isEmpty(h)?"
    ":""));else if(e.opts.enter===t.ENTER_DIV)for(p=(c=Q.getElementsByTagName("p")).length-1;0<=p;p--)(h=c[p]).attributes.length===0&&(h.outerHTML="
    ".concat(h.innerHTML,"
    "));else e.opts.enter===t.ENTER_P&&Q.childNodes.length===1&&Q.childNodes[0].tagName==="P"&&Q.childNodes[0].attributes.length===0&&(Q.childNodes[0].outerHTML=Q.childNodes[0].innerHTML);l=Q.innerHTML,ie&&(l=function(K){var V,j=e.o_doc.createElement("div");j.innerHTML=K;for(var X=j.querySelectorAll("*:empty:not(td):not(th):not(tr):not(iframe):not(svg):not(".concat(t.VOID_ELEMENTS.join("):not("),"):not(").concat(e.opts.htmlAllowedEmptyTags.join("):not("),")"));X.length;){for(V=0;V div:not([style]), td > div:not([style]), th > div:not([style]), li > div:not([style])")));p.length;){var c=p[p.length-1];if(e.html.defaultTag()&&e.html.defaultTag()!=="div")c.querySelector(e.html.blockTagsQuery())?c.outerHTML=c.innerHTML:c.outerHTML="<".concat(e.html.defaultTag(),">").concat(c.innerHTML,"");else{var h=c.querySelectorAll("*");!h.length||h[h.length-1].tagName!=="BR"&&c.innerText.length===0||!h.length||h[h.length-1].tagName!=="BR"||h[h.length-1].nextSibling?c.outerHTML=c.innerHTML+(c.nextSibling?"
    ":""):c.outerHTML=c.innerHTML}p=x(Array.prototype.slice.call(a.querySelectorAll(":scope > div:not([style]), td > div:not([style]), th > div:not([style]), li > div:not([style])")))}for(p=x(Array.prototype.slice.call(a.querySelectorAll("div:not([style])")));p.length;){for(i=0;ie.undo_index;)e.undo_stack.pop()}function u(){e.undo_index=0,e.undo_stack=[]}function b(){e.undo_stack=[]}return{_init:function(){u(),e.events.on("initialized",function(){s=(e.$wp?e.$el.html():e.$oel.get(0).outerHTML).replace(/ style=""/g,"")}),e.events.on("blur",function(){e.el.querySelector(".fr-dragging")||e.undo.saveStep()}),e.events.on("keydown",r),e.events.on("destroy",b)},run:function(){if(1'.concat(u,""));for(var b=0;b'));E.get(0).addEventListener("load",e.size.syncIframe),e.$head.append(E)}}},hasFocus:function(){return e.browser.mozilla&&e.helpers.isMobile()?e.selection.inEditor():e.node.hasFocus(e.el)||0 span").css("width")),ie=e.helpers.getPX(M.css("paddingLeft")),D=e.helpers.getPX(M.css("paddingRight"));M.css("width",N*e.opts.colorsStep+ie+D)}return e.button.bindCommands(h,!1),h}function x(i){var a=d[i];return{_windowResize:function(){var p=a.data("instance")||e;!p.helpers.isMobile()&&a.isVisible()&&(p.events.disableBlur(),p.popups.hide(i),p.events.enableBlur())},_inputFocus:function(p){var c=a.data("instance")||e,h=r(p.currentTarget);if(h.is("input:file")&&h.closest(".fr-layer").addClass("fr-input-focus"),p.preventDefault(),p.stopPropagation(),setTimeout(function(){c.events.enableBlur()},100),c.helpers.isMobile()){var M=r(c.o_win).scrollTop();setTimeout(function(){r(c.o_win).scrollTop(M)},0)}},_inputBlur:function(p){var c=a.data("instance")||e,h=r(p.currentTarget);h.is("input:file")&&h.closest(".fr-layer").removeClass("fr-input-focus"),document.activeElement!==this&&r(this).isVisible()&&(c.events.blurActive()&&c.events.trigger("blur"),c.events.enableBlur())},_editorKeydown:function(p){var c=a.data("instance")||e;c.keys.ctrlKey(p)||p.which===t.KEYCODE.ALT||p.which===t.KEYCODE.ESC||(g(i)&&a.findVisible(".fr-back").length?c.button.exec(a.findVisible(".fr-back").first()):p.which!==t.KEYCODE.ALT&&c.popups.hide(i))},_preventFocus:function(p){var c=a.data("instance")||e,h=p.originalEvent?p.originalEvent.target||p.originalEvent.originalTarget:null;p.type==="mouseup"||r(h).is(":focus")||c.events.disableBlur(),p.type!=="mouseup"||r(h).hasClass("fr-command")||0').concat(Q.attr("placeholder"),"")),Q.attr("placeholder",""))}}(M),e.events.$on(M,"focus",b),e.events.$on(M,"blur change",E),e.events.$on(c,"click",".fr-checkbox + label",A),e.accessibility.registerPopup(a),e.helpers.isIOS()&&e.events.$on(c,"touchend","label",function(){r("#".concat(r(this).attr("for"))).prop("checked",function(N,ie){return!ie})},!0),e.events.$on(r(e.o_win),"resize",h._windowResize,!0),c},get:function(a){var p=d[a];return p&&!p.data("inst".concat(e.id))&&v(x(a),a),p},show:function(a,p,c,h,M){if(g(a)||(m()&&0 .fr-dropdown-wrapper").css("height",""),N.next().attr("aria-hidden",!0).css("overflow","").find("> .fr-dropdown-wrapper").css("height",""),d[a].data("instance",e),e.$tb&&e.$tb.data("instance",e);var ie=g(a);d[a].addClass("fr-active").removeClass("fr-hidden").find("input, textarea").removeAttr("disabled");var D=d[a].data("container");if(function(q,ae){ae.isVisible()||(ae=e.$sc),ae.contains([d[q].get(0)])||ae.append(d[q])}(a,D),e.opts.toolbarInline&&D&&e.$tb&&D.get(0)===e.$tb.get(0)&&(u(a,e.$sc),c=e.$tb.offset().top-e.helpers.getPX(e.$tb.css("margin-top")),p=e.$tb.offset().left+e.$tb.outerWidth()/2,e.node.hasClass(e.$tb.get(0),"fr-above")&&c&&(c+=e.$tb.outerHeight()),h=0),D=d[a].data("container"),e.opts.iframe&&!h&&!ie){var _=e.helpers.getPX(e.$wp.find(".fr-iframe").css("padding-top")),Q=e.helpers.getPX(e.$wp.find(".fr-iframe").css("padding-left"));p&&(p-=e.$iframe.offset().left+Q),c&&(c-=e.$iframe.offset().top+_)}D.is(e.$tb)?e.$tb.css("zIndex",(e.opts.zIndex||1)+4):d[a].css("zIndex",(e.opts.zIndex||1)+4),e.opts.toolbarBottom&&D&&e.$tb&&D.get(0)===e.$tb.get(0)&&(d[a].addClass("fr-above"),c&&(c-=d[a].outerHeight())),M&&(p-=d[a].width()/2),p+d[a].outerWidth()>e.$sc.offset().left+e.$sc.width()&&(p-=p+d[a].outerWidth()-e.$sc.offset().left-e.$sc.width()),p button.fr-command").first());if(0r(e.o_win).width()&&(E=r(e.o_win).width()-e.$tooltip.outerWidth()),b===void 0&&(b=e.opts.toolbarBottom),u.offset().top-r(window).scrollTop()+u.outerHeight()+10>=r(window).height()&&(b=!0);var g=b?u.offset().top-e.$tooltip.height():u.offset().top+u.outerHeight();e.$tooltip.css("position",""),e.$tooltip.css("left",E),e.$tooltip.css("top",Math.ceil(g)),r(e.o_doc).find("body").first().css("position")!=="static"?(e.$tooltip.css("margin-left",-r(e.o_doc).find("body").first().offset().left),e.$tooltip.css("margin-top",-r(e.o_doc).find("body").first().offset().top)):(e.$tooltip.css("margin-left",""),e.$tooltip.css("margin-top",""))}}return{hide:s,to:d,bind:function(b,E,g){e.opts.tooltips&&!e.helpers.isMobile()&&(e.events.$on(b,"mouseover",E,function(m){e.node.hasClass(m.currentTarget,"fr-disabled")||e.edit.isDisabled()||d(r(m.currentTarget),g)},!0),e.events.$on(b,"mouseout ".concat(e._mousedown," ").concat(e._mouseup),E,function(){s()},!0))}}},t.TOOLBAR_VISIBLE_BUTTONS=3,t.MODULES.button=function(e){var r=e.$,s=[];(e.opts.toolbarInline||e.opts.toolbarContainer)&&(e.shared.buttons||(e.shared.buttons=[]),s=e.shared.buttons);var d=[];function u(i,a,p){for(var c=r(),h=0;h .fr-dropdown-wrapper");if(!p){var D=i.data("cmd");a.find(".fr-command").removeClass("fr-active").attr("aria-selected",!1),t.COMMANDS[D]&&t.COMMANDS[D].refreshOnShow&&t.COMMANDS[D].refreshOnShow.apply(h,[i,a]),a.css("left",i.offset().left-i.parents(".fr-btn-wrap, .fr-toolbar, .fr-buttons").offset().left-(e.opts.direction==="rtl"?a.width()-i.outerWidth():0)),a.addClass("test-height"),M=a.outerHeight(),N=e.helpers.getPX(ie.css("max-height")),a.removeClass("test-height"),a.css("top","").css("bottom","");var _=i.outerHeight()/10;if(!e.opts.toolbarBottom&&a.offset().top+i.outerHeight()+Me.$sc.offset().left+e.$sc.width()&&a.css("margin-left",-(a.offset().left+a.outerWidth()-e.$sc.offset().left-e.$sc.width())),a.offset().left .fr-dropdown-wrapper").css("height",""),c.prev(".fr-expanded").removeClass("fr-expanded"),c.parents(".fr-toolbar:not(.fr-inline)").css("zIndex",""),i.parents(".fr-popup").length!==0||e.opts.toolbarInline||(e.node.hasClass(i.get(0),"fr-active")?e.$tb.css("zIndex",(e.opts.zIndex||1)+4):e.$tb.css("zIndex",""));var q=a.find("a.fr-command.fr-active").first();e.helpers.isMobile()||(q.length?(e.accessibility.focusToolbarElement(q),ie.scrollTop(Math.abs(q.parents(".fr-dropdown-content").offset().top-q.offset().top)-q.offset().top)):(e.accessibility.focusToolbarElement(i),ie.scrollTop(0)))}function g(i){i.addClass("fr-blink"),setTimeout(function(){i.removeClass("fr-blink")},500);for(var a=i.data("cmd"),p=[];i.data("param".concat(p.length+1))!==void 0;)p.push(i.data("param".concat(p.length+1)));var c=b(".fr-dropdown.fr-active");c.length&&(c.removeClass("fr-active").attr("aria-expanded",!1).next().attr("aria-hidden",!0).css("overflow","").find("> .fr-dropdown-wrapper").css("height",""),c.prev(".fr-expanded").removeClass("fr-expanded"),c.parents(".fr-toolbar:not(.fr-inline)").css("zIndex","")),i.parents(".fr-popup, .fr-toolbar").data("instance").commands.exec(a,p)}function m(i){var a=i.parents(".fr-popup, .fr-toolbar").data("instance");if(i.parents(".fr-popup").length===0&&i.data("popup")&&!i.hasClass("fr-btn-active-popup")&&i.addClass("fr-btn-active-popup"),i.parents(".fr-popup").length!==0||i.data("popup")||a.popups.hideAll(),a.popups.areVisible()&&!a.popups.areVisible(a)){for(var p=0;p .fr-dropdown-wrapper").css("height",""),a.parents(".fr-toolbar:not(.fr-inline)").css("zIndex",""),a.prev().removeClass("fr-expanded"))}function U(i){i.preventDefault(),i.stopPropagation()}function y(i){if(i.stopPropagation(),!e.helpers.isMobile())return!1}function B(i){var a=1').concat(e.language.translate(M||a.title),"")}else h=e.icon.create(a.icon||i),h+=''.concat(e.language.translate(a.title)||"","");var N=a.popup?' data-popup="true"':"",ie=a.modal?' data-modal="true"':"",D=e.shortcuts.get("".concat(i,"."));D=D?" (".concat(D,")"):"";var _="".concat(i,"-").concat(e.id),Q="dropdown-menu-".concat(_),re='");if(a.type==="dropdown"||a.type==="options"){var q='
    "}return a.hasOptions&&a.hasOptions.apply(e)&&(re='
    '.concat(re," ").concat(B(i+"Options",Object.assign({},a,{type:"options",hasOptions:!1}),p),"
    ")),re}function I(i){var a=e.$tb&&e.$tb.data("instance")||e;if(e.events.trigger("buttons.refresh")===!1)return!0;setTimeout(function(){for(var p=a.selection.inEditor()&&a.core.hasFocus(),c=0;c
  • ':M==="-"&&(c+=''))}return c},buildGroup:function(a){var p="",c="";for(var h in a){var M=a[h];if(M.buttons){for(var N="",ie="",D=0,_="left",Q=t.TOOLBAR_VISIBLE_BUTTONS,re=0;re
    ':q=="-"&&(N+='')),!ae||ae&&typeof ae.plugin<"u"&&e.opts.pluginsEnabled.indexOf(ae.plugin)<0||(a[h].align!==void 0&&(_=a[h].align),a[h].buttonsVisible!==void 0&&(Q=a[h].buttonsVisible),a.showMoreButtons&&Q<=D?ie+=B(q,ae,!0):N+=B(q,ae,!0),D++)}if(a.showMoreButtons&&Q').concat(N,"
    "),a.showMoreButtons&&0').concat(ie,""))}}return e.opts.toolbarBottom?"".concat(c,'
    ').concat(p):"".concat(p,'
    ').concat(c)},bindCommands:function(a,p){e.events.bindClick(a,".fr-command:not(.fr-disabled)",C),e.events.$on(a,"".concat(e._mousedown," ").concat(e._mouseup," ").concat(e._move),".fr-dropdown-menu",U,!0),e.events.$on(a,"".concat(e._mousedown," ").concat(e._mouseup," ").concat(e._move),".fr-dropdown-menu .fr-dropdown-wrapper",y,!0);var c=a.get(0).ownerDocument,h="defaultView"in c?c.defaultView:c.parentWindow;function M(N){(!N||N.type===e._mouseup&&N.target!==r("html").get(0)||N.type==="keydown"&&(e.keys.isCharacter(N.which)&&!e.keys.ctrlKey(N)||N.which===t.KEYCODE.ESC))&&O(a)}e.events.$on(r(h),"".concat(e._mouseup," resize keydown"),M,!0),e.opts.iframe&&e.events.$on(e.$win,e._mouseup,M,!0),e.node.hasClass(a.get(0),"fr-popup")?r.merge(d,a.find(".fr-btn").toArray()):r.merge(s,a.find(".fr-btn").toArray()),e.tooltip.bind(a,".fr-btn, .fr-title",p)},refresh:function(a){var p,c=a.parents(".fr-popup, .fr-toolbar").data("instance")||e,h=a.data("cmd");e.node.hasClass(a.get(0),"fr-dropdown")?p=a.next():(a.removeClass("fr-active"),a.attr("aria-pressed")&&a.attr("aria-pressed",!1)),t.COMMANDS[h]&&t.COMMANDS[h].refresh?t.COMMANDS[h].refresh.apply(c,[a,p]):e.refresh[h]&&c.refresh[h](a,p)},bulkRefresh:x,exec:g,click:m,hideActiveDropdowns:O,addButtons:function(a){for(var p=0;p
    '}],t}return Le.prototype.render=function(){return We.createElement(Qe,{config:this.props.config,model:this.props.model,onModelChange:this.props.onModelChange})},Le}(We.Component);export{et as default}; diff --git a/public/admin/assets/RichText-95e56af5.js.gz b/public/admin/assets/RichText-95e56af5.js.gz new file mode 100644 index 0000000..d84bccc Binary files /dev/null and b/public/admin/assets/RichText-95e56af5.js.gz differ diff --git a/public/admin/assets/Tinymce-d89788eb.js b/public/admin/assets/Tinymce-d89788eb.js new file mode 100644 index 0000000..2452ce0 --- /dev/null +++ b/public/admin/assets/Tinymce-d89788eb.js @@ -0,0 +1,155 @@ +import{g as WZ,b as ZZ,R as tj,d as WW}from"./index-14fc2d8d.js";var ZW={exports:{}};(function(Ko){(function(){var vo=function(e){if(e===null)return"null";if(e===void 0)return"undefined";var n=typeof e;return n==="object"&&(Array.prototype.isPrototypeOf(e)||e.constructor&&e.constructor.name==="Array")?"array":n==="object"&&(String.prototype.isPrototypeOf(e)||e.constructor&&e.constructor.name==="String")?"string":n},Co=function(e){return["undefined","boolean","number","string","function","xml","null"].indexOf(e)!==-1},Pn=function(e,n){var o=Array.prototype.slice.call(e);return o.sort(n)},ro=function(e,n){return ao(function(o,r){return e.eq(n(o),n(r))})},ao=function(e){return{eq:e}},lo=ao(function(e,n){return e===n}),Kt=lo,cn=function(e){return ao(function(n,o){if(n.length!==o.length)return!1;for(var r=n.length,c=0;c{var r;return o(e,n.prototype)?!0:((r=e.constructor)===null||r===void 0?void 0:r.name)===n.name},un=e=>{const n=typeof e;return e===null?"null":n==="object"&&Array.isArray(e)?"array":n==="object"&&Tt(e,String,(o,r)=>r.isPrototypeOf(o))?"string":n},En=e=>n=>un(n)===e,Pe=e=>n=>typeof n===e,Ut=e=>n=>e===n,ut=(e,n)=>dt(e)&&Tt(e,n,(o,r)=>ln(o)===r),q=En("string"),dt=En("object"),$t=e=>ut(e,Object),kt=En("array"),U=Ut(null),xt=Pe("boolean"),In=Ut(void 0),zt=e=>e==null,Ke=e=>!zt(e),ce=Pe("function"),ze=Pe("number"),Ze=(e,n)=>{if(kt(e)){for(let o=0,r=e.length;o{},E=(e,n)=>(...o)=>e(n.apply(null,o)),Mn=(e,n)=>o=>e(n(o)),nt=e=>()=>e,mo=e=>e,Qt=(e,n)=>e===n;function Ye(e,...n){return(...o)=>{const r=n.concat(o);return e.apply(null,r)}}const go=e=>n=>!e(n),So=e=>()=>{throw new Error(e)},At=e=>e(),fn=e=>{e()},Te=nt(!1),lt=nt(!0);class I{constructor(n,o){this.tag=n,this.value=o}static some(n){return new I(!0,n)}static none(){return I.singletonNone}fold(n,o){return this.tag?o(this.value):n()}isSome(){return this.tag}isNone(){return!this.tag}map(n){return this.tag?I.some(n(this.value)):I.none()}bind(n){return this.tag?n(this.value):I.none()}exists(n){return this.tag&&n(this.value)}forall(n){return!this.tag||n(this.value)}filter(n){return!this.tag||n(this.value)?this:I.none()}getOr(n){return this.tag?this.value:n}or(n){return this.tag?this:n}getOrThunk(n){return this.tag?this.value:n()}orThunk(n){return this.tag?this:n()}getOrDie(n){if(this.tag)return this.value;throw new Error(n??"Called getOrDie on None")}static from(n){return Ke(n)?I.some(n):I.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(n){this.tag&&n(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}I.singletonNone=new I(!1);const Io=Array.prototype.slice,tt=Array.prototype.indexOf,mt=Array.prototype.push,yt=(e,n)=>tt.call(e,n),Ue=(e,n)=>{const o=yt(e,n);return o===-1?I.none():I.some(o)},ne=(e,n)=>yt(e,n)>-1,Me=(e,n)=>{for(let o=0,r=e.length;o{const o=e.length,r=new Array(o);for(let c=0;c{for(let o=0,r=e.length;o{for(let o=e.length-1;o>=0;o--){const r=e[o];n(r,o)}},_e=(e,n)=>{const o=[],r=[];for(let c=0,u=e.length;c{const o=[];for(let r=0,c=e.length;r(pe(e,(r,c)=>{o=n(o,r,c)}),o),he=(e,n,o)=>(Y(e,(r,c)=>{o=n(o,r,c)}),o),bt=(e,n,o)=>{for(let r=0,c=e.length;rbt(e,n,Te),Vn=(e,n)=>{for(let o=0,r=e.length;o{const n=[];for(let o=0,r=e.length;ouo(Ae(e,n)),wn=(e,n)=>{for(let o=0,r=e.length;o{const n=Io.call(e,0);return n.reverse(),n},Ro=(e,n)=>Be(e,o=>!ne(n,o)),no=(e,n)=>{const o={};for(let r=0,c=e.length;r{const o=Io.call(e,0);return o.sort(n),o},Jn=(e,n)=>n>=0&&nJn(e,0),Lo=e=>Jn(e,e.length-1),Cs=ce(Array.from)?Array.from:e=>Io.call(e),js=(e,n)=>{for(let o=0;o{const o=[],r=ce(n)?c=>Me(o,u=>n(u,c)):c=>ne(o,c);for(let c=0,u=e.length;c{const o=Es(e);for(let r=0,c=o.length;rJr(e,(o,r)=>({k:r,v:n(o,r)})),Jr=(e,n)=>{const o={};return Nt(e,(r,c)=>{const u=n(r,c);o[u.k]=u.v}),o},sr=e=>(n,o)=>{e[o]=n},Va=(e,n,o,r)=>{Nt(e,(c,u)=>{(n(c,u)?o:r)(c,u)})},fa=(e,n)=>{const o={},r={};return Va(e,n,sr(o),sr(r)),{t:o,f:r}},ks=(e,n)=>{const o={};return Va(e,n,sr(o),ft),o},_a=(e,n)=>{const o=[];return Nt(e,(r,c)=>{o.push(n(r,c))}),o},Rr=e=>_a(e,mo),ns=(e,n)=>Un(e,n)?I.from(e[n]):I.none(),Un=(e,n)=>ur.call(e,n),Cr=(e,n)=>Un(e,n)&&e[n]!==void 0&&e[n]!==null,Ee=(e,n,o=ko)=>Tn(o).eq(e,n),We=e=>{const n={};return Y(e,o=>{n[o]={}}),Es(n)},Lt=e=>e.length!==void 0,gn=Array.isArray,ho=e=>{if(gn(e))return e;{const n=[];for(let o=0,r=e.length;o{if(!e)return!1;if(o=o||e,Lt(e)){for(let r=0,c=e.length;r{const o=[];return Ho(e,(r,c)=>{o.push(n(r,c,e))}),o},le=(e,n)=>{const o=[];return Ho(e,(r,c)=>{(!n||n(r,c,e))&&o.push(r)}),o},re=(e,n)=>{if(e){for(let o=0,r=e.length;o{let c=In(o)?e[0]:o;for(let u=0;u{for(let r=0,c=e.length;re[e.length-1],Hn=e=>{let n=!1,o;return(...r)=>(n||(n=!0,o=e.apply(null,r)),o)},Bo=(e,n,o,r)=>{const c=e.isiOS()&&/ipad/i.test(o)===!0,u=e.isiOS()&&!c,m=e.isiOS()||e.isAndroid(),b=m||r("(pointer:coarse)"),v=c||!u&&m&&r("(min-device-width:768px)"),x=u||m&&!v,M=n.isSafari()&&e.isiOS()&&/safari/i.test(o)===!1,D=!x&&!v&&!M;return{isiPad:nt(c),isiPhone:nt(u),isTablet:nt(v),isPhone:nt(x),isTouch:nt(b),isAndroid:e.isAndroid,isiOS:e.isiOS,isWebView:nt(M),isDesktop:nt(D)}},ws=(e,n)=>{for(let o=0;o{const o=ws(e,n);if(!o)return{major:0,minor:0};const r=c=>Number(n.replace(o,"$"+c));return ps(r(1),r(2))},Uo=(e,n)=>{const o=String(n).toLowerCase();return e.length===0?Ce():To(e,o)},Ce=()=>ps(0,0),ps=(e,n)=>({major:e,minor:n}),ie={nu:ps,detect:Uo,unknown:Ce},de=(e,n)=>js(n.brands,o=>{const r=o.brand.toLowerCase();return It(e,c=>{var u;return r===((u=c.brand)===null||u===void 0?void 0:u.toLowerCase())}).map(c=>({current:c.name,version:ie.nu(parseInt(o.version,10),0)}))}),_t=(e,n)=>{const o=String(n).toLowerCase();return It(e,r=>r.search(o))},Ct=(e,n)=>_t(e,n).map(o=>{const r=ie.detect(o.versionRegexes,n);return{current:o.name,version:r}}),Xt=(e,n)=>_t(e,n).map(o=>{const r=ie.detect(o.versionRegexes,n);return{current:o.name,version:r}}),vn=(e,n)=>e.substring(n),hn=(e,n,o)=>n===""||e.length>=n.length&&e.substr(o,o+n.length)===n,_n=(e,n)=>eo(e,n)?vn(e,n.length):e,Qn=(e,n,o=0,r)=>{const c=e.indexOf(n,o);return c!==-1?In(r)?!0:c+n.length<=r:!1},eo=(e,n)=>hn(e,n,0),As=(e,n)=>hn(e,n,e.length-n.length),Gs=e=>n=>n.replace(e,""),Ma=Gs(/^\s+|\s+$/g),Ua=Gs(/^\s+/g),ic=Gs(/\s+$/g),io=e=>e.length>0,hs=e=>!io(e),Os=(e,n)=>n<=0?"":new Array(n+1).join(e),Wr=(e,n=10)=>{const o=parseInt(e,n);return isNaN(o)?I.none():I.some(o)},Qr=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,Fr=e=>n=>Qn(n,e),Qs=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:e=>Qn(e,"edge/")&&Qn(e,"chrome")&&Qn(e,"safari")&&Qn(e,"applewebkit")},{name:"Chromium",brand:"Chromium",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,Qr],search:e=>Qn(e,"chrome")&&!Qn(e,"chromeframe")},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:e=>Qn(e,"msie")||Qn(e,"trident")},{name:"Opera",versionRegexes:[Qr,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:Fr("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:Fr("firefox")},{name:"Safari",versionRegexes:[Qr,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:e=>(Qn(e,"safari")||Qn(e,"mobile/"))&&Qn(e,"applewebkit")}],Ql=[{name:"Windows",search:Fr("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:e=>Qn(e,"iphone")||Qn(e,"ipad"),versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:Fr("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"macOS",search:Fr("mac os x"),versionRegexes:[/.*?mac\ os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:Fr("linux"),versionRegexes:[]},{name:"Solaris",search:Fr("sunos"),versionRegexes:[]},{name:"FreeBSD",search:Fr("freebsd"),versionRegexes:[]},{name:"ChromeOS",search:Fr("cros"),versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/]}],ji={browsers:nt(Qs),oses:nt(Ql)},zs="Edge",Ca="Chromium",Na="IE",Sr="Opera",Wi="Firefox",lc="Safari",Sa=()=>wc({current:void 0,version:ie.unknown()}),wc=e=>{const n=e.current,o=e.version,r=c=>()=>n===c;return{current:n,version:o,isEdge:r(zs),isChromium:r(Ca),isIE:r(Na),isOpera:r(Sr),isFirefox:r(Wi),isSafari:r(lc)}},al={unknown:Sa,nu:wc,edge:nt(zs),chromium:nt(Ca),ie:nt(Na),opera:nt(Sr),firefox:nt(Wi),safari:nt(lc)},li="Windows",cl="iOS",Ba="Android",Nc="Linux",Zi="macOS",jc="Solaris",qi="FreeBSD",W="ChromeOS",be=()=>Se({current:void 0,version:ie.unknown()}),Se=e=>{const n=e.current,o=e.version,r=c=>()=>n===c;return{current:n,version:o,isWindows:r(li),isiOS:r(cl),isAndroid:r(Ba),isMacOS:r(Zi),isLinux:r(Nc),isSolaris:r(jc),isFreeBSD:r(qi),isChromeOS:r(W)}},ot={unknown:be,nu:Se,windows:nt(li),ios:nt(cl),android:nt(Ba),linux:nt(Nc),macos:nt(Zi),solaris:nt(jc),freebsd:nt(qi),chromeos:nt(W)},Wn={detect:(e,n,o)=>{const r=ji.browsers(),c=ji.oses(),u=n.bind(v=>de(r,v)).orThunk(()=>Ct(r,e)).fold(al.unknown,al.nu),m=Xt(c,e).fold(ot.unknown,ot.nu),b=Bo(m,u,e,o);return{browser:u,os:m,deviceType:b}}},Bs=e=>window.matchMedia(e).matches;let Ir=Hn(()=>Wn.detect(navigator.userAgent,I.from(navigator.userAgentData),Bs));const os=()=>Ir(),Lr=navigator.userAgent,bs=os(),yr=bs.browser,Bc=bs.os,_c=bs.deviceType,wo=Lr.indexOf("Windows Phone")!==-1,_s={transparentSrc:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",documentMode:yr.isIE()?document.documentMode||7:10,cacheSuffix:null,container:null,canHaveCSP:!yr.isIE(),windowsPhone:wo,browser:{current:yr.current,version:yr.version,isChromium:yr.isChromium,isEdge:yr.isEdge,isFirefox:yr.isFirefox,isIE:yr.isIE,isOpera:yr.isOpera,isSafari:yr.isSafari},os:{current:Bc.current,version:Bc.version,isAndroid:Bc.isAndroid,isChromeOS:Bc.isChromeOS,isFreeBSD:Bc.isFreeBSD,isiOS:Bc.isiOS,isLinux:Bc.isLinux,isMacOS:Bc.isMacOS,isSolaris:Bc.isSolaris,isWindows:Bc.isWindows},deviceType:{isDesktop:_c.isDesktop,isiPad:_c.isiPad,isiPhone:_c.isiPhone,isPhone:_c.isPhone,isTablet:_c.isTablet,isTouch:_c.isTouch,isWebView:_c.isWebView}},ra=/^\s*|\s*$/g,B=e=>zt(e)?"":(""+e).replace(ra,""),K=(e,n)=>n?n==="array"&&gn(e)?!0:typeof e===n:e!==void 0,se=(e,n,o={})=>{const r=q(e)?e.split(n||","):e||[];let c=r.length;for(;c--;)o[r[c]]={};return o},Ge=Un,tn=(e,...n)=>{for(let o=0;on.call(r,c,u,o)===!1?!1:(Mo(c,n,o,r),!0)))},wt={trim:B,isArray:gn,is:K,toArray:ho,makeMap:se,each:Ho,map:qs,grep:le,inArray:re,hasOwn:Ge,extend:tn,walk:Mo,resolve:(e,n=window)=>{const o=e.split(".");for(let r=0,c=o.length;rkt(e)?e:e===""?[]:qs(e.split(n||","),B),_addCacheSuffix:e=>{const n=_s.cacheSuffix;return n&&(e+=(e.indexOf("?")===-1?"?":"&")+n),e}},qr=(e,n,o=Qt)=>e.exists(r=>o(r,n)),xr=e=>{const n=[],o=r=>{n.push(r)};for(let r=0;re.isSome()&&n.isSome()?I.some(o(e.getOrDie(),n.getOrDie())):I.none(),sd=(e,n,o,r)=>e.isSome()&&n.isSome()&&o.isSome()?I.some(r(e.getOrDie(),n.getOrDie(),o.getOrDie())):I.none(),Xo=(e,n)=>e?I.some(n):I.none(),X=typeof window<"u"?window:Function("return this;")(),ae=(e,n)=>{let o=n??X;for(let r=0;r{const o=e.split(".");return ae(o,n)},at=(e,n)=>$e(e,n),Sn=(e,n)=>{const o=at(e,n);if(o==null)throw new Error(e+" not available on this browser");return o},ds=Object.getPrototypeOf,dr=e=>Sn("HTMLElement",e),es=e=>{const n=$e("ownerDocument.defaultView",e);return dt(e)&&(dr(n).prototype.isPrototypeOf(e)||/^HTML\w*Element$/.test(ds(e).constructor.name))},rr=8,xa=9,Ks=11,Cc=1,Wc=3,Ws=e=>e.dom.nodeName.toLowerCase(),Ta=e=>e.dom.nodeType,Tr=e=>n=>Ta(n)===e,Ti=e=>Ta(e)===rr||Ws(e)==="#comment",Sl=e=>er(e)&&es(e.dom),er=Tr(Cc),Sc=Tr(Wc),Ei=Tr(xa),rd=Tr(Ks),il=e=>n=>er(n)&&Ws(n)===e,Qc=(e,n,o)=>{if(q(o)||xt(o)||ze(o))e.setAttribute(n,o+"");else throw console.error("Invalid call to Attribute.set. Key ",n,":: Value ",o,":: Element ",e),new Error("Attribute value was not simple")},ea=(e,n,o)=>{Qc(e.dom,n,o)},uc=(e,n)=>{const o=e.dom;Nt(n,(r,c)=>{Qc(o,c,r)})},Pc=(e,n)=>{const o=e.dom.getAttribute(n);return o===null?void 0:o},ei=(e,n)=>I.from(Pc(e,n)),Qa=(e,n)=>{const o=e.dom;return o&&o.hasAttribute?o.hasAttribute(n):!1},Hr=(e,n)=>{e.dom.removeAttribute(n)},Zc=e=>{const n=e.dom.attributes;return n==null||n.length===0},nf=e=>he(e.dom.attributes,(n,o)=>(n[o.name]=o.value,n),{}),eu=(e,n)=>{const o=Pc(e,n);return o===void 0||o===""?[]:o.split(" ")},tu=(e,n,o)=>{const c=eu(e,n).concat([o]);return ea(e,n,c.join(" ")),!0},Gf=(e,n,o)=>{const r=Be(eu(e,n),c=>c!==o);return r.length>0?ea(e,n,r.join(" ")):Hr(e,n),!1},ui=e=>e.dom.classList!==void 0,nu=e=>eu(e,"class"),ad=(e,n)=>tu(e,"class",n),Gr=(e,n)=>Gf(e,"class",n),of=(e,n)=>ne(nu(e),n)?Gr(e,n):ad(e,n),Au=(e,n)=>{ui(e)?e.dom.classList.add(n):ad(e,n)},Ou=e=>{(ui(e)?e.dom.classList:nu(e)).length===0&&Hr(e,"class")},cd=(e,n)=>{ui(e)?e.dom.classList.remove(n):Gr(e,n),Ou(e)},id=(e,n)=>{const o=ui(e)?e.dom.classList.toggle(n):of(e,n);return Ou(e),o},ld=(e,n)=>ui(e)&&e.dom.classList.contains(n),zu=(e,n)=>{const r=(n||document).createElement("div");if(r.innerHTML=e,!r.hasChildNodes()||r.childNodes.length>1){const c="HTML does not have a single root node";throw console.error(c,e),new Error(c)}return ou(r.childNodes[0])},Kf=(e,n)=>{const r=(n||document).createElement(e);return ou(r)},Yf=(e,n)=>{const r=(n||document).createTextNode(e);return ou(r)},ou=e=>{if(e==null)throw new Error("Node cannot be null or undefined");return{dom:e}},ue={fromHtml:zu,fromTag:Kf,fromText:Yf,fromDom:ou,fromPoint:(e,n,o)=>I.from(e.dom.elementFromPoint(n,o)).map(ou)},ud=(e,n)=>{const o=[],r=u=>(o.push(u),n(u));let c=n(e);do c=c.bind(r);while(c.isSome());return o},$c=(e,n)=>{const o=e.dom;if(o.nodeType!==Cc)return!1;{const r=o;if(r.matches!==void 0)return r.matches(n);if(r.msMatchesSelector!==void 0)return r.msMatchesSelector(n);if(r.webkitMatchesSelector!==void 0)return r.webkitMatchesSelector(n);if(r.mozMatchesSelector!==void 0)return r.mozMatchesSelector(n);throw new Error("Browser lacks native selectors")}},Wm=e=>e.nodeType!==Cc&&e.nodeType!==xa&&e.nodeType!==Ks||e.childElementCount===0,vh=(e,n)=>{const o=n===void 0?document:n.dom;return Wm(o)?[]:Ae(o.querySelectorAll(e),ue.fromDom)},kh=(e,n)=>{const o=n===void 0?document:n.dom;return Wm(o)?I.none():I.from(o.querySelector(e)).map(ue.fromDom)},Ps=(e,n)=>e.dom===n.dom,Ai=(e,n)=>{const o=e.dom,r=n.dom;return o===r?!1:o.contains(r)},xc=e=>ue.fromDom(e.dom.ownerDocument),ti=e=>Ei(e)?e:xc(e),np=e=>ue.fromDom(ti(e).dom.documentElement),xl=e=>ue.fromDom(ti(e).dom.defaultView),di=e=>I.from(e.dom.parentNode).map(ue.fromDom),sf=e=>I.from(e.dom.parentElement).map(ue.fromDom),Zm=(e,n)=>{const o=ce(n)?n:Te;let r=e.dom;const c=[];for(;r.parentNode!==null&&r.parentNode!==void 0;){const u=r.parentNode,m=ue.fromDom(u);if(c.push(m),o(m)===!0)break;r=u}return c},op=e=>{const n=o=>Be(o,r=>!Ps(e,r));return di(e).map(ja).map(n).getOr([])},qc=e=>I.from(e.dom.previousSibling).map(ue.fromDom),dd=e=>I.from(e.dom.nextSibling).map(ue.fromDom),sp=e=>Ln(ud(e,qc)),ni=e=>ud(e,dd),ja=e=>Ae(e.dom.childNodes,ue.fromDom),fd=(e,n)=>{const o=e.dom.childNodes;return I.from(o[n]).map(ue.fromDom)},md=e=>fd(e,0),Oi=e=>fd(e,e.dom.childNodes.length-1),Fc=e=>e.dom.childNodes.length,Xf=e=>{const n=e.dom.head;if(n==null)throw new Error("Head is not available yet");return ue.fromDom(n)},Jf=e=>rd(e)&&Ke(e.dom.host),Qf=ce(Element.prototype.attachShadow)&&ce(Node.prototype.getRootNode),em=nt(Qf),Gi=Qf?e=>ue.fromDom(e.dom.getRootNode()):ti,rf=e=>Jf(e)?e:Xf(ti(e)),rp=e=>Jf(e)?e:ue.fromDom(ti(e).dom.body),kv=e=>{const n=Gi(e);return Jf(n)?I.some(n):I.none()},ap=e=>ue.fromDom(e.dom.host),af=e=>{if(em()&&Ke(e.target)){const n=ue.fromDom(e.target);if(er(n)&&qm(n)&&e.composed&&e.composedPath){const o=e.composedPath();if(o)return Yn(o)}}return I.from(e.target)},qm=e=>Ke(e.dom.shadowRoot),Tl=e=>{const n=Sc(e)?e.dom.parentNode:e.dom;if(n==null||n.ownerDocument===null)return!1;const o=n.ownerDocument;return kv(ue.fromDom(n)).fold(()=>o.body.contains(n),Mn(Tl,ap))};var Gm=(e,n,o,r,c)=>e(o,r)?I.some(o):ce(c)&&c(o)?I.none():n(o,r,c);const vr=(e,n,o)=>{let r=e.dom;const c=ce(o)?o:Te;for(;r.parentNode;){r=r.parentNode;const u=ue.fromDom(r);if(n(u))return I.some(u);if(c(u))break}return I.none()},T=(e,n,o)=>Gm((c,u)=>u(c),vr,e,n,o),R=(e,n)=>{const o=e.dom;return o.parentNode?V(ue.fromDom(o.parentNode),r=>!Ps(e,r)&&n(r)):I.none()},V=(e,n)=>{const o=c=>n(ue.fromDom(c));return It(e.dom.childNodes,o).map(ue.fromDom)},ye=(e,n)=>{const o=r=>{for(let c=0;cvr(e,r=>$c(r,n),o),qt=(e,n)=>kh(n,e),oo=(e,n,o)=>Gm((c,u)=>$c(c,u),ve,e,n,o),xo=e=>oo(e,"[contenteditable]"),Jo=(e,n=!1)=>Tl(e)?e.dom.isContentEditable:xo(e).fold(nt(n),o=>jt(o)==="true"),jt=e=>e.dom.contentEditable,Vs=e=>e.style!==void 0&&ce(e.style.getPropertyValue),Pa=(e,n,o)=>{if(!q(o))throw console.error("Invalid call to CSS.set. Property ",n,":: Value ",o,":: Element ",e),new Error("CSS value must be a string: "+o);Vs(e)&&e.style.setProperty(n,o)},fi=(e,n)=>{Vs(e)&&e.style.removeProperty(n)},cf=(e,n,o)=>{const r=e.dom;Pa(r,n,o)},Km=(e,n)=>{const o=e.dom;Nt(n,(r,c)=>{Pa(o,c,r)})},ll=(e,n)=>{const o=e.dom,c=window.getComputedStyle(o).getPropertyValue(n);return c===""&&!Tl(e)?mi(o,n):c},mi=(e,n)=>Vs(e)?e.style.getPropertyValue(n):"",Ic=(e,n)=>{const o=e.dom,r=mi(o,n);return I.from(r).filter(c=>c.length>0)},zi=e=>{const n={},o=e.dom;if(Vs(o))for(let r=0;r{const o=e.dom;fi(o,n),qr(ei(e,"style").map(Ma),"")&&Hr(e,"style")},iy=e=>e.dom.offsetWidth,Is=(e,n)=>{di(e).each(r=>{r.dom.insertBefore(n.dom,e.dom)})},Du=(e,n)=>{dd(e).fold(()=>{di(e).each(c=>{Kr(c,n)})},r=>{Is(r,n)})},gd=(e,n)=>{md(e).fold(()=>{Kr(e,n)},r=>{e.dom.insertBefore(n.dom,r.dom)})},Kr=(e,n)=>{e.dom.appendChild(n.dom)},ly=(e,n)=>{Is(e,n),Kr(n,e)},wv=(e,n)=>{Y(n,(o,r)=>{const c=r===0?e:n[r-1];Du(c,o)})},Ru=(e,n)=>{Y(n,o=>{Kr(e,o)})},ar=e=>{e.dom.textContent="",Y(ja(e),n=>{fr(n)})},fr=e=>{const n=e.dom;n.parentNode!==null&&n.parentNode.removeChild(n)},Ea=e=>{const n=ja(e);n.length>0&&wv(e,n),fr(e)},pd=(e,n)=>{const r=(n||document).createElement("div");return r.innerHTML=e,ja(ue.fromDom(r))},hd=e=>Ae(e,ue.fromDom),lf=e=>e.dom.innerHTML,bd=(e,n)=>{const r=xc(e).dom,c=ue.fromDom(r.createDocumentFragment()),u=pd(n,r);Ru(c,u),ar(e),Kr(e,c)},ss=e=>{const n=ue.fromTag("div"),o=ue.fromDom(e.dom.cloneNode(!0));return Kr(n,o),lf(n)},cp=(e,n,o,r,c,u,m)=>({target:e,x:n,y:o,stop:r,prevent:c,kill:u,raw:m}),wh=e=>{const n=ue.fromDom(af(e).getOr(e.target)),o=()=>e.stopPropagation(),r=()=>e.preventDefault(),c=E(r,o);return cp(n,e.clientX,e.clientY,o,r,c,e)},_v=(e,n)=>o=>{e(o)&&n(wh(o))},Cv=(e,n,o,r,c)=>{const u=_v(o,r);return e.dom.addEventListener(n,u,c),{unbind:Ye(uy,e,n,u,c)}},Ym=(e,n,o,r)=>Cv(e,n,o,r,!1),uy=(e,n,o,r)=>{e.dom.removeEventListener(n,o,r)},Xm=(e,n)=>({left:e,top:n,translate:(r,c)=>Xm(e+r,n+c)}),ul=Xm,dy=e=>{const n=e.getBoundingClientRect();return ul(n.left,n.top)},ip=(e,n)=>e!==void 0?e:n!==void 0?n:0,fy=e=>{const n=e.dom.ownerDocument,o=n.body,r=n.defaultView,c=n.documentElement;if(o===e.dom)return ul(o.offsetLeft,o.offsetTop);const u=ip(r==null?void 0:r.pageYOffset,c.scrollTop),m=ip(r==null?void 0:r.pageXOffset,c.scrollLeft),b=ip(c.clientTop,o.clientTop),v=ip(c.clientLeft,o.clientLeft);return El(e).translate(m-v,u-b)},El=e=>{const n=e.dom,r=n.ownerDocument.body;return r===n?ul(r.offsetLeft,r.offsetTop):Tl(e)?dy(n):ul(0,0)},_h=e=>{const n=e!==void 0?e.dom:document,o=n.body.scrollLeft||n.documentElement.scrollLeft,r=n.body.scrollTop||n.documentElement.scrollTop;return ul(o,r)},Al=(e,n,o)=>{const c=(o!==void 0?o.dom:document).defaultView;c&&c.scrollTo(e,n)},uf=(e,n)=>{os().browser.isSafari()&&ce(e.dom.scrollIntoViewIfNeeded)?e.dom.scrollIntoViewIfNeeded(!1):e.dom.scrollIntoView(n)},Sv=e=>{const n=e===void 0?window:e;return os().browser.isFirefox()?I.none():I.from(n.visualViewport)},lp=(e,n,o,r)=>({x:e,y:n,width:o,height:r,right:e+o,bottom:n+r}),up=e=>{const n=e===void 0?window:e,o=n.document,r=_h(ue.fromDom(o));return Sv(n).fold(()=>{const c=n.document.documentElement,u=c.clientWidth,m=c.clientHeight;return lp(r.left,r.top,u,m)},c=>lp(Math.max(c.pageLeft,r.left),Math.max(c.pageTop,r.top),c.width,c.height))},my=(e,n)=>Be(ja(e),n),dp=(e,n)=>{let o=[];return Y(ja(e),r=>{n(r)&&(o=o.concat([r])),o=o.concat(dp(r,n))}),o},Tc=(e,n)=>vh(n,e),fp=(e,n,o)=>ve(e,n,o).isSome();class $a{constructor(n,o){this.node=n,this.rootNode=o,this.current=this.current.bind(this),this.next=this.next.bind(this),this.prev=this.prev.bind(this),this.prev2=this.prev2.bind(this)}current(){return this.node}next(n){return this.node=this.findSibling(this.node,"firstChild","nextSibling",n),this.node}prev(n){return this.node=this.findSibling(this.node,"lastChild","previousSibling",n),this.node}prev2(n){return this.node=this.findPreviousNode(this.node,n),this.node}findSibling(n,o,r,c){if(n){if(!c&&n[o])return n[o];if(n!==this.rootNode){let u=n[r];if(u)return u;for(let m=n.parentNode;m&&m!==this.rootNode;m=m.parentNode)if(u=m[r],u)return u}}}findPreviousNode(n,o){if(n){const r=n.previousSibling;if(this.rootNode&&r===this.rootNode)return;if(r){if(!o){for(let u=r.lastChild;u;u=u.lastChild)if(!u.lastChild)return u}return r}const c=n.parentNode;if(c&&c!==this.rootNode)return c}}}const Ec=e=>n=>!!n&&n.nodeType===e,qn=e=>!!e&&!Object.getPrototypeOf(e),dn=Ec(1),Jm=e=>{const n=e.toLowerCase();return o=>Ke(o)&&o.nodeName.toLowerCase()===n},oi=e=>{const n=e.map(o=>o.toLowerCase());return o=>{if(o&&o.nodeName){const r=o.nodeName.toLowerCase();return ne(n,r)}return!1}},Qm=(e,n)=>{const o=n.toLowerCase().split(" ");return r=>{if(dn(r)){const c=r.ownerDocument.defaultView;if(c)for(let u=0;un=>dn(n)&&n.hasAttribute(e),Di=(e,n)=>o=>dn(o)&&o.getAttribute(e)===n,gi=e=>dn(e)&&e.hasAttribute("data-mce-bogus"),gp=e=>dn(e)&&e.getAttribute("data-mce-bogus")==="all",Yr=e=>dn(e)&&e.tagName==="TABLE",tm=e=>n=>!!(dn(n)&&(n.contentEditable===e||n.getAttribute("data-mce-contenteditable")===e)),eg=oi(["textarea","input"]),Bt=Ec(3),xv=Ec(4),gy=Ec(7),Ri=Ec(8),nm=Ec(9),yd=Ec(11),Vr=Jm("br"),py=Jm("img"),Ys=tm("true"),Ls=tm("false"),Ac=oi(["td","th"]),om=oi(["td","th","caption"]),ma=oi(["video","audio","object","embed"]),vd=Jm("li"),ga="\uFEFF",tr=" ",tg=e=>e===ga,vt=e=>e.replace(/\uFEFF/g,""),pp=((e,n)=>{const o=u=>{if(!e(u))throw new Error("Can only get "+n+" value of a "+n+" node");return r(u).getOr("")},r=u=>e(u)?I.from(u.dom.nodeValue):I.none();return{get:o,getOption:r,set:(u,m)=>{if(!e(u))throw new Error("Can only set raw "+n+" value of a "+n+" node");u.dom.nodeValue=m}}})(Sc,"text"),ta=e=>pp.get(e),Ol=e=>pp.getOption(e),Ch=(e,n)=>pp.set(e,n),dl=["article","aside","details","div","dt","figcaption","footer","form","fieldset","header","hgroup","html","main","nav","section","summary","body","p","dl","multicol","dd","figure","address","center","blockquote","h1","h2","h3","h4","h5","h6","listing","xmp","pre","plaintext","menu","dir","ul","ol","li","hr","table","tbody","thead","tfoot","th","tr","td","caption"],Tv=["td","th"],Mu=["thead","tbody","tfoot"],hy=["h1","h2","h3","h4","h5","h6","p","div","address","pre","form","blockquote","center","dir","fieldset","header","footer","article","section","hgroup","aside","nav","figure"],pi=["h1","h2","h3","h4","h5","h6"],$s=["li","dd","dt"],su=["ul","ol","dl"],ng=["pre","script","textarea","style"],Lc=["pre"].concat(pi),zl=e=>{let n;return o=>(n=n||no(e,lt),Un(n,Ws(o)))},Oc=zl(dl),by=e=>Ws(e)==="table",Hc=e=>er(e)&&!Oc(e),Nu=e=>er(e)&&Ws(e)==="br",Fe=zl(hy),si=zl(su),ru=zl($s),hi=zl(Mu),Mi=zl(Tv),tc=zl(ng),Fa=zl(Lc),Ev=e=>Fa(e)||Hc(e),hp=e=>{const n=[];let o=e.dom;for(;o;)n.push(ue.fromDom(o)),o=o.lastChild;return n},w=e=>{const n=Tc(e,"br"),o=Be(hp(e).slice(-1),Nu);n.length===o.length&&Y(o,fr)},_=()=>{const e=ue.fromTag("br");return ea(e,"data-mce-bogus","1"),e},F=e=>{ar(e),Kr(e,_())},Z=e=>{Oi(e).each(n=>{qc(n).each(o=>{Oc(e)&&Nu(n)&&Oc(o)&&fr(n)})})},fe=ga,it=tg,Mt=vt,kn=dn,Oo=Bt,No=e=>(Oo(e)&&(e=e.parentNode),kn(e)&&e.hasAttribute("data-mce-caret")),Xs=e=>Oo(e)&&it(e.data),ys=e=>No(e)||Xs(e),Er=e=>e.firstChild!==e.lastChild||!Vr(e.firstChild),Ni=(e,n)=>{var o;const c=((o=e.ownerDocument)!==null&&o!==void 0?o:document).createTextNode(fe),u=e.parentNode;if(n){const m=e.previousSibling;if(Oo(m)){if(ys(m))return m;if(kd(m))return m.splitText(m.data.length-1)}u==null||u.insertBefore(c,e)}else{const m=e.nextSibling;if(Oo(m)){if(ys(m))return m;if(df(m))return m.splitText(1),m}e.nextSibling?u==null||u.insertBefore(c,e.nextSibling):u==null||u.appendChild(c)}return c},dc=e=>{const n=e.container();return Bt(n)?n.data.charAt(e.offset())===fe||e.isAtStart()&&Xs(n.previousSibling):!1},Dl=e=>{const n=e.container();return Bt(n)?n.data.charAt(e.offset()-1)===fe||e.isAtEnd()&&Xs(n.nextSibling):!1},au=(e,n,o)=>{var r;const u=((r=n.ownerDocument)!==null&&r!==void 0?r:document).createElement(e);u.setAttribute("data-mce-caret",o?"before":"after"),u.setAttribute("data-mce-bogus","all"),u.appendChild(_().dom);const m=n.parentNode;return o?m==null||m.insertBefore(u,n):n.nextSibling?m==null||m.insertBefore(u,n.nextSibling):m==null||m.appendChild(u),u},df=e=>Oo(e)&&e.data[0]===fe,kd=e=>Oo(e)&&e.data[e.data.length-1]===fe,Rl=e=>{var n;const o=e.getElementsByTagName("br"),r=o[o.length-1];gi(r)&&((n=r.parentNode)===null||n===void 0||n.removeChild(r))},wd=e=>e&&e.hasAttribute("data-mce-caret")?(Rl(e),e.removeAttribute("data-mce-caret"),e.removeAttribute("data-mce-bogus"),e.removeAttribute("style"),e.removeAttribute("data-mce-style"),e.removeAttribute("_moz_abspos"),e):null,bp=e=>No(e.startContainer),og=Ys,sm=Ls,Wa=Vr,cu=Bt,vs=oi(["script","style","textarea"]),cr=oi(["img","input","textarea","hr","iframe","video","audio","object","embed"]),Gc=oi(["table"]),pa=ys,bi=e=>pa(e)?!1:cu(e)?!vs(e.parentNode):cr(e)||Wa(e)||Gc(e)||Bu(e),sg=e=>dn(e)&&e.getAttribute("unselectable")==="true",Bu=e=>!sg(e)&&sm(e),fl=(e,n)=>{for(let o=e.parentNode;o&&o!==n;o=o.parentNode){if(Bu(o))return!1;if(og(o))return!0}return!0},rm=e=>Bu(e)?!he(Cs(e.getElementsByTagName("*")),(n,o)=>n||og(o),!1):!1,Av=e=>cr(e)||rm(e),Bi=(e,n)=>bi(e)&&fl(e,n),y_=/^[ \t\r\n]*$/,Pi=e=>y_.test(e),Pu=e=>" \f \v".indexOf(e)!==-1,ml=e=>e===` +`||e==="\r",yy=(e,n)=>n=0?ml(e[n]):!1,rg=(e,n=4,o=!0,r=!0)=>{const c=Os(" ",n),u=e.replace(/\t/g,c);return he(u,(b,v)=>Pu(v)||v===tr?b.pcIsSpace||b.str===""&&o||b.str.length===u.length-1&&r||yy(u,b.str.length+1)?{pcIsSpace:!1,str:b.str+tr}:{pcIsSpace:!0,str:b.str+" "}:{pcIsSpace:ml(v),str:b.str+v},{pcIsSpace:!1,str:""}).str},v_=(e,n)=>{const o=ue.fromDom(n),r=ue.fromDom(e);return fp(r,"pre,code",Ye(Ps,o))},Yx=(e,n)=>Bt(e)&&Pi(e.data)&&!v_(e,n),Aa=e=>dn(e)&&e.nodeName==="A"&&!e.hasAttribute("href")&&(e.hasAttribute("name")||e.hasAttribute("id")),vy=(e,n)=>bi(e)&&!Yx(e,n)||Aa(e)||_d(e),_d=mp("data-mce-bookmark"),Ov=mp("data-mce-bogus"),zv=Di("data-mce-bogus","all"),ag=(e,n)=>{let o=0;if(vy(e,e))return!1;{let r=e.firstChild;if(!r)return!0;const c=new $a(r,e);do{if(n){if(zv(r)){r=c.next(!0);continue}if(Ov(r)){r=c.next();continue}}if(Vr(r)){o++,r=c.next();continue}if(vy(r,e))return!1;r=c.next()}while(r);return o<=1}},ir=(e,n=!0)=>ag(e.dom,n),Cd="data-mce-block",Sh=e=>Be(Es(e),n=>!/[A-Z]/.test(n)),Dv=e=>Sh(e).join(","),yp=(e,n)=>Ke(n.querySelector(e))?(n.setAttribute(Cd,"true"),n.getAttribute("data-mce-selected")==="inline-boundary"&&n.removeAttribute("data-mce-selected"),!0):(n.removeAttribute(Cd),!1),xh=(e,n)=>{const o=Dv(e.getTransparentElements()),r=Dv(e.getBlockElements());return Be(n.querySelectorAll(o),c=>yp(r,c))},Th=(e,n)=>{var o;const r=n?"lastChild":"firstChild";for(let c=e[r];c;c=c[r])if(ir(ue.fromDom(c))){(o=c.parentNode)===null||o===void 0||o.removeChild(c);return}},Xx=(e,n)=>{const o=document.createRange(),r=e.parentNode;if(r){o.setStartBefore(e),o.setEndBefore(n);const c=o.extractContents();Th(c,!0),o.setStartAfter(n),o.setEndAfter(e);const u=o.extractContents();Th(u,!1),ir(ue.fromDom(c))||r.insertBefore(c,e),ir(ue.fromDom(n))||r.insertBefore(n,e),ir(ue.fromDom(u))||r.insertBefore(u,e),r.removeChild(e)}},Rv=(e,n,o)=>{const r=e.getBlockElements(),c=ue.fromDom(n),u=b=>Ws(b)in r,m=b=>Ps(b,c);Y(hd(o),b=>{vr(b,u,m).each(v=>{const x=my(b,M=>u(M)&&!e.isValidChild(Ws(v),Ws(M)));if(x.length>0){const M=sf(v);Y(x,D=>{vr(D,u,m).each(L=>{Xx(L.dom,D.dom)})}),M.each(D=>xh(e,D.dom))}})})},Mv=(e,n,o)=>{Y([...o,...gf(e,n)?[n]:[]],r=>Y(Tc(ue.fromDom(r),r.nodeName.toLowerCase()),c=>{k_(e,c.dom)&&Ea(c)}))},ff=(e,n)=>{const o=xh(e,n);Rv(e,n,o),Mv(e,n,o)},Sd=(e,n)=>{if(ky(e,n)){const o=Dv(e.getBlockElements());yp(o,n)}},mf=(e,n,o)=>{const r=u=>Ps(u,ue.fromDom(n)),c=Zm(ue.fromDom(o),r);Jn(c,c.length-2).filter(er).fold(()=>ff(e,n),u=>ff(e,u.dom))},am=e=>e.hasAttribute(Cd),Eh=(e,n)=>Un(e.getTransparentElements(),n),ky=(e,n)=>dn(n)&&Eh(e,n.nodeName),gf=(e,n)=>ky(e,n)&&am(n),k_=(e,n)=>ky(e,n)&&!am(n),w_=(e,n)=>n.type===1&&Eh(e,n.name)&&q(n.attr(Cd)),Nv=(e,n)=>n.type===1&&Eh(e,n.name)&&In(n.attr(Cd)),__=os().browser,Ah=e=>It(e,er),Ds=e=>__.isFirefox()&&Ws(e)==="table"?Ah(ja(e)).filter(n=>Ws(n)==="caption").bind(n=>Ah(ni(n)).map(o=>{const r=o.dom.offsetTop,c=n.dom.offsetTop,u=n.dom.offsetHeight;return r<=c?-u:0})).getOr(0):0,Zn=(e,n)=>e.children&&ne(e.children,n),pf=(e,n,o)=>{let r=0,c=0;const u=e.ownerDocument;if(o=o||e,n){if(o===e&&n.getBoundingClientRect&&ll(ue.fromDom(e),"position")==="static"){const b=n.getBoundingClientRect();return r=b.left+(u.documentElement.scrollLeft||e.scrollLeft)-u.documentElement.clientLeft,c=b.top+(u.documentElement.scrollTop||e.scrollTop)-u.documentElement.clientTop,{x:r,y:c}}let m=n;for(;m&&m!==o&&m.nodeType&&!Zn(m,o);){const b=m;r+=b.offsetLeft||0,c+=b.offsetTop||0,m=b.offsetParent}for(m=n.parentNode;m&&m!==o&&m.nodeType&&!Zn(m,o);)r-=m.scrollLeft||0,c-=m.scrollTop||0,m=m.parentNode;c+=Ds(ue.fromDom(n))}return{x:r,y:c}},cg=(e,n={})=>{let o=0;const r={},c=ue.fromDom(e),u=ti(c),m=G=>{n.referrerPolicy=G},b=G=>{n.contentCssCors=G},v=G=>{Kr(rf(c),G)},x=G=>{const te=rf(c);qt(te,"#"+G).each(fr)},M=G=>ns(r,G).getOrThunk(()=>({id:"mce-u"+o++,passed:[],failed:[],count:0})),D=G=>new Promise((te,xe)=>{let we;const De=wt._addCacheSuffix(G),He=M(De);r[De]=He,He.count++;const ht=(Qe,pn)=>{Y(Qe,fn),He.status=pn,He.passed=[],He.failed=[],we&&(we.onload=null,we.onerror=null,we=null)},Jt=()=>ht(He.passed,2),Wt=()=>ht(He.failed,3);if(te&&He.passed.push(te),xe&&He.failed.push(xe),He.status===1)return;if(He.status===2){Jt();return}if(He.status===3){Wt();return}He.status=1;const et=ue.fromTag("link",u.dom);uc(et,{rel:"stylesheet",type:"text/css",id:He.id}),n.contentCssCors&&ea(et,"crossOrigin","anonymous"),n.referrerPolicy&&ea(et,"referrerpolicy",n.referrerPolicy),we=et.dom,we.onload=Jt,we.onerror=Wt,v(et),ea(et,"href",De)}),L=G=>Promise.allSettled(Ae(G,xe=>D(xe).then(nt(xe)))).then(xe=>{const we=_e(xe,De=>De.status==="fulfilled");return we.fail.length>0?Promise.reject(Ae(we.fail,De=>De.reason)):Ae(we.pass,De=>De.value)}),ee=G=>{const te=wt._addCacheSuffix(G);ns(r,te).each(xe=>{--xe.count===0&&(delete r[te],x(xe.id))})};return{load:D,loadAll:L,unload:ee,unloadAll:G=>{Y(G,te=>{ee(te)})},_setReferrerPolicy:m,_setContentCssCors:b}},C_=(()=>{const e=new WeakMap;return{forElement:(o,r)=>{const u=Gi(o).dom;return I.from(e.get(u)).getOrThunk(()=>{const m=cg(u,r);return e.set(u,m),m})}}})(),Bv=e=>e.nodeName.toLowerCase()==="span",kr=(e,n)=>Ke(e)&&(vy(e,n)||Hc(ue.fromDom(e))),S_=(e,n)=>{const o=new $a(e,n).prev(!1),r=new $a(e,n).next(!1),c=In(o)||kr(o,n),u=In(r)||kr(r,n);return c&&u},Pv=e=>Bv(e)&&e.getAttribute("data-mce-type")==="bookmark",x_=(e,n)=>Bt(e)&&e.data.length>0&&S_(e,n),St=e=>dn(e)?e.childNodes.length>0:!1,$v=e=>yd(e)||nm(e),Fv=(e,n,o)=>{var r;const c=o||n;if(dn(n)&&Pv(n))return n;const u=n.childNodes;for(let m=u.length-1;m>=0;m--)Fv(e,u[m],c);if(dn(n)){const m=n.childNodes;m.length===1&&Pv(m[0])&&((r=n.parentNode)===null||r===void 0||r.insertBefore(m[0],n))}return!$v(n)&&!vy(n,c)&&!St(n)&&!x_(n,c)&&e.remove(n),n},ig=wt.makeMap,_y=/[&<>\"\u0060\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,hf=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Oh=/[<>&\"\']/g,lg=/&#([a-z0-9]+);?|&([a-z0-9]+);/gi,Iv={128:"€",130:"‚",131:"ƒ",132:"„",133:"…",134:"†",135:"‡",136:"ˆ",137:"‰",138:"Š",139:"‹",140:"Œ",142:"Ž",145:"‘",146:"’",147:"“",148:"”",149:"•",150:"–",151:"—",152:"˜",153:"™",154:"š",155:"›",156:"œ",158:"ž",159:"Ÿ"},iu={'"':""","'":"'","<":"<",">":">","&":"&","`":"`"},Xr={"<":"<",">":">","&":"&",""":'"',"'":"'"},$i=e=>{const n=ue.fromTag("div").dom;return n.innerHTML=e,n.textContent||n.innerText||e},zh=(e,n)=>{const o={};if(e){const r=e.split(",");n=n||10;for(let c=0;ce.replace(n?_y:hf,o=>iu[o]||o),Lv=e=>(""+e).replace(Oh,n=>iu[n]||n),cm=(e,n)=>e.replace(n?_y:hf,o=>o.length>1?"&#"+((o.charCodeAt(0)-55296)*1024+(o.charCodeAt(1)-56320)+65536)+";":iu[o]||"&#"+o.charCodeAt(0)+";"),Hv=(e,n,o)=>{const r=o||$u;return e.replace(n?_y:hf,c=>iu[c]||r[c]||c)},im={encodeRaw:T_,encodeAllRaw:Lv,encodeNumeric:cm,encodeNamed:Hv,getEncodeFunc:(e,n)=>{const o=zh(n)||$u,r=(m,b)=>m.replace(b?_y:hf,v=>iu[v]!==void 0?iu[v]:o[v]!==void 0?o[v]:v.length>1?"&#"+((v.charCodeAt(0)-55296)*1024+(v.charCodeAt(1)-56320)+65536)+";":"&#"+v.charCodeAt(0)+";"),c=(m,b)=>Hv(m,b,o),u=ig(e.replace(/\+/g,","));return u.named&&u.numeric?r:u.named?n?c:Hv:u.numeric?cm:T_},decode:e=>e.replace(lg,(n,o)=>o?(o.charAt(0).toLowerCase()==="x"?o=parseInt(o.substr(1),16):o=parseInt(o,10),o>65535?(o-=65536,String.fromCharCode(55296+(o>>10),56320+(o&1023))):Iv[o]||String.fromCharCode(o)):Xr[n]||$u[n]||$i(n))},Fu={},Cy={},Jx={},vp=wt.makeMap,nc=wt.each,xn=wt.extend,Vv=wt.explode,A_=wt.inArray,Kc=(e,n)=>(e=wt.trim(e),e?e.split(n||" "):[]),Uv=(e,n={})=>{const o=vp(e," ",vp(e.toUpperCase()," "));return xn(o,n)},O_=e=>Uv("td th li dt dd figcaption caption details summary",e.getTextBlockElements()),jv=e=>{const n={};let o,r,c,u;const m=(v,x="",M="")=>{const D=Kc(M),L=Kc(v);let ee=L.length;for(;ee--;){const oe=Kc([o,x].join(" "));n[L[ee]]={attributes:no(oe,()=>({})),attributesOrder:oe,children:no(D,nt(Jx))}}},b=(v,x)=>{const M=Kc(v),D=Kc(x);let L=M.length;for(;L--;){const ee=n[M[L]];for(let oe=0,G=D.length;oe{m(M,"",c)});const x="center dir isindex noframes";r=[r,x].join(" "),u=[r,c].join(" "),nc(Kc(x),M=>{m(M,"",u)})}return u=u||[r,c].join(" "),m("html","manifest","head body"),m("head","","base command link meta noscript script style title"),m("title hr noscript br"),m("base","href target"),m("link","href rel media hreflang type sizes hreflang"),m("meta","name http-equiv content charset"),m("style","media type scoped"),m("script","src async defer type charset"),m("body","onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload onmessage onoffline ononline onpagehide onpageshow onpopstate onresize onscroll onstorage onunload",u),m("address dt dd div caption","",u),m("h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn","",c),m("blockquote","cite",u),m("ol","reversed start type","li"),m("ul","","li"),m("li","value",u),m("dl","","dt dd"),m("a","href target rel media hreflang type",u),m("q","cite",c),m("ins del","cite datetime",u),m("img","src sizes srcset alt usemap ismap width height"),m("iframe","src name width height",u),m("embed","src type width height"),m("object","data type typemustmatch name usemap form width height",[u,"param"].join(" ")),m("param","name value"),m("map","name",[u,"area"].join(" ")),m("area","alt coords shape href target rel media hreflang type"),m("table","border","caption colgroup thead tfoot tbody tr"+(e==="html4"?" col":"")),m("colgroup","span","col"),m("col","span"),m("tbody thead tfoot","","tr"),m("tr","","td th"),m("td","colspan rowspan headers",u),m("th","colspan rowspan headers scope abbr",u),m("form","accept-charset action autocomplete enctype method name novalidate target",u),m("fieldset","disabled form name",[u,"legend"].join(" ")),m("label","form for",c),m("input","accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate formtarget height list max maxlength min multiple name pattern readonly required size src step type value width"),m("button","disabled form formaction formenctype formmethod formnovalidate formtarget name type value",e==="html4"?u:c),m("select","disabled form multiple name required size","option optgroup"),m("optgroup","disabled label","option"),m("option","disabled label selected value"),m("textarea","cols dirname disabled form maxlength name readonly required rows wrap"),m("menu","type label",[u,"li"].join(" ")),m("noscript","",u),e!=="html4"&&(m("wbr"),m("ruby","",[c,"rt rp"].join(" ")),m("figcaption","",u),m("mark rt rp summary bdi","",c),m("canvas","width height",u),m("video","src crossorigin poster preload autoplay mediagroup loop muted controls width height buffered",[u,"track source"].join(" ")),m("audio","src crossorigin preload autoplay mediagroup loop muted controls buffered volume",[u,"track source"].join(" ")),m("picture","","img source"),m("source","src srcset type media sizes"),m("track","kind src srclang label default"),m("datalist","",[c,"option"].join(" ")),m("article section nav aside main header footer","",u),m("hgroup","","h1 h2 h3 h4 h5 h6"),m("figure","",[u,"figcaption"].join(" ")),m("time","datetime",c),m("dialog","open",u),m("command","type label icon disabled checked radiogroup command"),m("output","for form name",c),m("progress","value max",c),m("meter","value min max low high optimum",c),m("details","open",[u,"summary"].join(" ")),m("keygen","autofocus challenge disabled form keytype name")),e!=="html5-strict"&&(b("script","language xml:space"),b("style","xml:space"),b("object","declare classid code codebase codetype archive standby align border hspace vspace"),b("embed","align name hspace vspace"),b("param","valuetype type"),b("a","charset name rev shape coords"),b("br","clear"),b("applet","codebase archive code object alt name width height align hspace vspace"),b("img","name longdesc align border hspace vspace"),b("iframe","longdesc frameborder marginwidth marginheight scrolling align"),b("font basefont","size color face"),b("input","usemap align"),b("select"),b("textarea"),b("h1 h2 h3 h4 h5 h6 div p legend caption","align"),b("ul","type compact"),b("li","type"),b("ol dl menu dir","compact"),b("pre","width xml:space"),b("hr","align noshade size width"),b("isindex","prompt"),b("table","summary width frame rules cellspacing cellpadding align bgcolor"),b("col","width align char charoff valign"),b("colgroup","width align char charoff valign"),b("thead","align char charoff valign"),b("tr","align char charoff valign bgcolor"),b("th","axis align char charoff valign nowrap bgcolor width height"),b("form","accept"),b("td","abbr axis scope align char charoff valign nowrap bgcolor width height"),b("tfoot","align char charoff valign"),b("tbody","align char charoff valign"),b("area","nohref"),b("body","background bgcolor text link vlink alink")),e!=="html4"&&(b("input button select textarea","autofocus"),b("input textarea","placeholder"),b("a","download"),b("link script img","crossorigin"),b("img","loading"),b("iframe","sandbox seamless allow allowfullscreen loading")),e!=="html4"&&Y([n.video,n.audio],v=>{delete v.children.audio,delete v.children.video}),nc(Kc("a form meter progress dfn"),v=>{n[v]&&delete n[v].children[v]}),delete n.caption.children.table,delete n.script,Fu[e]=n,n},xd=(e,n)=>{if(e){const o={};return q(e)&&(e={"*":e}),nc(e,(r,c)=>{o[c]=o[c.toUpperCase()]=n==="map"?vp(r,/[, ]/):Vv(r,/[, ]/)}),o}else return},gl=(e={})=>{var n;const o={},r={};let c=[];const u={},m={},b=($o,Ms,or)=>{const br=e[$o];if(br)return vp(br,/[, ]/,vp(br.toUpperCase(),/[, ]/));{let ua=Cy[$o];return ua||(ua=Uv(Ms,or),Cy[$o]=ua),ua}},v=(n=e.schema)!==null&&n!==void 0?n:"html5",x=jv(v);e.verify_html===!1&&(e.valid_elements="*[*]");const M=xd(e.valid_styles),D=xd(e.invalid_styles,"map"),L=xd(e.valid_classes,"map"),ee=b("whitespace_elements","pre script noscript style textarea video audio iframe object code"),oe=b("self_closing_elements","colgroup dd dt li option p td tfoot th thead tr"),G=b("void_elements","area base basefont br col frame hr img input isindex link meta param embed source wbr track"),te=b("boolean_attributes","checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls allowfullscreen"),xe="td th iframe video audio object script code",we=b("non_empty_elements",xe+" pre",G),De=b("move_caret_before_on_enter_elements",xe+" table",G),He=b("text_block_elements","h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside main nav figure"),ht=b("block_elements","hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex option datalist select optgroup figcaption details summary",He),Jt=b("text_inline_elements","span strong b em i font s strike u var cite dfn code mark q sup sub samp"),Wt=b("transparent_elements","a ins del canvas map");nc("script noscript iframe noframes noembed title style textarea xmp plaintext".split(" "),$o=>{m[$o]=new RegExp("]*>","gi")});const et=$o=>new RegExp("^"+$o.replace(/([?+*])/g,".$1")+"$"),Qe=$o=>{const Ms=/^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)])?$/,or=/^([!\-])?(\w+[\\:]:\w+|[^=~<]+)?(?:([=~<])(.*))?$/,br=/[*?+]/;if($o){const ua=Kc($o,",");let Da,jr;o["@"]&&(Da=o["@"].attributes,jr=o["@"].attributesOrder);for(let Xa=0,Ju=ua.length;Xa{Wf[Zf]=Qu}),jr&&Jd.push(...jr)),oy){const Qu=Kc(oy,"|");for(let Zf=0,Vi=Qu.length;Zf{c=[],Y(Es(o),Ms=>{delete o[Ms]}),Qe($o),nc(x,(Ms,or)=>{r[or]=Ms.children})},jn=$o=>{const Ms=/^(~)?(.+)$/;$o&&(delete Cy.text_block_elements,delete Cy.block_elements,nc(Kc($o,","),or=>{const br=Ms.exec(or);if(br){const ua=br[1]==="~",Da=ua?"span":"div",jr=br[2];if(r[jr]=r[Da],u[jr]=Da,we[jr.toUpperCase()]={},we[jr]={},ua||(ht[jr.toUpperCase()]={},ht[jr]={}),!o[jr]){let Xa=o[Da];Xa=xn({},Xa),delete Xa.removeEmptyAttrs,delete Xa.removeEmpty,o[jr]=Xa}nc(r,(Xa,Ju)=>{Xa[Da]&&(r[Ju]=Xa=xn({},r[Ju]),Xa[jr]=Xa[Da])})}}))},co=$o=>{const Ms=/^([+\-]?)([A-Za-z0-9_\-.\u00b7\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u037d\u037f-\u1fff\u200c-\u200d\u203f-\u2040\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]+)\[([^\]]+)]$/;delete Fu[v],$o&&nc(Kc($o,","),or=>{const br=Ms.exec(or);if(br){const ua=br[1];let Da;ua?Da=r[br[2]]:Da=r[br[2]]={"#comment":{}},Da=r[br[2]],nc(Kc(br[3],"|"),jr=>{ua==="-"?delete Da[jr]:Da[jr]={}})}})},Wo=$o=>{const Ms=o[$o];if(Ms)return Ms;let or=c.length;for(;or--;){const br=c[or];if(br.pattern.test($o))return br}};e.valid_elements?pn(e.valid_elements):(nc(x,($o,Ms)=>{o[Ms]={attributes:$o.attributes,attributesOrder:$o.attributesOrder},r[Ms]=$o.children}),nc(Kc("strong/b em/i"),$o=>{const Ms=Kc($o,"/");o[Ms[1]].outputName=Ms[0]}),nc(Jt,($o,Ms)=>{o[Ms]&&(e.padd_empty_block_inline_children&&(o[Ms].paddInEmptyBlock=!0),o[Ms].removeEmpty=!0)}),nc(Kc("ol ul blockquote a table tbody"),$o=>{o[$o]&&(o[$o].removeEmpty=!0)}),nc(Kc("p h1 h2 h3 h4 h5 h6 th td pre div address caption li"),$o=>{o[$o].paddEmpty=!0}),nc(Kc("span"),$o=>{o[$o].removeEmptyAttrs=!0})),jn(e.custom_elements),co(e.valid_children),Qe(e.extended_valid_elements),co("+ol[ul|ol],+ul[ul|ol]"),nc({dd:"dl",dt:"dl",li:"ul ol",td:"tr",th:"tr",tr:"tbody thead tfoot",tbody:"table",thead:"table",tfoot:"table",legend:"fieldset",area:"map",param:"video audio object"},($o,Ms)=>{o[Ms]&&(o[Ms].parentsRequired=Kc($o))}),e.invalid_elements&&nc(Vv(e.invalid_elements),$o=>{o[$o]&&delete o[$o]}),Wo("span")||Qe("span[!data-mce-type|*]");const ms=nt(M),Zs=nt(D),hr=nt(L),wa=nt(te),Uc=nt(ht),kc=nt(He),Vt=nt(Jt),Bn=nt(Object.seal(G)),Ts=nt(oe),sn=nt(we),to=nt(De),so=nt(ee),an=nt(Wt),cs=nt(Object.seal(m)),is=($o,Ms)=>{const or=r[$o.toLowerCase()];return!!(or&&or[Ms.toLowerCase()])},Mc=($o,Ms)=>{const or=Wo($o);if(or)if(Ms){if(or.attributes[Ms])return!0;const br=or.attributePatterns;if(br){let ua=br.length;for(;ua--;)if(br[ua].pattern.test(Ms))return!0}}else return!0;return!1},$r=nt(u);return{type:v,children:r,elements:o,getValidStyles:ms,getValidClasses:hr,getBlockElements:Uc,getInvalidStyles:Zs,getVoidElements:Bn,getTextBlockElements:kc,getTextInlineElements:Vt,getBoolAttrs:wa,getElementRule:Wo,getSelfClosingElements:Ts,getNonEmptyElements:sn,getMoveCaretBeforeOnEnterElements:to,getWhitespaceElements:so,getTransparentElements:an,getSpecialElements:cs,isValidChild:is,isValid:Mc,getCustomElements:$r,addValidElements:Qe,setValidElements:pn,addCustomElements:jn,addValidChildren:co}},Sy=(e={},n)=>{const o=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,r=/\s*([^:]+):\s*([^;]+);?/g,c=/\s+$/,u={};let m,b;const v=ga;n&&(m=n.getValidStyles(),b=n.getInvalidStyles());const x=(`\\" \\' \\; \\: ; : `+v).split(" ");for(let D=0;D{const L={};let ee=!1;const oe=e.url_converter,G=e.url_converter_scope||M,te=(et,Qe,pn)=>{const jn=L[et+"-top"+Qe];if(!jn)return;const co=L[et+"-right"+Qe];if(!co)return;const Wo=L[et+"-bottom"+Qe];if(!Wo)return;const ms=L[et+"-left"+Qe];if(!ms)return;const Zs=[jn,co,Wo,ms];let hr=Zs.length-1;for(;hr--&&Zs[hr]===Zs[hr+1];);hr>-1&&pn||(L[et+Qe]=hr===-1?Zs[0]:Zs.join(" "),delete L[et+"-top"+Qe],delete L[et+"-right"+Qe],delete L[et+"-bottom"+Qe],delete L[et+"-left"+Qe])},xe=et=>{const Qe=L[et];if(!Qe)return;const pn=Qe.split(" ");let jn=pn.length;for(;jn--;)if(pn[jn]!==pn[0])return!1;return L[et]=pn[0],!0},we=(et,Qe,pn,jn)=>{xe(Qe)&&xe(pn)&&xe(jn)&&(L[et]=L[Qe]+" "+L[pn]+" "+L[jn],delete L[Qe],delete L[pn],delete L[jn])},De=et=>(ee=!0,u[et]),He=(et,Qe)=>(ee&&(et=et.replace(/\uFEFF[0-9]/g,pn=>u[pn])),Qe||(et=et.replace(/\\([\'\";:])/g,"$1")),et),ht=et=>String.fromCharCode(parseInt(et.slice(1),16)),Jt=et=>et.replace(/\\[0-9a-f]+/gi,ht),Wt=(et,Qe,pn,jn,co,Wo)=>{if(co=co||Wo,co)return co=He(co),"'"+co.replace(/\'/g,"\\'")+"'";if(Qe=He(Qe||pn||jn||""),!e.allow_script_urls){const ms=Qe.replace(/[\s\r\n]+/g,"");if(/(java|vb)script:/i.test(ms)||!e.allow_svg_data_urls&&/^data:image\/svg/i.test(ms))return""}return oe&&(Qe=oe.call(G,Qe,"style")),"url('"+Qe.replace(/\'/g,"\\'")+"')"};if(D){D=D.replace(/[\u0000-\u001F]/g,""),D=D.replace(/\\[\"\';:\uFEFF]/g,De).replace(/\"[^\"]+\"|\'[^\']+\'/g,Qe=>Qe.replace(/[;:]/g,De));let et;for(;et=r.exec(D);){r.lastIndex=et.index+et[0].length;let Qe=et[1].replace(c,"").toLowerCase(),pn=et[2].replace(c,"");if(Qe&&pn){if(Qe=Jt(Qe),pn=Jt(pn),Qe.indexOf(v)!==-1||Qe.indexOf('"')!==-1||!e.allow_script_urls&&(Qe==="behavior"||/expression\s*\(|\/\*|\*\//.test(pn)))continue;Qe==="font-weight"&&pn==="700"?pn="bold":(Qe==="color"||Qe==="background-color")&&(pn=pn.toLowerCase()),pn=pn.replace(o,Wt),L[Qe]=ee?He(pn,!0):pn}}te("border","",!0),te("border","-width"),te("border","-color"),te("border","-style"),te("padding",""),te("margin",""),we("border","border-width","border-style","border-color"),L.border==="medium none"&&delete L.border,L["border-image"]==="none"&&delete L["border-image"]}return L},serialize:(D,L)=>{let ee="";const oe=(te,xe)=>{const we=xe[te];if(we)for(let De=0,He=we.length;De0?" ":"")+ht+": "+Jt+";")}},G=(te,xe)=>{if(!b||!xe)return!0;let we=b["*"];return we&&we[te]?!1:(we=b[xe],!(we&&we[te]))};return L&&m?(oe("*",m),oe(L,m)):Nt(D,(te,xe)=>{te&&G(xe,L)&&(ee+=(ee.length>0?" ":"")+xe+": "+te+";")}),ee}};return M},ug={keyLocation:!0,layerX:!0,layerY:!0,returnValue:!0,webkitMovementX:!0,webkitMovementY:!0,keyIdentifier:!0,mozPressure:!0},Qx=e=>e instanceof Event||ce(e.initEvent),z_=e=>e.isDefaultPrevented===lt||e.isDefaultPrevented===Te,Dh=e=>zt(e.preventDefault)||Qx(e),kp=(e,n)=>{const o=n??{};for(const r in e)Un(ug,r)||(o[r]=e[r]);return Ke(e.composedPath)&&(o.composedPath=()=>e.composedPath()),o},wp=(e,n,o,r)=>{var c;const u=kp(n,r);return u.type=e,zt(u.target)&&(u.target=(c=u.srcElement)!==null&&c!==void 0?c:o),Dh(n)&&(u.preventDefault=()=>{u.defaultPrevented=!0,u.isDefaultPrevented=lt,ce(n.preventDefault)&&n.preventDefault()},u.stopPropagation=()=>{u.cancelBubble=!0,u.isPropagationStopped=lt,ce(n.stopPropagation)&&n.stopPropagation()},u.stopImmediatePropagation=()=>{u.isImmediatePropagationStopped=lt,u.stopPropagation()},z_(u)||(u.isDefaultPrevented=u.defaultPrevented===!0?lt:Te,u.isPropagationStopped=u.cancelBubble===!0?lt:Te,u.isImmediatePropagationStopped=Te)),u},dg="mce-data-",D_=/^(?:mouse|contextmenu)|click/,xy=(e,n,o,r)=>{e.addEventListener(n,o,r||!1)},fg=(e,n,o,r)=>{e.removeEventListener(n,o,r||!1)},Ty=e=>Ke(e)&&D_.test(e.type),Yi=(e,n)=>{const o=wp(e.type,e,document,n);if(Ty(e)&&In(e.pageX)&&!In(e.clientX)){const r=o.target.ownerDocument||document,c=r.documentElement,u=r.body,m=o;m.pageX=e.clientX+(c&&c.scrollLeft||u&&u.scrollLeft||0)-(c&&c.clientLeft||u&&u.clientLeft||0),m.pageY=e.clientY+(c&&c.scrollTop||u&&u.scrollTop||0)-(c&&c.clientTop||u&&u.clientTop||0)}return o},Fi=(e,n,o)=>{const r=e.document,c={type:"ready"};if(o.domLoaded){n(c);return}const u=()=>r.readyState==="complete"||r.readyState==="interactive"&&r.body,m=()=>{fg(e,"DOMContentLoaded",m),fg(e,"load",m),o.domLoaded||(o.domLoaded=!0,n(c)),e=null};u()?m():xy(e,"DOMContentLoaded",m),o.domLoaded||xy(e,"load",m)};class yf{constructor(){this.domLoaded=!1,this.events={},this.count=1,this.expando=dg+(+new Date).toString(32),this.hasFocusIn="onfocusin"in document.documentElement,this.count=1}bind(n,o,r,c){const u=this;let m;const b=window,v=L=>{u.executeHandlers(Yi(L||b.event),x)};if(!n||Bt(n)||Ri(n))return r;let x;n[u.expando]?x=n[u.expando]:(x=u.count++,n[u.expando]=x,u.events[x]={}),c=c||n;const M=o.split(" ");let D=M.length;for(;D--;){let L=M[D],ee=v,oe=!1,G=!1;if(L==="DOMContentLoaded"&&(L="ready"),u.domLoaded&&L==="ready"&&n.readyState==="complete"){r.call(c,Yi({type:L}));continue}!u.hasFocusIn&&(L==="focusin"||L==="focusout")&&(oe=!0,G=L==="focusin"?"focus":"blur",ee=te=>{const xe=Yi(te||b.event);xe.type=xe.type==="focus"?"focusin":"focusout",u.executeHandlers(xe,x)}),m=u.events[x][L],m?L==="ready"&&u.domLoaded?r(Yi({type:L})):m.push({func:r,scope:c}):(u.events[x][L]=m=[{func:r,scope:c}],m.fakeName=G,m.capture=oe,m.nativeHandler=ee,L==="ready"?Fi(n,ee,u):xy(n,G||L,ee,oe))}return n=m=null,r}unbind(n,o,r){if(!n||Bt(n)||Ri(n))return this;const c=n[this.expando];if(c){let u=this.events[c];if(o){const m=o.split(" ");let b=m.length;for(;b--;){const v=m[b],x=u[v];if(x){if(r){let M=x.length;for(;M--;)if(x[M].func===r){const D=x.nativeHandler,L=x.fakeName,ee=x.capture,oe=x.slice(0,M).concat(x.slice(M+1));oe.nativeHandler=D,oe.fakeName=L,oe.capture=ee,u[v]=oe}}(!r||x.length===0)&&(delete u[v],fg(n,x.fakeName||v,x.nativeHandler,x.capture))}}}else Nt(u,(m,b)=>{fg(n,m.fakeName||b,m.nativeHandler,m.capture)}),u={};for(const m in u)if(Un(u,m))return this;delete this.events[c];try{delete n[this.expando]}catch{n[this.expando]=null}}return this}fire(n,o,r){return this.dispatch(n,o,r)}dispatch(n,o,r){if(!n||Bt(n)||Ri(n))return this;const c=Yi({type:o,target:n},r);do{const u=n[this.expando];u&&this.executeHandlers(c,u),n=n.parentNode||n.ownerDocument||n.defaultView||n.parentWindow}while(n&&!c.isPropagationStopped());return this}clean(n){if(!n||Bt(n)||Ri(n))return this;if(n[this.expando]&&this.unbind(n),n.getElementsByTagName||(n=n.document),n&&n.getElementsByTagName){this.unbind(n);const o=n.getElementsByTagName("*");let r=o.length;for(;r--;)n=o[r],n[this.expando]&&this.unbind(n)}return this}destroy(){this.events={}}cancel(n){return n&&(n.preventDefault(),n.stopImmediatePropagation()),!1}executeHandlers(n,o){const r=this.events[o],c=r&&r[n.type];if(c)for(let u=0,m=c.length;u{zt(o)||o===""?Hr(e,n):ea(e,n,o)},_p=e=>e.replace(/[A-Z]/g,n=>"-"+n.toLowerCase()),Td=(e,n)=>{let o=0;if(e)for(let r=e.nodeType,c=e.previousSibling;c;c=c.previousSibling){const u=c.nodeType;n&&Bt(c)&&(u===r||!c.data.length)||(o++,r=u)}return o},Wv=(e,n)=>{const o=Pc(n,"style"),r=e.serialize(e.parse(o),Ws(n));Ay(n,Rh,r)},eT=(e,n)=>ze(e)?Un(Iu,n)?e+"":e+"px":e,M_=(e,n,o)=>{const r=_p(n);zt(o)||o===""?ec(e,r):cf(e,r,eT(o,r))},Zv=(e,n,o)=>{const r=n.keep_values,c={set:(m,b,v)=>{const x=ue.fromDom(m);ce(n.url_converter)&&Ke(b)&&(b=n.url_converter.call(n.url_converter_scope||o(),String(b),v,m));const M="data-mce-"+v;Ay(x,M,b),Ay(x,v,b)},get:(m,b)=>{const v=ue.fromDom(m);return Pc(v,"data-mce-"+b)||Pc(v,b)}},u={style:{set:(m,b)=>{const v=ue.fromDom(m);r&&Ay(v,Rh,b),Hr(v,"style"),q(b)&&Km(v,e.parse(b))},get:m=>{const b=ue.fromDom(m),v=Pc(b,Rh)||Pc(b,"style");return e.serialize(e.parse(v),Ws(b))}}};return r&&(u.href=u.src=c),u},Ar=(e,n={})=>{const o={},r=window,c={};let u=0;const m=!0,b=!0,v=C_.forElement(ue.fromDom(e),{contentCssCors:n.contentCssCors,referrerPolicy:n.referrerPolicy}),x=[],M=n.schema?n.schema:gl({}),D=Sy({url_converter:n.url_converter,url_converter_scope:n.url_converter_scope},n.schema),L=n.ownEvents?new yf:yf.Event,ee=M.getBlockElements(),oe=Ve=>q(Ve)?Un(ee,Ve):dn(Ve)&&(Un(ee,Ve.nodeName)||gf(M,Ve)),G=Ve=>Ve&&e&&q(Ve)?e.getElementById(Ve):Ve,te=Ve=>{const je=G(Ve);return Ke(je)?ue.fromDom(je):null},xe=(Ve,je,Zt="")=>{let Pt;const Xn=te(Ve);if(Ke(Xn)&&er(Xn)){const ls=sy[je];ls&&ls.get?Pt=ls.get(Xn.dom,je):Pt=Pc(Xn,je)}return Ke(Pt)?Pt:Zt},we=Ve=>{const je=G(Ve);return zt(je)?[]:je.attributes},De=(Ve,je,Zt)=>{Bn(Ve,Pt=>{if(dn(Pt)){const Xn=ue.fromDom(Pt),ls=Zt===""?null:Zt,_r=Pc(Xn,je),Nr=sy[je];Nr&&Nr.set?Nr.set(Xn.dom,ls,je):Ay(Xn,je,ls),_r!==ls&&n.onSetAttrib&&n.onSetAttrib({attrElm:Xn.dom,attrName:je,attrValue:ls})}})},He=(Ve,je)=>Ve.cloneNode(je),ht=()=>n.root_element||e.body,Jt=Ve=>{const je=up(Ve);return{x:je.x,y:je.y,w:je.width,h:je.height}},Wt=(Ve,je)=>pf(e.body,G(Ve),je),et=(Ve,je,Zt)=>{Bn(Ve,Pt=>{const Xn=ue.fromDom(Pt);M_(Xn,je,Zt),n.update_styles&&Wv(D,Xn)})},Qe=(Ve,je)=>{Bn(Ve,Zt=>{const Pt=ue.fromDom(Zt);Nt(je,(Xn,ls)=>{M_(Pt,ls,Xn)}),n.update_styles&&Wv(D,Pt)})},pn=(Ve,je,Zt)=>{const Pt=G(Ve);if(!(zt(Pt)||!dn(Pt)))return Zt?ll(ue.fromDom(Pt),_p(je)):(je=je.replace(/-(\D)/g,(Xn,ls)=>ls.toUpperCase()),je==="float"&&(je="cssFloat"),Pt.style?Pt.style[je]:void 0)},jn=Ve=>{const je=G(Ve);if(!je)return{w:0,h:0};let Zt=pn(je,"width"),Pt=pn(je,"height");return(!Zt||Zt.indexOf("px")===-1)&&(Zt="0"),(!Pt||Pt.indexOf("px")===-1)&&(Pt="0"),{w:parseInt(Zt,10)||je.offsetWidth||je.clientWidth,h:parseInt(Pt,10)||je.offsetHeight||je.clientHeight}},co=Ve=>{const je=G(Ve),Zt=Wt(je),Pt=jn(je);return{x:Zt.x,y:Zt.y,w:Pt.w,h:Pt.h}},Wo=(Ve,je)=>{if(!Ve)return!1;const Zt=kt(Ve)?Ve:[Ve];return Me(Zt,Pt=>$c(ue.fromDom(Pt),je))},ms=(Ve,je,Zt,Pt)=>{const Xn=[];let ls=G(Ve);Pt=Pt===void 0;const _r=Zt||(ht().nodeName!=="BODY"?ht().parentNode:null);if(q(je))if(je==="*")je=dn;else{const Nr=je;je=jm=>Wo(jm,Nr)}for(;ls&&!(ls===_r||zt(ls.nodeType)||nm(ls)||yd(ls));){if(!je||je(ls))if(Pt)Xn.push(ls);else return[ls];ls=ls.parentNode}return Pt?Xn:null},Zs=(Ve,je,Zt)=>{const Pt=ms(Ve,je,Zt,!1);return Pt&&Pt.length>0?Pt[0]:null},hr=(Ve,je,Zt)=>{let Pt=je;if(Ve){q(je)&&(Pt=Xn=>Wo(Xn,je));for(let Xn=Ve[Zt];Xn;Xn=Xn[Zt])if(ce(Pt)&&Pt(Xn))return Xn}return null},wa=(Ve,je)=>hr(Ve,je,"nextSibling"),Uc=(Ve,je)=>hr(Ve,je,"previousSibling"),kc=Ve=>ce(Ve.querySelectorAll),Vt=(Ve,je)=>{var Zt,Pt;const Xn=(Pt=(Zt=G(je))!==null&&Zt!==void 0?Zt:n.root_element)!==null&&Pt!==void 0?Pt:e;return kc(Xn)?Cs(Xn.querySelectorAll(Ve)):[]},Bn=function(Ve,je,Zt){const Pt=Zt??this;if(kt(Ve)){const Xn=[];return Ey(Ve,(ls,_r)=>{const Nr=G(ls);Nr&&Xn.push(je.call(Pt,Nr,_r))}),Xn}else{const Xn=G(Ve);return Xn?je.call(Pt,Xn):!1}},Ts=(Ve,je)=>{Bn(Ve,Zt=>{Nt(je,(Pt,Xn)=>{De(Zt,Xn,Pt)})})},sn=(Ve,je)=>{Bn(Ve,Zt=>{const Pt=ue.fromDom(Zt);bd(Pt,je)})},to=(Ve,je,Zt,Pt,Xn)=>Bn(Ve,ls=>{const _r=q(je)?e.createElement(je):je;return Ke(Zt)&&Ts(_r,Zt),Pt&&(!q(Pt)&&Pt.nodeType?_r.appendChild(Pt):q(Pt)&&sn(_r,Pt)),Xn?_r:ls.appendChild(_r)}),so=(Ve,je,Zt)=>to(e.createElement(Ve),Ve,je,Zt,!0),an=im.decode,cs=im.encodeAllRaw,is=(Ve,je,Zt="")=>{let Pt="<"+Ve;for(const Xn in je)Cr(je,Xn)&&(Pt+=" "+Xn+'="'+cs(je[Xn])+'"');return hs(Zt)&&Un(M.getVoidElements(),Ve)?Pt+" />":Pt+">"+Zt+""},Mc=Ve=>{const je=e.createElement("div"),Zt=e.createDocumentFragment();Zt.appendChild(je),Ve&&(je.innerHTML=Ve);let Pt;for(;Pt=je.firstChild;)Zt.appendChild(Pt);return Zt.removeChild(je),Zt},$r=(Ve,je)=>Bn(Ve,Zt=>{const Pt=ue.fromDom(Zt);return je&&Y(ja(Pt),Xn=>{Sc(Xn)&&Xn.dom.length===0?fr(Xn):Is(Pt,Xn)}),fr(Pt),Pt.dom}),$o=Ve=>Bn(Ve,je=>{const Zt=je.attributes;for(let Pt=Zt.length-1;Pt>=0;Pt--)je.removeAttributeNode(Zt.item(Pt))}),Ms=Ve=>D.parse(Ve),or=(Ve,je)=>D.serialize(Ve,je),br=Ve=>{if(Qd!==Ar.DOM&&e===document){if(o[Ve])return;o[Ve]=!0}let je=e.getElementById("mceDefaultStyles");if(!je){je=e.createElement("style"),je.id="mceDefaultStyles",je.type="text/css";const Zt=e.head;Zt.firstChild?Zt.insertBefore(je,Zt.firstChild):Zt.appendChild(je)}je.styleSheet?je.styleSheet.cssText+=Ve:je.appendChild(e.createTextNode(Ve))},ua=Ve=>{Ve||(Ve=""),Y(Ve.split(","),je=>{c[je]=!0,v.load(je).catch(ft)})},Da=(Ve,je,Zt)=>{Bn(Ve,Pt=>{if(dn(Pt)){const Xn=ue.fromDom(Pt),ls=je.split(" ");Y(ls,_r=>{Ke(Zt)?(Zt?Au:cd)(Xn,_r):id(Xn,_r)})}})},jr=(Ve,je)=>{Da(Ve,je,!0)},Xa=(Ve,je)=>{Da(Ve,je,!1)},Ju=(Ve,je)=>{const Zt=te(Ve),Pt=je.split(" ");return Ke(Zt)&&wn(Pt,Xn=>ld(Zt,Xn))},ii=Ve=>{Bn(Ve,je=>ec(ue.fromDom(je),"display"))},jf=Ve=>{Bn(Ve,je=>cf(ue.fromDom(je),"display","none"))},Gl=Ve=>{const je=te(Ve);return Ke(je)&&qr(Ic(je,"display"),"none")},ny=Ve=>(Ve||"mce_")+u++,oy=Ve=>{const je=te(Ve);return Ke(je)?dn(je.dom)?je.dom.outerHTML:ss(je):""},Wf=(Ve,je)=>{Bn(Ve,Zt=>{dn(Zt)&&(Zt.outerHTML=je)})},Jd=(Ve,je)=>{const Zt=G(je);return Bn(Ve,Pt=>{const Xn=Zt==null?void 0:Zt.parentNode,ls=Zt==null?void 0:Zt.nextSibling;return Xn&&(ls?Xn.insertBefore(Pt,ls):Xn.appendChild(Pt)),Pt})},cc=(Ve,je,Zt)=>Bn(je,Pt=>{var Xn;const ls=kt(je)?Ve.cloneNode(!0):Ve;return Zt&&Ey(R_(Pt.childNodes),_r=>{ls.appendChild(_r)}),(Xn=Pt.parentNode)===null||Xn===void 0||Xn.replaceChild(ls,Pt),Pt}),Qu=(Ve,je)=>{if(Ve.nodeName!==je.toUpperCase()){const Zt=so(je);return Ey(we(Ve),Pt=>{De(Zt,Pt.nodeName,xe(Ve,Pt.nodeName))}),cc(Zt,Ve,!0),Zt}else return Ve},Zf=(Ve,je)=>{let Zt=Ve;for(;Zt;){let Pt=je;for(;Pt&&Zt!==Pt;)Pt=Pt.parentNode;if(Zt===Pt)break;Zt=Zt.parentNode}return!Zt&&Ve.ownerDocument?Ve.ownerDocument.documentElement:Zt},Vi=Ve=>{if(dn(Ve)){const je=Ve.nodeName.toLowerCase()==="a"&&!xe(Ve,"href")&&xe(Ve,"id");if(xe(Ve,"name")||xe(Ve,"data-mce-bookmark")||je)return!0}return!1},ed=(Ve,je)=>{let Zt=0;if(Vi(Ve))return!1;const Pt=Ve.firstChild;if(Pt){const Xn=new $a(Pt,Ve),ls=M?M.getWhitespaceElements():{},_r=je||(M?M.getNonEmptyElements():null);let Nr=Pt;do{if(dn(Nr)){const jm=Nr.getAttribute("data-mce-bogus");if(jm){Nr=Xn.next(jm==="all");continue}const Yl=Nr.nodeName.toLowerCase();if(_r&&_r[Yl]){if(Yl==="br"){Zt++,Nr=Xn.next();continue}return!1}if(Vi(Nr))return!1}if(Ri(Nr)||Bt(Nr)&&!Pi(Nr.data)||Bt(Nr)&&Nr.parentNode&&ls[Nr.parentNode.nodeName]&&Pi(Nr.data))return!1;Nr=Xn.next()}while(Nr)}return Zt<=1},Vm=()=>e.createRange(),xi=(Ve,je,Zt)=>{let Pt=Vm(),Xn,ls;if(Ve&&je&&Ve.parentNode&&je.parentNode){const _r=Ve.parentNode;return Pt.setStart(_r,Td(Ve)),Pt.setEnd(je.parentNode,Td(je)),Xn=Pt.extractContents(),Pt=Vm(),Pt.setStart(je.parentNode,Td(je)+1),Pt.setEnd(_r,Td(Ve)+1),ls=Pt.extractContents(),_r.insertBefore(Fv(Qd,Xn),Ve),Zt?_r.insertBefore(Zt,Ve):_r.insertBefore(je,Ve),_r.insertBefore(Fv(Qd,ls),Ve),$r(Ve),Zt||je}else return},Qg=(Ve,je,Zt,Pt)=>{if(kt(Ve)){let Xn=Ve.length;const ls=[];for(;Xn--;)ls[Xn]=Qg(Ve[Xn],je,Zt,Pt);return ls}else return n.collect&&(Ve===e||Ve===r)&&x.push([Ve,je,Zt,Pt]),L.bind(Ve,je,Zt,Pt||Qd)},qf=(Ve,je,Zt)=>{if(kt(Ve)){let Pt=Ve.length;const Xn=[];for(;Pt--;)Xn[Pt]=qf(Ve[Pt],je,Zt);return Xn}else{if(x.length>0&&(Ve===e||Ve===r)){let Pt=x.length;for(;Pt--;){const[Xn,ls,_r]=x[Pt];Ve===Xn&&(!je||je===ls)&&(!Zt||Zt===_r)&&L.unbind(Xn,ls,_r)}}return L.unbind(Ve,je,Zt)}},Kl=(Ve,je,Zt)=>L.dispatch(Ve,je,Zt),Um=(Ve,je,Zt)=>L.dispatch(Ve,je,Zt),f_=Ve=>{if(Ve&&dn(Ve)){const je=Ve.getAttribute("data-mce-contenteditable");return je&&je!=="inherit"?je:Ve.contentEditable!=="inherit"?Ve.contentEditable:null}else return null},Qd={doc:e,settings:n,win:r,files:c,stdMode:m,boxModel:b,styleSheetLoader:v,boundEvents:x,styles:D,schema:M,events:L,isBlock:oe,root:null,clone:He,getRoot:ht,getViewPort:Jt,getRect:co,getSize:jn,getParent:Zs,getParents:ms,get:G,getNext:wa,getPrev:Uc,select:Vt,is:Wo,add:to,create:so,createHTML:is,createFragment:Mc,remove:$r,setStyle:et,getStyle:pn,setStyles:Qe,removeAllAttribs:$o,setAttrib:De,setAttribs:Ts,getAttrib:xe,getPos:Wt,parseStyle:Ms,serializeStyle:or,addStyle:br,loadCSS:ua,addClass:jr,removeClass:Xa,hasClass:Ju,toggleClass:Da,show:ii,hide:jf,isHidden:Gl,uniqueId:ny,setHTML:sn,getOuterHTML:oy,setOuterHTML:Wf,decode:an,encode:cs,insertAfter:Jd,replace:cc,rename:Qu,findCommonAncestor:Zf,run:Bn,getAttribs:we,isEmpty:ed,createRng:Vm,nodeIndex:Td,split:xi,bind:Qg,unbind:qf,fire:Um,dispatch:Kl,getContentEditable:f_,getContentEditableParent:Ve=>{const je=ht();let Zt=null;for(let Pt=Ve;Pt&&Pt!==je&&(Zt=f_(Pt),Zt===null);Pt=Pt.parentNode);return Zt},isEditable:Ve=>{if(Ke(Ve)){const je=dn(Ve)?Ve:Ve.parentElement,Zt=f_(ht())==="true";return Ke(je)&&Jo(ue.fromDom(je),Zt)}else return!1},destroy:()=>{if(x.length>0){let Ve=x.length;for(;Ve--;){const[je,Zt,Pt]=x[Ve];L.unbind(je,Zt,Pt)}}Nt(c,(Ve,je)=>{v.unload(je),delete c[je]})},isChildOf:(Ve,je)=>Ve===je||je.contains(Ve),dumpRng:Ve=>"startContainer: "+Ve.startContainer.nodeName+", startOffset: "+Ve.startOffset+", endContainer: "+Ve.endContainer.nodeName+", endOffset: "+Ve.endOffset},sy=Zv(D,n,nt(Qd));return Qd};Ar.DOM=Ar(document),Ar.nodeIndex=Td;const tT=Ar.DOM,N_=0,nT=1,Oy=2,Cp=3;class vf{constructor(n={}){this.states={},this.queue=[],this.scriptLoadedCallbacks={},this.queueLoadedCallbacks=[],this.loading=!1,this.settings=n}_setReferrerPolicy(n){this.settings.referrerPolicy=n}loadScript(n){return new Promise((o,r)=>{const c=tT;let u;const m=()=>{c.remove(x),u&&(u.onerror=u.onload=u=null)},b=()=>{m(),o()},v=()=>{m(),r("Failed to load script: "+n)},x=c.uniqueId();u=document.createElement("script"),u.id=x,u.type="text/javascript",u.src=wt._addCacheSuffix(n),this.settings.referrerPolicy&&c.setAttrib(u,"referrerpolicy",this.settings.referrerPolicy),u.onload=b,u.onerror=v,(document.getElementsByTagName("head")[0]||document.body).appendChild(u)})}isDone(n){return this.states[n]===Oy}markDone(n){this.states[n]=Oy}add(n){const o=this;return o.queue.push(n),o.states[n]===void 0&&(o.states[n]=N_),new Promise((c,u)=>{o.scriptLoadedCallbacks[n]||(o.scriptLoadedCallbacks[n]=[]),o.scriptLoadedCallbacks[n].push({resolve:c,reject:u})})}load(n){return this.add(n)}remove(n){delete this.states[n],delete this.scriptLoadedCallbacks[n]}loadQueue(){const n=this.queue;return this.queue=[],this.loadScripts(n)}loadScripts(n){const o=this,r=(v,x)=>{ns(o.scriptLoadedCallbacks,x).each(M=>{Y(M,D=>D[v](x))}),delete o.scriptLoadedCallbacks[x]},c=v=>{const x=Be(v,M=>M.status==="rejected");return x.length>0?Promise.reject($n(x,({reason:M})=>kt(M)?M:[M])):Promise.resolve()},u=v=>Promise.allSettled(Ae(v,x=>o.states[x]===Oy?(r("resolve",x),Promise.resolve()):o.states[x]===Cp?(r("reject",x),Promise.reject(x)):(o.states[x]=nT,o.loadScript(x).then(()=>{o.states[x]=Oy,r("resolve",x);const M=o.queue;return M.length>0?(o.queue=[],u(M).then(c)):Promise.resolve()},()=>(o.states[x]=Cp,r("reject",x),Promise.reject(x)))))),m=v=>(o.loading=!0,u(v).then(x=>{o.loading=!1;const M=o.queueLoadedCallbacks.shift();return I.from(M).each(fn),c(x)})),b=We(n);return o.loading?new Promise((v,x)=>{o.queueLoadedCallbacks.push(()=>m(b).then(v,x))}):m(b)}}vf.ScriptLoader=new vf;const Za=e=>{let n=e;return{get:()=>n,set:c=>{n=c}}},kf=e=>dt(e)&&Un(e,"raw"),qv=e=>kt(e)&&e.length>1,qa={},Gv=Za("en"),zy=()=>ns(qa,Gv.get()),Lu={getData:()=>Ao(qa,e=>({...e})),setCode:e=>{e&&Gv.set(e)},getCode:()=>Gv.get(),add:(e,n)=>{let o=qa[e];o||(qa[e]=o={}),Nt(n,(r,c)=>{o[c.toLowerCase()]=r})},translate:e=>{const n=zy().getOr({}),o=m=>ce(m)?Object.prototype.toString.call(m):r(m)?"":""+m,r=m=>m===""||m===null||m===void 0,c=m=>{const b=o(m);return ns(n,b.toLowerCase()).map(o).getOr(b)},u=m=>m.replace(/{context:\w+}$/,"");if(r(e))return"";if(kf(e))return o(e.raw);if(qv(e)){const m=e.slice(1),b=c(e[0]).replace(/\{([0-9]+)\}/g,(v,x)=>Un(m,x)?o(m[x]):v);return u(b)}return u(c(e))},isRtl:()=>zy().bind(e=>ns(e,"_dir")).exists(e=>e==="rtl"),hasCode:e=>Un(qa,e)},Js=()=>{const e=[],n={},o={},r=[],c=(G,te)=>{const xe=Be(r,we=>we.name===G&&we.state===te);Y(xe,we=>we.resolve())},u=G=>Un(n,G),m=G=>Un(o,G),b=G=>{if(o[G])return o[G].instance},v=(G,te)=>{const xe=Lu.getCode(),we=","+(te||"")+",";!xe||te&&we.indexOf(","+xe+",")===-1||vf.ScriptLoader.add(n[G]+"/langs/"+xe+".js")},x=(G,te)=>{Js.languageLoad!==!1&&(u(G)?v(G,te):oe(G,"loaded").then(()=>v(G,te)))},M=(G,te)=>(e.push(te),o[G]={instance:te},c(G,"added"),te),D=G=>{delete n[G],delete o[G]},L=(G,te)=>q(te)?q(G)?{prefix:"",resource:te,suffix:""}:{prefix:G.prefix,resource:te,suffix:G.suffix}:te,ee=(G,te)=>{if(n[G])return Promise.resolve();let xe=q(te)?te:te.prefix+te.resource+te.suffix;xe.indexOf("/")!==0&&xe.indexOf("://")===-1&&(xe=Js.baseURL+"/"+xe),n[G]=xe.substring(0,xe.lastIndexOf("/"));const we=()=>(c(G,"loaded"),Promise.resolve());return o[G]?we():vf.ScriptLoader.add(xe).then(we)},oe=(G,te="added")=>te==="added"&&m(G)||te==="loaded"&&u(G)?Promise.resolve():new Promise(xe=>{r.push({name:G,state:te,resolve:xe})});return{items:e,urls:n,lookup:o,get:b,requireLangPack:x,add:M,remove:D,createUrl:L,load:ee,waitFor:oe}};Js.languageLoad=!0,Js.baseURL="",Js.PluginManager=Js(),Js.ThemeManager=Js(),Js.ModelManager=Js();const $_=e=>{const n=Za(I.none()),o=()=>n.get().each(e);return{clear:()=>{o(),n.set(I.none())},isSet:()=>n.get().isSome(),get:()=>n.get(),set:b=>{o(),n.set(I.some(b))}}},ha=e=>{const n=Za(I.none()),o=()=>n.get().each(b=>clearInterval(b));return{clear:()=>{o(),n.set(I.none())},isSet:()=>n.get().isSome(),get:()=>n.get(),set:b=>{o(),n.set(I.some(setInterval(b,e)))}}},oc=()=>{const e=$_(ft);return{...e,on:o=>e.get().each(o)}},Ml=(e,n)=>{let o=null;return{cancel:()=>{U(o)||(clearTimeout(o),o=null)},throttle:(...u)=>{U(o)&&(o=setTimeout(()=>{o=null,e.apply(null,u)},n))}}},yi=(e,n)=>{let o=null;const r=()=>{U(o)||(clearTimeout(o),o=null)};return{cancel:r,throttle:(...u)=>{r(),o=setTimeout(()=>{o=null,e.apply(null,u)},n)}}},mg=nt("mce-annotation"),Sp=nt("data-mce-annotation"),wf=nt("data-mce-annotation-uid"),pl=nt("data-mce-annotation-active"),lu=nt("data-mce-annotation-classes"),xp=nt("data-mce-annotation-attrs"),Mh=e=>n=>Ps(n,e),Kv=(e,n)=>{const o=e.selection.getRng(),r=ue.fromDom(o.startContainer),c=ue.fromDom(e.getBody()),u=n.fold(()=>"."+mg(),v=>`[${Sp()}="${v}"]`),m=fd(r,o.startOffset).getOr(r);return oo(m,u,Mh(c)).bind(v=>ei(v,`${wf()}`).bind(x=>ei(v,`${Sp()}`).map(M=>{const D=Tp(e,x);return{uid:x,name:M,elements:D}})))},F_=e=>er(e)&&ld(e,mg()),I_=(e,n)=>Qa(e,"data-mce-bogus")||fp(e,'[data-mce-bogus="all"]',Mh(n)),Tp=(e,n)=>{const o=ue.fromDom(e.getBody()),r=Tc(o,`[${wf()}="${n}"]`);return Be(r,c=>!I_(c,o))},Yv=(e,n)=>{const o=ue.fromDom(e.getBody()),r=Tc(o,`[${Sp()}="${n}"]`),c={};return Y(r,u=>{if(!I_(u,o)){const m=Pc(u,wf()),b=ns(c,m).getOr([]);c[m]=b.concat([u])}}),c},oT=(e,n)=>{const o=Za({}),r=()=>({listeners:[],previous:oc()}),c=(D,L)=>{u(D,ee=>(L(ee),ee))},u=(D,L)=>{const ee=o.get(),oe=ns(ee,D).getOrThunk(r),G=L(oe);ee[D]=G,o.set(ee)},m=(D,L,ee)=>{c(D,oe=>{Y(oe.listeners,G=>G(!0,D,{uid:L,nodes:Ae(ee,te=>te.dom)}))})},b=D=>{c(D,L=>{Y(L.listeners,ee=>ee(!1,D))})},v=(D,L)=>{Y(Tp(e,D),ee=>{L?ea(ee,pl(),"true"):Hr(ee,pl())})},x=yi(()=>{const D=Nn(n.getNames());Y(D,L=>{u(L,ee=>{const oe=ee.previous.get();return Kv(e,I.some(L)).fold(()=>{oe.each(G=>{b(L),ee.previous.clear(),v(G,!1)})},({uid:G,name:te,elements:xe})=>{qr(oe,G)||(oe.each(we=>v(we,!1)),m(te,G,xe),ee.previous.set(G),v(G,!0))}),{previous:ee.previous,listeners:ee.listeners}})})},30);return e.on("remove",()=>{x.cancel()}),e.on("NodeChange",()=>{x.throttle()}),{addListener:(D,L)=>{u(D,ee=>({previous:ee.previous,listeners:ee.listeners.concat([L])}))}}},sT=(e,n)=>{const o=Sp(),r=u=>I.from(u.attr(o)).bind(n.lookup),c=u=>{var m,b;u.attr(wf(),null),u.attr(Sp(),null),u.attr(pl(),null);const v=I.from(u.attr(xp())).map(L=>L.split(",")).getOr([]),x=I.from(u.attr(lu())).map(L=>L.split(",")).getOr([]);Y(v,L=>u.attr(L,null));const M=(b=(m=u.attr("class"))===null||m===void 0?void 0:m.split(" "))!==null&&b!==void 0?b:[],D=Ro(M,[mg()].concat(x));u.attr("class",D.length>0?D.join(" "):null),u.attr(lu(),null),u.attr(xp(),null)};e.serializer.addTempAttr(pl()),e.serializer.addAttributeFilter(o,u=>{for(const m of u)r(m).each(b=>{b.persistent===!1&&(m.name==="span"?m.unwrap():c(m))})})},L_=()=>{const e={};return{register:(c,u)=>{e[c]={name:c,settings:u}},lookup:c=>ns(e,c).map(u=>u.settings),getNames:()=>Es(e)}};let H_=0;const Xv=e=>{const o=new Date().getTime(),r=Math.floor(Math.random()*1e9);return H_++,e+"_"+r+H_+String(o)},V_=(e,n)=>{Y(n,o=>{Au(e,o)})},rT=(e,n)=>{Y(n,o=>{cd(e,o)})},Jv=(e,n)=>ue.fromDom(e.dom.cloneNode(n)),gg=e=>Jv(e,!1),Qv=e=>Jv(e,!0),aT=(e,n)=>{const o=ue.fromTag(n),r=nf(e);return uc(o,r),o},cT=(e,n)=>{const o=aT(e,n);Du(e,o);const r=ja(e);return Ru(o,r),fr(e),o},U_=(e,n,o=Te)=>{const r=new $a(e,n),c=u=>{let m;do m=r[u]();while(m&&!Bt(m)&&!o(m));return I.from(m).filter(Bt)};return{current:()=>I.from(r.current()).filter(Bt),next:()=>c("next"),prev:()=>c("prev"),prev2:()=>c("prev2")}},Br=(e,n)=>{const o=n||(m=>e.isBlock(m)||Vr(m)||Ls(m)),r=(m,b,v,x)=>{if(Bt(m)){const M=x(m,b,m.data);if(M!==-1)return I.some({container:m,offset:M})}return v().bind(M=>r(M.container,M.offset,v,x))};return{backwards:(m,b,v,x)=>{const M=U_(m,x??e.getRoot(),o);return r(m,b,()=>M.prev().map(D=>({container:D,offset:D.length})),v).getOrNull()},forwards:(m,b,v,x)=>{const M=U_(m,x??e.getRoot(),o);return r(m,b,()=>M.next().map(D=>({container:D,offset:0})),v).getOrNull()}}},dm=Math.round,pg=e=>e?{left:dm(e.left),top:dm(e.top),bottom:dm(e.bottom),right:dm(e.right),width:dm(e.width),height:dm(e.height)}:{left:0,top:0,bottom:0,right:0,width:0,height:0},j_=(e,n)=>(e=pg(e),n||(e.left=e.left+e.width),e.right=e.left,e.width=0,e),Ry=(e,n)=>e.left===n.left&&e.top===n.top&&e.bottom===n.bottom&&e.right===n.right,Yc=(e,n,o)=>e>=0&&e<=Math.min(n.height,o.height)/2,Ii=(e,n)=>{const o=Math.min(n.height/2,e.height/2);return e.bottom-on.bottom?!1:Yc(n.top-e.bottom,e,n)},hg=(e,n)=>e.top>n.bottom?!0:e.bottomn>=e.left&&n<=e.right&&o>=e.top&&o<=e.bottom,e0=e=>he(e,(n,o)=>n.fold(()=>I.some(o),r=>{const c=Math.min(o.left,r.left),u=Math.min(o.top,r.top),m=Math.max(o.right,r.right),b=Math.max(o.bottom,r.bottom);return I.some({top:u,right:m,bottom:b,left:c,width:m-c,height:b-u})}),I.none()),W_=(e,n,o)=>{const r=Math.max(Math.min(n,e.left+e.width),e.left),c=Math.max(Math.min(o,e.top+e.height),e.top);return Math.sqrt((n-r)*(n-r)+(o-c)*(o-c))},Z_=(e,n)=>Math.max(0,Math.min(e.bottom,n.bottom)-Math.max(e.top,n.top)),q_=(e,n,o)=>Math.min(Math.max(e,n),o),uu=e=>{const n=e.startContainer,o=e.startOffset;return n===e.endContainer&&n.hasChildNodes()&&e.endOffset===o+1?n.childNodes[o]:null},_f=(e,n)=>{if(dn(e)&&e.hasChildNodes()){const o=e.childNodes,r=q_(n,0,o.length-1);return o[r]}else return e},Ur=(e,n)=>{if(!(n<0&&dn(e)&&e.hasChildNodes()))return _f(e,n)},Ed=new RegExp("[̀-ͯ҃-҇҈-҉֑-ֽֿׁ-ׂׄ-ׇׅؐ-ًؚ-ٰٟۖ-ۜ۟-ۤۧ-۪ۨ-ܑۭܰ-݊ަ-ް߫-߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࣣ-ंऺ़ु-ै्॑-ॗॢ-ॣঁ়াু-ৄ্ৗৢ-ৣਁ-ਂ਼ੁ-ੂੇ-ੈੋ-੍ੑੰ-ੱੵઁ-ં઼ુ-ૅે-ૈ્ૢ-ૣଁ଼ାିୁ-ୄ୍ୖୗୢ-ୣஂாீ்ௗఀా-ీె-ైొ-్ౕ-ౖౢ-ౣಁ಼ಿೂೆೌ-್ೕ-ೖೢ-ೣഁാു-ൄ്ൗൢ-ൣ්ාි-ුූෟัิ-ฺ็-๎ັິ-ູົ-ຼ່-ໍ༘-ཱ༹༙༵༷-ཾྀ-྄྆-྇ྍ-ྗྙ-ྼ࿆ိ-ူဲ-့္-်ွ-ှၘ-ၙၞ-ၠၱ-ၴႂႅ-ႆႍႝ፝-፟ᜒ-᜔ᜲ-᜴ᝒ-ᝓᝲ-ᝳ឴-឵ិ-ួំ៉-៓៝᠋-᠍ᢩᤠ-ᤢᤧ-ᤨᤲ᤹-᤻ᨗ-ᨘᨛᩖᩘ-ᩞ᩠ᩢᩥ-ᩬᩳ-᩿᩼᪰-᪽᪾ᬀ-ᬃ᬴ᬶ-ᬺᬼᭂ᭫-᭳ᮀ-ᮁᮢ-ᮥᮨ-ᮩ᮫-ᮭ᯦ᯨ-ᯩᯭᯯ-ᯱᰬ-ᰳᰶ-᰷᳐-᳔᳒-᳢᳠-᳨᳭᳴᳸-᳹᷀-᷵᷼-᷿‌-‍⃐-⃜⃝-⃠⃡⃢-⃤⃥-⃰⳯-⵿⳱ⷠ-〪ⷿ-〭〮-゙〯-゚꙯꙰-꙲ꙴ-꙽ꚞ-ꚟ꛰-꛱ꠂ꠆ꠋꠥ-ꠦ꣄꣠-꣱ꤦ-꤭ꥇ-ꥑꦀ-ꦂ꦳ꦶ-ꦹꦼꧥꨩ-ꨮꨱ-ꨲꨵ-ꨶꩃꩌꩼꪰꪲ-ꪴꪷ-ꪸꪾ-꪿꫁ꫬ-ꫭ꫶ꯥꯨ꯭ﬞ︀-️︠-゙︯-゚]"),Hu=e=>q(e)&&e.charCodeAt(0)>=768&&Ed.test(e),iT=(...e)=>n=>{for(let o=0;on=>{for(let o=0;oe?e.createRange():Ar.DOM.createRng(),s0=e=>q(e)&&/[\r\n\t ]/.test(e),fm=e=>!!e.setStart&&!!e.setEnd,Ap=e=>{const n=e.startContainer,o=e.startOffset;if(s0(e.toString())&&lT(n.parentNode)&&Bt(n)){const r=n.data;if(s0(r[o-1])||s0(r[o+1]))return!0}return!1},K_=e=>{const n=e.ownerDocument,o=Ph(n),r=n.createTextNode(tr),c=e.parentNode;c.insertBefore(r,e),o.setStart(r,0),o.setEnd(r,1);const u=pg(o.getBoundingClientRect());return c.removeChild(r),u},Y_=e=>{const n=e.startContainer,o=e.endContainer,r=e.startOffset,c=e.endOffset;if(n===o&&Bt(o)&&r===0&&c===1){const u=e.cloneRange();return u.setEndAfter(o),Vu(u)}else return null},X_=e=>e.left===0&&e.right===0&&e.top===0&&e.bottom===0,Vu=e=>{var n;let o;const r=e.getClientRects();return r.length>0?o=pg(r[0]):o=pg(e.getBoundingClientRect()),!fm(e)&&Bh(e)&&X_(o)?K_(e):X_(o)&&fm(e)&&(n=Y_(e))!==null&&n!==void 0?n:o},Nl=(e,n)=>{const o=j_(e,n);return o.width=1,o.right=o.left+1,o},$h=e=>{const n=[],o=m=>{m.height!==0&&(n.length>0&&Ry(m,n[n.length-1])||n.push(m))},r=(m,b)=>{const v=Ph(m.ownerDocument);if(b0&&(v.setStart(m,b-1),v.setEnd(m,b),Ap(v)||o(Nl(Vu(v),!1))),b{const r=()=>(Nh(e),n===0),c=()=>Nh(e)?n>=e.data.length:n>=e.childNodes.length,u=()=>{const M=Ph(e.ownerDocument);return M.setStart(e,n),M.setEnd(e,n),M},m=()=>(o||(o=$h(Ne(e,n))),o),b=()=>m().length>0,v=M=>M&&e===M.container()&&n===M.offset(),x=M=>Ny(e,M?n-1:n);return{container:nt(e),offset:nt(n),toRange:u,getClientRects:m,isVisible:b,isAtStart:r,isAtEnd:c,isEqual:v,getNode:x}};Ne.fromRangeStart=e=>Ne(e.startContainer,e.startOffset),Ne.fromRangeEnd=e=>Ne(e.endContainer,e.endOffset),Ne.after=e=>Ne(e.parentNode,o0(e)+1),Ne.before=e=>Ne(e.parentNode,o0(e)),Ne.isAbove=(e,n)=>ca(Yn(n.getClientRects()),Lo(e.getClientRects()),Ii).getOr(!1),Ne.isBelow=(e,n)=>ca(Lo(n.getClientRects()),Yn(e.getClientRects()),hg).getOr(!1),Ne.isAtStart=e=>e?e.isAtStart():!1,Ne.isAtEnd=e=>e?e.isAtEnd():!1,Ne.isTextPosition=e=>e?Bt(e.container()):!1,Ne.isElementPosition=e=>!Ne.isTextPosition(e);const Pr=(e,n)=>{Bt(n)&&n.data.length===0&&e.remove(n)},vg=(e,n,o)=>{n.insertNode(o),Pr(e,o.previousSibling),Pr(e,o.nextSibling)},r0=(e,n,o)=>{const r=I.from(o.firstChild),c=I.from(o.lastChild);n.insertNode(o),r.each(u=>Pr(e,u.previousSibling)),c.each(u=>Pr(e,u.nextSibling))},wr=(e,n,o)=>{yd(o)?r0(e,n,o):vg(e,n,o)},du=Bt,Fh=gi,sc=Ar.nodeIndex,Cf=e=>{const n=e.parentNode;return Fh(n)?Cf(n):n},a0=e=>e?Je(e.childNodes,(n,o)=>(Fh(o)&&o.nodeName!=="BR"?n=n.concat(a0(o)):n.push(o),n),[]):[],uT=(e,n)=>{let o=e;for(;(o=o.previousSibling)&&du(o);)n+=o.data.length;return n},c0=e=>n=>e===n,Ih=e=>{let n,o;n=a0(Cf(e)),o=qe(n,c0(e),e),n=n.slice(0,o+1);const r=Je(n,(c,u,m)=>(du(u)&&du(n[m-1])&&c++,c),0);return n=le(n,oi([e.nodeName])),o=qe(n,c0(e),e),o-r},kg=e=>(du(e)?"text()":e.nodeName.toLowerCase())+"["+Ih(e)+"]",i0=(e,n,o)=>{const r=[];for(let c=n.parentNode;c&&c!==e&&!(o&&o(c));c=c.parentNode)r.push(c);return r},By=(e,n)=>{let o=[],r=n.container(),c=n.offset(),u;if(du(r))u=uT(r,c);else{const b=r.childNodes;c>=b.length?(u="after",c=b.length-1):u="before",r=b[c]}o.push(kg(r));let m=i0(e,r);return m=le(m,go(gi)),o=o.concat(qs(m,b=>kg(b))),o.reverse().join("/")+","+u},vi=(e,n,o)=>{let r=a0(e);return r=le(r,(c,u)=>!du(c)||!du(r[u-1])),r=le(r,oi([n])),r[o]},Lh=(e,n)=>{let o=e,r=0;for(;du(o);){const c=o.data.length;if(n>=r&&n<=r+c){e=o,n=n-r;break}if(!du(o.nextSibling)){e=o,n=c;break}r+=c,o=o.nextSibling}return du(e)&&n>e.data.length&&(n=e.data.length),Ne(e,n)},l0=(e,n)=>{if(!n)return null;const o=n.split(","),r=o[0].split("/"),c=o.length>1?o[1]:"before",u=Je(r,(m,b)=>{const v=/([\w\-\(\)]+)\[([0-9]+)\]/.exec(b);return v?(v[1]==="text()"&&(v[1]="#text"),vi(m,v[1],parseInt(v[2],10))):null},e);if(!u)return null;if(!du(u)&&u.parentNode){let m;return c==="after"?m=sc(u)+1:m=sc(u),Ne(u.parentNode,m)}return Lh(u,parseInt(c,10))},Hh=Ls,Op=(e,n,o)=>{let r=e(n.data.slice(0,o)).length;for(let c=n.previousSibling;c&&Bt(c);c=c.previousSibling)r+=e(c.data).length;return r},Xi=(e,n,o,r,c)=>{const u=c?r.startContainer:r.endContainer;let m=c?r.startOffset:r.endOffset;const b=[],v=e.getRoot();if(Bt(u))b.push(o?Op(n,u,m):m);else{let x=0;const M=u.childNodes;m>=M.length&&M.length&&(x=1,m=Math.max(0,M.length-1)),b.push(e.nodeIndex(M[m],o)+x)}for(let x=u;x&&x!==v;x=x.parentNode)b.push(e.nodeIndex(x,o));return b},dT=(e,n,o,r)=>{const c=n.dom,u=Xi(c,e,o,r,!0),m=n.isForward(),b=bp(r)?{isFakeCaret:!0}:{};if(n.isCollapsed())return{start:u,forward:m,...b};{const v=Xi(c,e,o,r,!1);return{start:u,end:v,forward:m,...b}}},fc=(e,n,o)=>{let r=0;return wt.each(e.select(n),c=>{if(c.getAttribute("data-mce-bogus")!=="all"){if(c===o)return!1;r++;return}}),r},J_=(e,n)=>{let o=n?e.startContainer:e.endContainer,r=n?e.startOffset:e.endOffset;if(dn(o)&&o.nodeName==="TR"){const c=o.childNodes;o=c[Math.min(n?r:r-1,c.length-1)],o&&(r=n?0:o.childNodes.length,n?e.setStart(o,r):e.setEnd(o,r))}},Sf=e=>(J_(e,!0),J_(e,!1),e),Vh=(e,n)=>{if(dn(e)&&(e=_f(e,n),Hh(e)))return e;if(ys(e)){Bt(e)&&No(e)&&(e=e.parentNode);let o=e.previousSibling;if(Hh(o)||(o=e.nextSibling,Hh(o)))return o}},Q_=e=>Vh(e.startContainer,e.startOffset)||Vh(e.endContainer,e.endOffset),u0=(e,n,o)=>{const r=o.getNode(),c=o.getRng();if(r.nodeName==="IMG"||Hh(r)){const m=r.nodeName;return{name:m,index:fc(o.dom,m,r)}}const u=Q_(c);if(u){const m=u.tagName;return{name:m,index:fc(o.dom,m,u)}}return dT(e,o,n,c)},d0=e=>{const n=e.getRng();return{start:By(e.dom.getRoot(),Ne.fromRangeStart(n)),end:By(e.dom.getRoot(),Ne.fromRangeEnd(n)),forward:e.isForward()}},f0=e=>({rng:e.getRng(),forward:e.isForward()}),m0=(e,n,o)=>{const r={"data-mce-type":"bookmark",id:n,style:"overflow:hidden;line-height:0px"};return o?e.create("span",r,""):e.create("span",r)},e2=(e,n)=>{const o=e.dom;let r=e.getRng();const c=o.uniqueId(),u=e.isCollapsed(),m=e.getNode(),b=m.nodeName,v=e.isForward();if(b==="IMG")return{name:b,index:fc(o,b,m)};const x=Sf(r.cloneRange());if(!u){x.collapse(!1);const D=m0(o,c+"_end",n);wr(o,x,D)}r=Sf(r),r.collapse(!0);const M=m0(o,c+"_start",n);return wr(o,r,M),e.moveToBookmark({id:c,keep:!0,forward:v}),{id:c,forward:v}},fT=(e,n,o=!1)=>n===2?u0(Mt,o,e):n===3?d0(e):n?f0(e):e2(e,!1),mc=Ye(u0,mo,!0),Ga=e=>{const n=u=>u(e),o=nt(e),r=()=>c,c={tag:!0,inner:e,fold:(u,m)=>m(e),isValue:lt,isError:Te,map:u=>na.value(u(e)),mapError:r,bind:n,exists:n,forall:n,getOr:o,or:r,getOrThunk:o,orThunk:r,getOrDie:o,each:u=>{u(e)},toOptional:()=>I.some(e)};return c},ki=e=>{const n=()=>o,o={tag:!1,inner:e,fold:(r,c)=>r(e),isValue:Te,isError:lt,map:n,mapError:r=>na.error(r(e)),bind:n,exists:Te,forall:lt,getOr:mo,or:mo,getOrThunk:At,orThunk:At,getOrDie:So(String(e)),each:ft,toOptional:I.none};return o},na={value:Ga,error:ki,fromOption:(e,n)=>e.fold(()=>ki(n),Ga)},fu={generate:e=>{if(!kt(e))throw new Error("cases must be an array");if(e.length===0)throw new Error("there must be at least one case");const n=[],o={};return Y(e,(r,c)=>{const u=Es(r);if(u.length!==1)throw new Error("one and only one name per case");const m=u[0],b=r[m];if(o[m]!==void 0)throw new Error("duplicate key detected:"+m);if(m==="cata")throw new Error("cannot have a case named cata (sorry)");if(!kt(b))throw new Error("case arguments must be an array");n.push(m),o[m]=(...v)=>{const x=v.length;if(x!==b.length)throw new Error("Wrong number of arguments to case "+m+". Expected "+b.length+" ("+b+"), got "+x);return{fold:(...D)=>{if(D.length!==e.length)throw new Error("Wrong number of arguments to fold. Expected "+e.length+", got "+D.length);return D[c].apply(null,v)},match:D=>{const L=Es(D);if(n.length!==L.length)throw new Error("Wrong number of arguments to match. Expected: "+n.join(",")+` +Actual: `+L.join(","));if(!wn(n,oe=>ne(L,oe)))throw new Error("Not all branches were specified when using match. Specified: "+L.join(", ")+` +Required: `+n.join(", "));return D[m].apply(null,v)},log:D=>{console.log(D,{constructors:n,constructor:m,params:v})}}}}),o}};fu.generate([{bothErrors:["error1","error2"]},{firstError:["error1","value2"]},{secondError:["value1","error2"]},{bothValues:["value1","value2"]}]);const g0=e=>{const n=[],o=[];return Y(e,r=>{r.fold(c=>{n.push(c)},c=>{o.push(c)})}),{errors:n,values:o}},t2=e=>e.type==="inline-command"||e.type==="inline-format",Py=e=>e.type==="block-command"||e.type==="block-format",$y=e=>{const n=r=>na.error({message:r,pattern:e}),o=(r,c,u)=>{if(e.format!==void 0){let m;if(kt(e.format)){if(!wn(e.format,q))return n(r+" pattern has non-string items in the `format` array");m=e.format}else if(q(e.format))m=[e.format];else return n(r+" pattern has non-string `format` parameter");return na.value(c(m))}else return e.cmd!==void 0?q(e.cmd)?na.value(u(e.cmd,e.value)):n(r+" pattern has non-string `cmd` parameter"):n(r+" pattern is missing both `format` and `cmd` parameters")};if(!dt(e))return n("Raw pattern is not an object");if(!q(e.start))return n("Raw pattern is missing `start` parameter");if(e.end!==void 0){if(!q(e.end))return n("Inline pattern has non-string `end` parameter");if(e.start.length===0&&e.end.length===0)return n("Inline pattern has empty `start` and `end` parameters");let r=e.start,c=e.end;return c.length===0&&(c=r,r=""),o("Inline",u=>({type:"inline-format",start:r,end:c,format:u}),(u,m)=>({type:"inline-command",start:r,end:c,cmd:u,value:m}))}else return e.replacement!==void 0?q(e.replacement)?e.start.length===0?n("Replacement pattern has empty `start` parameter"):na.value({type:"inline-command",start:"",end:e.start,cmd:"mceInsertContent",value:e.replacement}):n("Replacement pattern has non-string `replacement` parameter"):e.start.length===0?n("Block pattern has empty `start` parameter"):o("Block",r=>({type:"block-format",start:e.start,format:r[0]}),(r,c)=>({type:"block-command",start:e.start,cmd:r,value:c}))},Fy=e=>Be(e,Py),Uh=e=>Be(e,t2),Iy=(e,n)=>({inlinePatterns:Uh(e),blockPatterns:Fy(e),dynamicPatternsLookup:n}),p0=e=>{const n=g0(Ae(e,$y));return Y(n.errors,o=>console.error(o.message,o.pattern)),n.values},z5=e=>n=>{const o=e(n);return p0(o)},Ly=os().deviceType,h0=Ly.isTouch(),Hy=Ar.DOM,b0=e=>{const n=e.indexOf("=")>0?e.split(/[;,](?![^=;,]*(?:[;,]|$))/):e.split(",");return he(n,(o,r)=>{const c=r.split("="),u=c[0],m=c.length>1?c[1]:u;return o[Ma(u)]=Ma(m),o},{})},n2=e=>ut(e,RegExp),An=e=>n=>n.options.get(e),y0=e=>q(e)||dt(e),o2=(e,n="")=>o=>{const r=q(o);if(r)if(o.indexOf("=")!==-1){const c=b0(o);return{value:ns(c,e.id).getOr(n),valid:r}}else return{value:o,valid:r};else return{valid:!1,message:"Must be a string."}},s2=e=>{const n=e.options.register;n("id",{processor:"string",default:e.id}),n("selector",{processor:"string"}),n("target",{processor:"object"}),n("suffix",{processor:"string"}),n("cache_suffix",{processor:"string"}),n("base_url",{processor:"string"}),n("referrer_policy",{processor:"string",default:""}),n("language_load",{processor:"boolean",default:!0}),n("inline",{processor:"boolean",default:!1}),n("iframe_attrs",{processor:"object",default:{}}),n("doctype",{processor:"string",default:""}),n("document_base_url",{processor:"string",default:e.documentBaseUrl}),n("body_id",{processor:o2(e,"tinymce"),default:"tinymce"}),n("body_class",{processor:o2(e),default:""}),n("content_security_policy",{processor:"string",default:""}),n("br_in_pre",{processor:"boolean",default:!0}),n("forced_root_block",{processor:o=>{const r=q(o)&&io(o);return r?{value:o,valid:r}:{valid:!1,message:"Must be a non-empty string."}},default:"p"}),n("forced_root_block_attrs",{processor:"object",default:{}}),n("newline_behavior",{processor:o=>{const r=ne(["block","linebreak","invert","default"],o);return r?{value:o,valid:r}:{valid:!1,message:"Must be one of: block, linebreak, invert or default."}},default:"default"}),n("br_newline_selector",{processor:"string",default:".mce-toc h2,figcaption,caption"}),n("no_newline_selector",{processor:"string",default:""}),n("keep_styles",{processor:"boolean",default:!0}),n("end_container_on_empty_block",{processor:o=>xt(o)?{valid:!0,value:o}:q(o)?{valid:!0,value:o}:{valid:!1,message:"Must be boolean or a string"},default:"blockquote"}),n("font_size_style_values",{processor:"string",default:"xx-small,x-small,small,medium,large,x-large,xx-large"}),n("font_size_legacy_values",{processor:"string",default:"xx-small,small,medium,large,x-large,xx-large,300%"}),n("font_size_classes",{processor:"string",default:""}),n("automatic_uploads",{processor:"boolean",default:!0}),n("images_reuse_filename",{processor:"boolean",default:!1}),n("images_replace_blob_uris",{processor:"boolean",default:!0}),n("icons",{processor:"string",default:""}),n("icons_url",{processor:"string",default:""}),n("images_upload_url",{processor:"string",default:""}),n("images_upload_base_path",{processor:"string",default:""}),n("images_upload_credentials",{processor:"boolean",default:!1}),n("images_upload_handler",{processor:"function"}),n("language",{processor:"string",default:"en"}),n("language_url",{processor:"string",default:""}),n("entity_encoding",{processor:"string",default:"named"}),n("indent",{processor:"boolean",default:!0}),n("indent_before",{processor:"string",default:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist"}),n("indent_after",{processor:"string",default:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist"}),n("indent_use_margin",{processor:"boolean",default:!1}),n("indentation",{processor:"string",default:"40px"}),n("content_css",{processor:o=>{const r=o===!1||q(o)||Ze(o,q);return r?q(o)?{value:Ae(o.split(","),Ma),valid:r}:kt(o)?{value:o,valid:r}:o===!1?{value:[],valid:r}:{value:o,valid:r}:{valid:!1,message:"Must be false, a string or an array of strings."}},default:x0(e)?[]:["default"]}),n("content_style",{processor:"string"}),n("content_css_cors",{processor:"boolean",default:!1}),n("font_css",{processor:o=>{const r=q(o)||Ze(o,q);return r?{value:kt(o)?o:Ae(o.split(","),Ma),valid:r}:{valid:!1,message:"Must be a string or an array of strings."}},default:[]}),n("inline_boundaries",{processor:"boolean",default:!0}),n("inline_boundaries_selector",{processor:"string",default:"a[href],code,span.mce-annotation"}),n("object_resizing",{processor:o=>{const r=xt(o)||q(o);return r?o===!1||Ly.isiPhone()||Ly.isiPad()?{value:"",valid:r}:{value:o===!0?"table,img,figure.image,div,video,iframe":o,valid:r}:{valid:!1,message:"Must be boolean or a string"}},default:!h0}),n("resize_img_proportional",{processor:"boolean",default:!0}),n("event_root",{processor:"object"}),n("service_message",{processor:"string"}),n("theme",{processor:o=>o===!1||q(o)||ce(o),default:"silver"}),n("theme_url",{processor:"string"}),n("formats",{processor:"object"}),n("format_empty_lines",{processor:"boolean",default:!1}),n("format_noneditable_selector",{processor:"string",default:""}),n("preview_styles",{processor:o=>{const r=o===!1||q(o);return r?{value:o===!1?"":o,valid:r}:{valid:!1,message:"Must be false or a string"}},default:"font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow"}),n("custom_ui_selector",{processor:"string",default:""}),n("hidden_input",{processor:"boolean",default:!0}),n("submit_patch",{processor:"boolean",default:!0}),n("encoding",{processor:"string"}),n("add_form_submit_trigger",{processor:"boolean",default:!0}),n("add_unload_trigger",{processor:"boolean",default:!0}),n("custom_undo_redo_levels",{processor:"number",default:0}),n("disable_nodechange",{processor:"boolean",default:!1}),n("readonly",{processor:"boolean",default:!1}),n("plugins",{processor:"string[]",default:[]}),n("external_plugins",{processor:"object"}),n("forced_plugins",{processor:"string[]"}),n("model",{processor:"string",default:e.hasPlugin("rtc")?"plugin":"dom"}),n("model_url",{processor:"string"}),n("block_unsupported_drop",{processor:"boolean",default:!0}),n("visual",{processor:"boolean",default:!0}),n("visual_table_class",{processor:"string",default:"mce-item-table"}),n("visual_anchor_class",{processor:"string",default:"mce-item-anchor"}),n("iframe_aria_text",{processor:"string",default:"Rich Text Area. Press ALT-0 for help."}),n("setup",{processor:"function"}),n("init_instance_callback",{processor:"function"}),n("url_converter",{processor:"function",default:e.convertURL}),n("url_converter_scope",{processor:"object",default:e}),n("urlconverter_callback",{processor:"function"}),n("allow_conditional_comments",{processor:"boolean",default:!1}),n("allow_html_data_urls",{processor:"boolean",default:!1}),n("allow_svg_data_urls",{processor:"boolean"}),n("allow_html_in_named_anchor",{processor:"boolean",default:!1}),n("allow_script_urls",{processor:"boolean",default:!1}),n("allow_unsafe_link_target",{processor:"boolean",default:!1}),n("convert_fonts_to_spans",{processor:"boolean",default:!0,deprecated:!0}),n("fix_list_elements",{processor:"boolean",default:!1}),n("preserve_cdata",{processor:"boolean",default:!1}),n("remove_trailing_brs",{processor:"boolean"}),n("inline_styles",{processor:"boolean",default:!0,deprecated:!0}),n("element_format",{processor:"string",default:"html"}),n("entities",{processor:"string"}),n("schema",{processor:"string",default:"html5"}),n("convert_urls",{processor:"boolean",default:!0}),n("relative_urls",{processor:"boolean",default:!0}),n("remove_script_host",{processor:"boolean",default:!0}),n("custom_elements",{processor:"string"}),n("extended_valid_elements",{processor:"string"}),n("invalid_elements",{processor:"string"}),n("invalid_styles",{processor:y0}),n("valid_children",{processor:"string"}),n("valid_classes",{processor:y0}),n("valid_elements",{processor:"string"}),n("valid_styles",{processor:y0}),n("verify_html",{processor:"boolean",default:!0}),n("auto_focus",{processor:o=>q(o)||o===!0}),n("browser_spellcheck",{processor:"boolean",default:!1}),n("protect",{processor:"array"}),n("images_file_types",{processor:"string",default:"jpeg,jpg,jpe,jfi,jif,jfif,png,gif,bmp,webp"}),n("deprecation_warnings",{processor:"boolean",default:!0}),n("a11y_advanced_options",{processor:"boolean",default:!1}),n("api_key",{processor:"string"}),n("paste_block_drop",{processor:"boolean",default:!1}),n("paste_data_images",{processor:"boolean",default:!0}),n("paste_preprocess",{processor:"function"}),n("paste_postprocess",{processor:"function"}),n("paste_webkit_styles",{processor:"string",default:"none"}),n("paste_remove_styles_if_webkit",{processor:"boolean",default:!0}),n("paste_merge_formats",{processor:"boolean",default:!0}),n("smart_paste",{processor:"boolean",default:!0}),n("paste_as_text",{processor:"boolean",default:!1}),n("paste_tab_spaces",{processor:"number",default:4}),n("text_patterns",{processor:o=>Ze(o,dt)||o===!1?{value:p0(o===!1?[]:o),valid:!0}:{valid:!1,message:"Must be an array of objects or false."},default:[{start:"*",end:"*",format:"italic"},{start:"**",end:"**",format:"bold"},{start:"#",format:"h1"},{start:"##",format:"h2"},{start:"###",format:"h3"},{start:"####",format:"h4"},{start:"#####",format:"h5"},{start:"######",format:"h6"},{start:"1. ",cmd:"InsertOrderedList"},{start:"* ",cmd:"InsertUnorderedList"},{start:"- ",cmd:"InsertUnorderedList"}]}),n("text_patterns_lookup",{processor:o=>ce(o)?{value:z5(o),valid:!0}:{valid:!1,message:"Must be a single function"},default:o=>[]}),n("noneditable_class",{processor:"string",default:"mceNonEditable"}),n("editable_class",{processor:"string",default:"mceEditable"}),n("noneditable_regexp",{processor:o=>Ze(o,n2)?{value:o,valid:!0}:n2(o)?{value:[o],valid:!0}:{valid:!1,message:"Must be a RegExp or an array of RegExp."},default:[]}),n("table_tab_navigation",{processor:"boolean",default:!0}),n("highlight_on_focus",{processor:"boolean",default:!1}),n("xss_sanitization",{processor:"boolean",default:!0}),e.on("ScriptsLoaded",()=>{n("directionality",{processor:"string",default:Lu.isRtl()?"rtl":void 0}),n("placeholder",{processor:"string",default:Hy.getAttrib(e.getElement(),"placeholder")})})},Ht=An("iframe_attrs"),mT=An("doctype"),gc=An("document_base_url"),gT=An("body_id"),r2=An("body_class"),a2=An("content_security_policy"),Bl=An("br_in_pre"),Pl=An("forced_root_block"),jh=An("forced_root_block_attrs"),mu=An("newline_behavior"),v0=An("br_newline_selector"),Wh=An("no_newline_selector"),Ad=An("keep_styles"),Uu=An("end_container_on_empty_block"),Vy=An("automatic_uploads"),$l=An("images_reuse_filename"),pT=An("images_replace_blob_uris"),Uy=An("icons"),jy=An("icons_url"),mm=An("images_upload_url"),c2=An("images_upload_base_path"),k0=An("images_upload_credentials"),hT=An("images_upload_handler"),i2=An("content_css_cors"),zp=An("referrer_policy"),pc=An("language"),bT=An("language_url"),wg=An("indent_use_margin"),l2=An("indentation"),Wy=An("content_css"),yT=An("content_style"),w0=An("font_css"),vT=An("directionality"),Zh=An("inline_boundaries_selector"),u2=An("object_resizing"),d2=An("resize_img_proportional"),_0=An("placeholder"),C0=An("event_root"),f2=An("service_message"),Od=An("theme"),Zy=An("theme_url"),Fl=An("model"),mr=An("model_url"),Dp=An("inline_boundaries"),ri=An("formats"),S0=An("preview_styles"),m2=An("format_empty_lines"),g2=An("format_noneditable_selector"),qh=An("custom_ui_selector"),x0=An("inline"),p2=An("hidden_input"),h2=An("submit_patch"),kT=An("add_form_submit_trigger"),wT=An("add_unload_trigger"),_T=An("custom_undo_redo_levels"),CT=An("disable_nodechange"),Rp=An("readonly"),T0=An("content_css_cors"),E0=An("plugins"),_g=An("external_plugins"),ST=An("block_unsupported_drop"),xT=An("visual"),TT=An("visual_table_class"),A0=An("visual_anchor_class"),b2=An("iframe_aria_text"),Cg=An("setup"),y2=An("init_instance_callback"),ET=An("urlconverter_callback"),AT=An("auto_focus"),OT=An("browser_spellcheck"),Mp=An("protect"),qy=An("paste_block_drop"),Sg=An("paste_data_images"),Gy=An("paste_preprocess"),v2=An("paste_postprocess"),zd=An("paste_webkit_styles"),Ky=An("paste_remove_styles_if_webkit"),k2=An("paste_merge_formats"),ju=An("smart_paste"),gm=An("paste_as_text"),O0=An("paste_tab_spaces"),w2=An("allow_html_data_urls"),zT=An("text_patterns"),DT=An("text_patterns_lookup"),z0=An("noneditable_class"),RT=An("editable_class"),MT=An("noneditable_regexp"),_2=An("preserve_cdata"),C2=An("highlight_on_focus"),Yy=An("xss_sanitization"),NT=e=>e.options.isSet("text_patterns_lookup"),BT=e=>wt.explode(e.options.get("font_size_style_values")),PT=e=>wt.explode(e.options.get("font_size_classes")),S2=e=>e.options.get("encoding")==="xml",D0=e=>wt.explode(e.options.get("images_file_types")),x2=An("table_tab_navigation"),$T=dn,T2=Bt,Gh=e=>{const n=e.parentNode;n&&n.removeChild(e)},R0=e=>{const n=Mt(e);return{count:e.length-n.length,text:n}},M0=e=>{let n;for(;(n=e.data.lastIndexOf(fe))!==-1;)e.deleteData(n,1)},Np=(e,n)=>(xg(e),n),Xy=(e,n)=>{const o=R0(e.data.substr(0,n.offset())),r=R0(e.data.substr(n.offset()));return(o.text+r.text).length>0?(M0(e),Ne(e,n.offset()-o.count)):n},N0=(e,n)=>{const o=n.container(),r=Ue(Cs(o.childNodes),e).map(c=>cT2(e)&&n.container()===e?Xy(e,n):Np(e,n),A2=(e,n)=>n.container()===e.parentNode?N0(e,n):Np(e,n),O2=(e,n)=>Ne.isTextPosition(n)?E2(e,n):A2(e,n),xg=e=>{$T(e)&&ys(e)&&(Er(e)?e.removeAttribute("data-mce-caret"):Gh(e)),T2(e)&&(M0(e),e.data.length===0&&Gh(e))},z2=Ls,Kh=ma,FT=Ac,B0="*[contentEditable=false],video,audio,embed,object",D2=(e,n,o)=>{const r=j_(n.getBoundingClientRect(),o);let c,u;if(e.tagName==="BODY"){const b=e.ownerDocument.documentElement;c=e.scrollLeft||b.scrollLeft,u=e.scrollTop||b.scrollTop}else{const b=e.getBoundingClientRect();c=e.scrollLeft-b.left,u=e.scrollTop-b.top}r.left+=c,r.right+=c,r.top+=u,r.bottom+=u,r.width=1;let m=n.offsetWidth-n.clientWidth;return m>0&&(o&&(m*=-1),r.left+=m,r.right+=m),r},IT=e=>{var n,o;const r=Tc(ue.fromDom(e),B0);for(let c=0;c{const c=oc();let u,m;const b=Pl(e),v=e.dom,x=(G,te)=>{let xe;if(M(),FT(te))return null;if(o(te)){const we=au(b,te,G),De=D2(n,te,G);v.setStyle(we,"top",De.top),m=we;const He=v.create("div",{class:"mce-visual-caret","data-mce-bogus":"all"});v.setStyles(He,{...De}),v.add(n,He),c.set({caret:He,element:te,before:G}),G&&v.addClass(He,"mce-visual-caret-before"),D(),xe=te.ownerDocument.createRange(),xe.setStart(we,0),xe.setEnd(we,0)}else return m=Ni(te,G),xe=te.ownerDocument.createRange(),Yh(m.nextSibling)?(xe.setStart(m,0),xe.setEnd(m,0)):(xe.setStart(m,1),xe.setEnd(m,1)),xe;return xe},M=()=>{IT(n),m&&(xg(m),m=null),c.on(G=>{v.remove(G.caret),c.clear()}),u&&(clearInterval(u),u=void 0)},D=()=>{u=setInterval(()=>{c.on(G=>{r()?v.toggleClass(G.caret,"mce-visual-caret-hidden"):v.addClass(G.caret,"mce-visual-caret-hidden")})},500)};return{show:x,hide:M,getCss:()=>".mce-visual-caret {position: absolute;background-color: black;background-color: currentcolor;}.mce-visual-caret-hidden {display: none;}*[data-mce-caret] {position: absolute;left: -1000px;right: auto;top: 0;margin: 0;padding: 0;}",reposition:()=>{c.on(G=>{const te=D2(n,G.element,G.before);v.setStyles(G.caret,{...te})})},destroy:()=>clearInterval(u)}},Jy=()=>_s.browser.isFirefox(),Yh=e=>z2(e)||Kh(e),xf=e=>(Yh(e)||Yr(e)&&Jy())&&sf(ue.fromDom(e)).exists(Jo),HT=Ys,P0=Ls,R2=ma,Xc=Qm("display","block table table-cell table-caption list-item"),M2=ys,Tg=No,VT=dn,Xh=Bt,N2=bi,Bp=e=>e>0,Eg=e=>e<0,Jh=(e,n)=>{let o;for(;o=e(n);)if(!Tg(o))return o;return null},pm=(e,n,o,r,c)=>{const u=new $a(e,r),m=P0(e)||Tg(e);let b;if(Eg(n)){if(m&&(b=Jh(u.prev.bind(u),!0),o(b)))return b;for(;b=Jh(u.prev.bind(u),c);)if(o(b))return b}if(Bp(n)){if(m&&(b=Jh(u.next.bind(u),!0),o(b)))return b;for(;b=Jh(u.next.bind(u),c);)if(o(b))return b}return null},UT=(e,n)=>{const o=c=>HT(c.dom),r=c=>c.dom===n;return vr(ue.fromDom(e),o,r).map(c=>c.dom).getOr(n)},Ka=(e,n)=>{for(;e&&e!==n;){if(Xc(e))return e;e=e.parentNode}return null},hl=(e,n,o)=>Ka(e.container(),o)===Ka(n.container(),o),Qy=(e,n)=>{if(!n)return I.none();const o=n.container(),r=n.offset();return VT(o)?I.from(o.childNodes[r+e]):I.none()},B2=(e,n)=>{var o;const c=((o=n.ownerDocument)!==null&&o!==void 0?o:document).createRange();return e?(c.setStartBefore(n),c.setEndBefore(n)):(c.setStartAfter(n),c.setEndAfter(n)),c},P2=(e,n,o)=>Ka(n,e)===Ka(o,e),$0=(e,n,o)=>{const r=e?"previousSibling":"nextSibling";let c=o;for(;c&&c!==n;){let u=c[r];if(u&&M2(u)&&(u=u[r]),P0(u)||R2(u)){if(P2(n,u,c))return u;break}if(N2(u))break;c=c.parentNode}return null},Ag=Ye(B2,!0),Qh=Ye(B2,!1),Og=(e,n,o)=>{let r;const c=Ye($0,!0,n),u=Ye($0,!1,n),m=o.startContainer,b=o.startOffset;if(No(m)){const v=Xh(m)?m.parentNode:m,x=v.getAttribute("data-mce-caret");if(x==="before"&&(r=v.nextSibling,xf(r)))return Ag(r);if(x==="after"&&(r=v.previousSibling,xf(r)))return Qh(r)}if(!o.collapsed)return o;if(Bt(m)){if(M2(m)){if(e===1){if(r=u(m),r)return Ag(r);if(r=c(m),r)return Qh(r)}if(e===-1){if(r=c(m),r)return Qh(r);if(r=u(m),r)return Ag(r)}return o}if(kd(m)&&b>=m.data.length-1)return e===1&&(r=u(m),r)?Ag(r):o;if(df(m)&&b<=1)return e===-1&&(r=c(m),r)?Qh(r):o;if(b===m.data.length)return r=u(m),r?Ag(r):o;if(b===0)return r=c(m),r?Qh(r):o}return o},D5=(e,n)=>Qy(e?0:-1,n).filter(P0),Pp=(e,n,o)=>{const r=Og(e,n,o);return e===-1?Ne.fromRangeStart(r):Ne.fromRangeEnd(r)},eb=e=>I.from(e.getNode()).map(ue.fromDom),zg=e=>I.from(e.getNode(!0)).map(ue.fromDom),F0=(e,n)=>{let o=n;for(;o=e(o);)if(o.isVisible())return o;return o},$p=(e,n)=>{const o=hl(e,n);return!o&&Vr(e.getNode())?!0:o};var hc;(function(e){e[e.Backwards=-1]="Backwards",e[e.Forwards=1]="Forwards"})(hc||(hc={}));const I0=Ls,Wu=Bt,Dd=dn,hm=Vr,Dg=bi,e1=Av,t1=Bi,jT=(e,n)=>{const o=[];let r=e;for(;r&&r!==n;)o.push(r),r=r.parentNode;return o},n1=(e,n)=>e.hasChildNodes()&&n{if(Bp(e)){if(Dg(n.previousSibling)&&!Wu(n.previousSibling))return Ne.before(n);if(Wu(n))return Ne(n,0)}if(Eg(e)){if(Dg(n.nextSibling)&&!Wu(n.nextSibling))return Ne.after(n);if(Wu(n))return Ne(n,n.data.length)}return Eg(e)?hm(n)?Ne.before(n):Ne.after(n):Ne.before(n)},$2=(e,n)=>{const o=n.nextSibling;return o&&Dg(o)?Wu(o)?Ne(o,0):Ne.before(o):o1(hc.Forwards,Ne.after(n),e)},o1=(e,n,o)=>{let r,c,u,m;if(!Dd(o)||!n)return null;if(n.isEqual(Ne.after(o))&&o.lastChild){if(m=Ne.after(o.lastChild),Eg(e)&&Dg(o.lastChild)&&Dd(o.lastChild))return hm(o.lastChild)?Ne.before(o.lastChild):m}else m=n;const b=m.container();let v=m.offset();if(Wu(b)){if(Eg(e)&&v>0)return Ne(b,--v);if(Bp(e)&&v0&&(c=n1(b,v-1),Dg(c)))return!e1(c)&&(u=pm(c,e,t1,c),u)?Wu(u)?Ne(u,u.data.length):Ne.after(u):Wu(c)?Ne(c,c.data.length):Ne.before(c);if(Bp(e)&&v({next:n=>o1(hc.Forwards,n,e),prev:n=>o1(hc.Backwards,n,e)}),WT=(e,n,o)=>{const r=e?Ne.before(o):Ne.after(o);return Il(e,n,r)},ZT=e=>Vr(e)?Ne.before(e):Ne.after(e),L0=e=>Ne.isTextPosition(e)?e.offset()===0:bi(e.getNode()),H0=e=>{if(Ne.isTextPosition(e)){const n=e.container();return e.offset()===n.data.length}else return bi(e.getNode(!0))},nb=(e,n)=>!Ne.isTextPosition(e)&&!Ne.isTextPosition(n)&&e.getNode()===n.getNode(!0),F2=e=>!Ne.isTextPosition(e)&&Vr(e.getNode()),I2=(e,n,o)=>e?!nb(n,o)&&!F2(n)&&H0(n)&&L0(o):!nb(o,n)&&L0(n)&&H0(o),Il=(e,n,o)=>{const r=gu(n);return I.from(e?r.next(o):r.prev(o))},s1=(e,n,o)=>Il(e,n,o).bind(r=>hl(o,r,n)&&I2(e,o,r)?Il(e,n,r):I.some(r)),L2=(e,n,o,r)=>s1(e,n,o).bind(c=>r(c)?L2(e,n,c,r):I.some(c)),Rd=(e,n)=>{const o=e?n.firstChild:n.lastChild;return Bt(o)?I.some(Ne(o,e?0:o.data.length)):o?bi(o)?I.some(e?Ne.before(o):ZT(o)):WT(e,n,o):I.none()},bl=Ye(Il,!0),pu=Ye(Il,!1),Qi=Ye(Rd,!0),bm=Ye(Rd,!1),ym="_mce_caret",oa=e=>dn(e)&&e.id===ym,Tf=(e,n)=>{let o=n;for(;o&&o!==e;){if(oa(o))return o;o=o.parentNode}return null},ob=e=>q(e.start),Rg=e=>Un(e,"rng"),r1=e=>Un(e,"id"),a1=e=>Un(e,"name"),V0=e=>wt.isArray(e.start),c1=e=>!a1(e)&&xt(e.forward)?e.forward:!0,H2=(e,n)=>(dn(n)&&e.isBlock(n)&&!n.innerHTML&&(n.innerHTML='
    '),n),qT=(e,n)=>{const o=I.from(l0(e.getRoot(),n.start)),r=I.from(l0(e.getRoot(),n.end));return ca(o,r,(c,u)=>{const m=e.createRng();return m.setStart(c.container(),c.offset()),m.setEnd(u.container(),u.offset()),{range:m,forward:c1(n)}})},Md=(e,n)=>{var o;const c=((o=e.ownerDocument)!==null&&o!==void 0?o:document).createTextNode(fe);e.appendChild(c),n.setStart(c,0),n.setEnd(c,0)},sb=e=>!e.hasChildNodes(),U0=(e,n)=>bm(e).fold(Te,o=>(n.setStart(o.container(),o.offset()),n.setEnd(o.container(),o.offset()),!0)),Nd=(e,n,o)=>sb(n)&&Tf(e,n)?(Md(n,o),!0):!1,j0=(e,n,o,r)=>{const c=o[n?"start":"end"],u=e.getRoot();if(c){let m=u,b=c[0];for(let v=c.length-1;m&&v>=1;v--){const x=m.childNodes;if(Nd(u,m,r))return!0;if(c[v]>x.length-1)return Nd(u,m,r)?!0:U0(m,r);m=x[c[v]]}Bt(m)&&(b=Math.min(c[0],m.data.length)),dn(m)&&(b=Math.min(c[0],m.childNodes.length)),n?r.setStart(m,b):r.setEnd(m,b)}return!0},rb=e=>Bt(e)&&e.data.length>0,vm=(e,n,o)=>{const r=e.get(o.id+"_"+n),c=r==null?void 0:r.parentNode,u=o.keep;if(r&&c){let m,b;if(n==="start"?u?r.hasChildNodes()?(m=r.firstChild,b=1):rb(r.nextSibling)?(m=r.nextSibling,b=0):rb(r.previousSibling)?(m=r.previousSibling,b=r.previousSibling.data.length):(m=c,b=e.nodeIndex(r)+1):(m=c,b=e.nodeIndex(r)):u?r.hasChildNodes()?(m=r.firstChild,b=1):rb(r.previousSibling)?(m=r.previousSibling,b=r.previousSibling.data.length):(m=c,b=e.nodeIndex(r)):(m=c,b=e.nodeIndex(r)),!u){const v=r.previousSibling,x=r.nextSibling;wt.each(wt.grep(r.childNodes),D=>{Bt(D)&&(D.data=D.data.replace(/\uFEFF/g,""))});let M;for(;M=e.get(o.id+"_"+n);)e.remove(M,!0);if(Bt(x)&&Bt(v)&&!_s.browser.isOpera()){const D=v.data.length;v.appendData(x.data),e.remove(x),m=v,b=D}}return I.some(Ne(m,b))}else return I.none()},W0=(e,n)=>{const o=e.createRng();return j0(e,!0,n,o)&&j0(e,!1,n,o)?I.some({range:o,forward:c1(n)}):I.none()},V2=(e,n)=>{const o=vm(e,"start",n),r=vm(e,"end",n);return ca(o,r.or(o),(c,u)=>{const m=e.createRng();return m.setStart(H2(e,c.container()),c.offset()),m.setEnd(H2(e,u.container()),u.offset()),{range:m,forward:c1(n)}})},Z0=(e,n)=>I.from(e.select(n.name)[n.index]).map(o=>{const r=e.createRng();return r.selectNode(o),{range:r,forward:!0}}),km=(e,n)=>{const o=e.dom;if(n){if(V0(n))return W0(o,n);if(ob(n))return qT(o,n);if(r1(n))return V2(o,n);if(a1(n))return Z0(o,n);if(Rg(n))return I.some({range:n.rng,forward:c1(n)})}return I.none()},GT=(e,n,o)=>fT(e,n,o),Bd=(e,n)=>{km(e,n).each(({range:o,forward:r})=>{e.setRng(o,r)})},yl=e=>dn(e)&&e.tagName==="SPAN"&&e.getAttribute("data-mce-type")==="bookmark",i1=(e=>n=>e===n)(tr),ab=e=>e!==""&&` \f +\r \v`.indexOf(e)!==-1,q0=e=>!ab(e)&&!i1(e)&&!tg(e),KT=e=>({value:j2(e)}),j2=e=>_n(e,"#").toUpperCase(),G0=e=>{const n=e.toString(16);return(n.length===1?"0"+n:n).toUpperCase()},l1=e=>{const n=G0(e.red)+G0(e.green)+G0(e.blue);return KT(n)},YT=/^\s*rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)\s*$/i,XT=/^\s*rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d?(?:\.\d+)?)\s*\)\s*$/i,u1=(e,n,o,r)=>({red:e,green:n,blue:o,alpha:r}),W2=(e,n,o,r)=>{const c=parseInt(e,10),u=parseInt(n,10),m=parseInt(o,10),b=parseFloat(r);return u1(c,u,m,b)},R5=e=>{if(e==="transparent")return I.some(u1(0,0,0,0));const n=YT.exec(e);if(n!==null)return I.some(W2(n[1],n[2],n[3],"1"));const o=XT.exec(e);return o!==null?I.some(W2(o[1],o[2],o[3],o[4])):I.none()},Fp=e=>R5(e).map(l1).map(n=>"#"+n.value).getOr(e),rs=e=>{const n=[];if(e)for(let o=0;o$n(e,n=>{const o=uu(n);return o?[ue.fromDom(o)]:[]}),Ip=e=>rs(e).length>1,K0=e=>Be(Ef(e),Mi),JT=e=>Tc(e,"td[data-mce-selected],th[data-mce-selected]"),cb=(e,n)=>{const o=JT(n);return o.length>0?o:K0(e)},Mg=e=>cb(rs(e.selection.getSel()),ue.fromDom(e.getBody())),Ng=(e,n)=>ve(e,"table",n),Y0=e=>{const n=e.startContainer,o=e.startOffset;return Bt(n)?o===0?I.some(ue.fromDom(n)):I.none():I.from(n.childNodes[o]).map(ue.fromDom)},X0=e=>{const n=e.endContainer,o=e.endOffset;return Bt(n)?o===n.data.length?I.some(ue.fromDom(n)):I.none():I.from(n.childNodes[o-1]).map(ue.fromDom)},J0=e=>md(e).fold(nt([e]),n=>[e].concat(J0(n))),Z2=e=>Oi(e).fold(nt([e]),n=>Ws(n)==="br"?qc(n).map(o=>[e].concat(Z2(o))).getOr([]):[e].concat(Z2(n))),ib=(e,n)=>ca(Y0(n),X0(n),(o,r)=>{const c=It(J0(e),Ye(Ps,o)),u=It(Z2(e),Ye(Ps,r));return c.isSome()&&u.isSome()}).getOr(!1),d1=(e,n,o,r)=>{const c=o,u=new $a(o,c),m=ks(e.schema.getMoveCaretBeforeOnEnterElements(),(v,x)=>!ne(["td","th","table"],x.toLowerCase()));let b=o;do{if(Bt(b)&&wt.trim(b.data).length!==0){r?n.setStart(b,0):n.setEnd(b,b.data.length);return}if(m[b.nodeName]){r?n.setStartBefore(b):b.nodeName==="BR"?n.setEndBefore(b):n.setEndAfter(b);return}}while(b=r?u.next():u.prev());c.nodeName==="BODY"&&(r?n.setStart(c,0):n.setEnd(c,c.childNodes.length))},Q0=e=>{const n=e.selection.getSel();return Ke(n)&&n.rangeCount>0},ek=(e,n)=>{const o=Mg(e);o.length>0?Y(o,r=>{const c=r.dom,u=e.dom.createRng();u.setStartBefore(c),u.setEndAfter(c),n(u,!0)}):n(e.selection.getRng(),!1)},f1=(e,n,o)=>{const r=e2(e,n);o(r),e.moveToBookmark(r)},lb=e=>ze(e==null?void 0:e.nodeType),Af=e=>dn(e)&&!yl(e)&&!oa(e)&&!gi(e),q2=(e,n)=>{if(Af(n)&&!/^(TD|TH)$/.test(n.nodeName)){const o=e.getAttrib(n,"data-mce-selected"),r=parseInt(o,10);return!isNaN(r)&&r>0}else return!1},Pd=e=>e.isContentEditable===!0,wm=(e,n,o)=>{const{selection:r,dom:c}=e,u=r.getNode(),m=Ls(u);f1(r,!0,()=>{n()}),m&&Ls(u)&&c.isChildOf(u,e.getBody())?e.selection.select(u):o(r.getStart())&&QT(c,r)},QT=(e,n)=>{var o,r;const c=n.getRng(),{startContainer:u,startOffset:m}=c,b=n.getNode();if(!q2(e,b)&&dn(u)){const v=u.childNodes,x=e.getRoot();let M;if(m{if(e){const r=n?"nextSibling":"previousSibling";for(e=o?e:e[r];e;e=e[r])if(dn(e)||!Hp(e))return e}},tk=(e,n)=>!!e.getTextBlockElements()[n.nodeName.toLowerCase()]||gf(e,n),Lp=(e,n,o)=>e.schema.isValidChild(n,o),Hp=(e,n=!1)=>{if(Ke(e)&&Bt(e)){const o=n?e.data.replace(/ /g," "):e.data;return Pi(o)}else return!1},eE=e=>Ke(e)&&Bt(e)&&e.length===0,tE=(e,n)=>{const o="[data-mce-cef-wrappable]",r=g2(e),c=hs(r)?o:`${o},${r}`;return $c(ue.fromDom(n),c)},K2=(e,n)=>{const o=e.dom;return Af(n)&&o.getContentEditable(n)==="false"&&tE(e,n)&&o.select('[contenteditable="true"]',n).length===0},_m=(e,n)=>ce(e)?e(n):(Ke(n)&&(e=e.replace(/%(\w+)/g,(o,r)=>n[r]||o)),e),nk=(e,n)=>(e=e||"",n=n||"",e=""+(e.nodeName||e),n=""+(n.nodeName||n),e.toLowerCase()===n.toLowerCase()),ok=(e,n)=>{if(zt(e))return null;{let o=String(e);return(n==="color"||n==="backgroundColor")&&(o=Fp(o)),n==="fontWeight"&&e===700&&(o="bold"),n==="fontFamily"&&(o=o.replace(/[\'\"]/g,"").replace(/,\s+/g,",")),o}},m1=(e,n,o)=>{const r=e.getStyle(n,o);return ok(r,o)},Bg=(e,n)=>{let o;return e.getParent(n,r=>dn(r)?(o=e.getStyle(r,"text-decoration"),!!o&&o!=="none"):!1),o},g1=(e,n,o)=>e.getParents(n,o,e.getRoot()),rn=(e,n,o)=>{const r=e.formatter.get(n);return Ke(r)&&Me(r,o)},bc=(e,n)=>rn(e,n,r=>{const c=u=>ce(u)||u.length>1&&u.charAt(0)==="%";return Me(["styles","attributes"],u=>ns(r,u).exists(m=>{const b=kt(m)?m:Rr(m);return Me(b,c)}))}),p1=(e,n,o)=>{const r=["inline","block","selector","attributes","styles","classes"],c=u=>ks(u,(m,b)=>Me(r,v=>v===b));return rn(e,n,u=>{const m=c(u);return rn(e,o,b=>{const v=c(b);return Ee(m,v)})})},Mr=e=>Cr(e,"block"),hu=e=>Mr(e)&&e.wrapper===!0,Y2=e=>Mr(e)&&e.wrapper!==!0,Li=e=>Cr(e,"selector"),Ya=e=>Cr(e,"inline"),h1=e=>Li(e)&&Ya(e)&&qr(ns(e,"mixed"),!0),b1=e=>Li(e)&&e.expand!==!1&&!Ya(e),Of=yl,X2=g1,sk=Hp,J2=tk,rk=e=>Vr(e)&&e.getAttribute("data-mce-bogus")&&!e.nextSibling,ak=(e,n)=>{let o=n;for(;o;){if(dn(o)&&e.getContentEditable(o))return e.getContentEditable(o)==="false"?o:n;o=o.parentNode}return n},ck=(e,n,o,r)=>{const c=n.data;if(e){for(let u=o;u>0;u--)if(r(c.charAt(u-1)))return u}else for(let u=o;uck(e,n,o,r=>i1(r)||ab(r)),y1=(e,n,o)=>ck(e,n,o,q0),db=(e,n,o,r,c,u)=>{let m;const b=e.getParent(o,e.isBlock)||n,v=(M,D,L)=>{const ee=Br(e),oe=c?ee.backwards:ee.forwards;return I.from(oe(M,D,(G,te)=>Of(G.parentNode)?-1:(m=G,L(c,G,te)),b))};return v(o,r,ub).bind(M=>u?v(M.container,M.offset+(c?-1:0),y1):I.some(M)).orThunk(()=>m?I.some({container:m,offset:c?0:m.length}):I.none())},fb=(e,n,o,r,c)=>{const u=r[c];Bt(r)&&hs(r.data)&&u&&(r=u);const m=X2(e,r);for(let b=0;b{var c;let u=o;const m=e.getRoot(),b=n[0];if(Mr(b)&&(u=b.wrapper?null:e.getParent(o,b.block,m)),!u){const v=(c=e.getParent(o,"LI,TD,TH"))!==null&&c!==void 0?c:m;u=e.getParent(Bt(o)?o.parentNode:o,x=>x!==m&&J2(e.schema,x),v)}if(u&&Mr(b)&&b.wrapper&&(u=X2(e,u,"ul,ol").reverse()[0]||u),!u)for(u=o;u&&u[r]&&!e.isBlock(u[r])&&(u=u[r],!nk(u,"br")););return u||o},Q2=(e,n,o,r)=>{const c=o.parentNode;return Ke(o[r])?!1:c===n||zt(c)||e.isBlock(c)?!0:Q2(e,n,c,r)},zf=(e,n,o,r,c)=>{let u=o;const m=c?"previousSibling":"nextSibling",b=e.getRoot();if(Bt(o)&&!sk(o)&&(c?r>0:rOf(e.parentNode)||Of(e),Pg=(e,n,o,r=!1)=>{let{startContainer:c,startOffset:u,endContainer:m,endOffset:b}=n;const v=o[0];return dn(c)&&c.hasChildNodes()&&(c=_f(c,u),Bt(c)&&(u=0)),dn(m)&&m.hasChildNodes()&&(m=_f(m,n.collapsed?b:b-1),Bt(m)&&(b=m.data.length)),c=ak(e,c),m=ak(e,m),$d(c)&&(c=Of(c)?c:c.parentNode,n.collapsed?c=c.previousSibling||c:c=c.nextSibling||c,Bt(c)&&(u=n.collapsed?c.length:0)),$d(m)&&(m=Of(m)?m:m.parentNode,n.collapsed?m=m.nextSibling||m:m=m.previousSibling||m,Bt(m)&&(b=n.collapsed?0:m.length)),n.collapsed&&(db(e,e.getRoot(),c,u,!0,r).each(({container:D,offset:L})=>{c=D,u=L}),db(e,e.getRoot(),m,b,!1,r).each(({container:D,offset:L})=>{m=D,b=L})),(Ya(v)||v.block_expand)&&((!Ya(v)||!Bt(c)||u===0)&&(c=zf(e,o,c,u,!0)),(!Ya(v)||!Bt(m)||b===m.data.length)&&(m=zf(e,o,m,b,!1))),b1(v)&&(c=fb(e,o,n,c,"previousSibling"),m=fb(e,o,n,m,"nextSibling")),(Mr(v)||Li(v))&&(c=v1(e,o,c,"previousSibling"),m=v1(e,o,m,"nextSibling"),Mr(v)&&(e.isBlock(c)||(c=zf(e,o,c,u,!0)),e.isBlock(m)||(m=zf(e,o,m,b,!1)))),dn(c)&&c.parentNode&&(u=e.nodeIndex(c),c=c.parentNode),dn(m)&&m.parentNode&&(b=e.nodeIndex(m)+1,m=m.parentNode),{startContainer:c,startOffset:u,endContainer:m,endOffset:b}},Vp=(e,n,o)=>{var r;const c=n.startOffset,u=_f(n.startContainer,c),m=n.endOffset,b=_f(n.endContainer,m-1),v=te=>{const xe=te[0];Bt(xe)&&xe===u&&c>=xe.data.length&&te.splice(0,1);const we=te[te.length-1];return m===0&&te.length>0&&we===b&&Bt(we)&&te.splice(te.length-1,1),te},x=(te,xe,we)=>{const De=[];for(;te&&te!==we;te=te[xe])De.push(te);return De},M=(te,xe)=>e.getParent(te,we=>we.parentNode===xe,xe),D=(te,xe,we)=>{const De=we?"nextSibling":"previousSibling";for(let He=te,ht=He.parentNode;He&&He!==xe;He=ht){ht=He.parentNode;const Jt=x(He===te?He:He[De],De);Jt.length&&(we||Jt.reverse(),o(v(Jt)))}};if(u===b)return o(v([u]));const L=(r=e.findCommonAncestor(u,b))!==null&&r!==void 0?r:e.getRoot();if(e.isChildOf(u,b))return D(u,L,!0);if(e.isChildOf(b,u))return D(b,L);const ee=M(u,L)||u,oe=M(b,L)||b;D(u,ee,!0);const G=x(ee===u?ee:ee.nextSibling,"nextSibling",oe===b?oe.nextSibling:oe);G.length&&o(v(G)),D(b,oe)},ik=['pre[class*=language-][contenteditable="false"]',"figure.image","div[data-ephox-embed-iri]","div.tiny-pageembed","div.mce-toc","div[data-mce-toc]"],nE=e=>Sc(e)&&ta(e)===fe,eC=(e,n,o,r)=>di(n).fold(()=>"skipping",c=>r==="br"||nE(n)?"valid":F_(n)?"existing":oa(n.dom)?"caret":Me(ik,u=>$c(n,u))?"valid-block":!Lp(e,o,r)||!Lp(e,Ws(c),o)?"invalid-child":"valid"),k1=(e,n)=>{const o=Pg(e.dom,n,[{inline:"span"}]);n.setStart(o.startContainer,o.startOffset),n.setEnd(o.endContainer,o.endOffset),e.selection.setRng(n)},tC=(e,n,o,r,c,u)=>{const{uid:m=n,...b}=o;Au(e,mg()),ea(e,`${wf()}`,m),ea(e,`${Sp()}`,r);const{attributes:v={},classes:x=[]}=c(m,b);if(uc(e,v),V_(e,x),u){x.length>0&&ea(e,`${lu()}`,x.join(","));const M=Es(v);M.length>0&&ea(e,`${xp()}`,M.join(","))}},w1=e=>{cd(e,mg()),Hr(e,`${wf()}`),Hr(e,`${Sp()}`),Hr(e,`${pl()}`);const n=ei(e,`${xp()}`).map(r=>r.split(",")).getOr([]),o=ei(e,`${lu()}`).map(r=>r.split(",")).getOr([]);Y(n,r=>Hr(e,r)),rT(e,o),Hr(e,`${lu()}`),Hr(e,`${xp()}`)},rc=(e,n,o,r,c)=>{const u=ue.fromTag("span",e);return tC(u,n,o,r,c,!1),u},bu=(e,n,o,r,c,u)=>{const m=[],b=rc(e.getDoc(),o,u,r,c),v=oc(),x=()=>{v.clear()},M=()=>v.get().getOrThunk(()=>{const oe=gg(b);return m.push(oe),v.set(oe),oe}),D=oe=>{Y(oe,L)},L=oe=>{switch(eC(e,oe,"span",Ws(oe))){case"invalid-child":{x();const te=ja(oe);D(te),x();break}case"valid-block":{x(),tC(oe,o,u,r,c,!0);break}case"valid":{const te=M();ly(oe,te);break}}},ee=oe=>{const G=Ae(oe,ue.fromDom);D(G)};return Vp(e.dom,n,oe=>{x(),ee(oe)}),m},Ll=(e,n,o,r)=>{e.undoManager.transact(()=>{const c=e.selection,u=c.getRng(),m=Mg(e).length>0,b=Xv("mce-annotation");if(u.collapsed&&!m&&k1(e,u),c.getRng().collapsed&&!m){const v=rc(e.getDoc(),b,r,n,o.decorate);bd(v,tr),c.getRng().insertNode(v.dom),c.select(v.dom)}else f1(c,!1,()=>{ek(e,v=>{bu(e,v,b,n,o.decorate,r)})})})},mb=e=>{const n=L_();sT(e,n);const o=oT(e,n),r=il("span"),c=u=>{Y(u,m=>{r(m)?Ea(m):w1(m)})};return{register:(u,m)=>{n.register(u,m)},annotate:(u,m)=>{n.lookup(u).each(b=>{Ll(e,u,b,m)})},annotationChanged:(u,m)=>{o.addListener(u,m)},remove:u=>{Kv(e,I.some(u)).each(({elements:m})=>{const b=e.selection.getBookmark();c(m),e.selection.moveToBookmark(b)})},removeAll:u=>{const m=e.selection.getBookmark();Nt(Yv(e,u),(b,v)=>{c(b)}),e.selection.moveToBookmark(m)},getAll:u=>{const m=Yv(e,u);return Ao(m,b=>Ae(b,v=>v.dom))}}},el=e=>({getBookmark:Ye(GT,e),moveToBookmark:Ye(Bd,e)});el.isBookmarkNode=yl;const nC=(e,n,o)=>o.collapsed?!1:Me(o.getClientRects(),r=>My(r,e,n)),lk=(e,n)=>e.dispatch("PreProcess",n),uk=(e,n)=>e.dispatch("PostProcess",n),dk=e=>{e.dispatch("remove")},oE=e=>{e.dispatch("detach")},fk=(e,n)=>{e.dispatch("SwitchMode",{mode:n})},sE=(e,n,o,r,c)=>{e.dispatch("ObjectResizeStart",{target:n,width:o,height:r,origin:c})},rE=(e,n,o,r,c)=>{e.dispatch("ObjectResized",{target:n,width:o,height:r,origin:c})},mk=e=>{e.dispatch("PreInit")},gk=e=>{e.dispatch("PostRender")},gr=e=>{e.dispatch("Init")},Fd=(e,n)=>{e.dispatch("PlaceholderToggle",{state:n})},pk=(e,n,o)=>{e.dispatch(n,o)},hk=(e,n,o,r)=>{e.dispatch("FormatApply",{format:n,node:o,vars:r})},bk=(e,n,o,r)=>{e.dispatch("FormatRemove",{format:n,node:o,vars:r})},yk=(e,n)=>e.dispatch("BeforeSetContent",n),vk=(e,n)=>e.dispatch("SetContent",n),kk=(e,n)=>e.dispatch("BeforeGetContent",n),wk=(e,n)=>e.dispatch("GetContent",n),aE=(e,n)=>{e.dispatch("AutocompleterStart",n)},oC=(e,n)=>{e.dispatch("AutocompleterUpdate",n)},cE=e=>{e.dispatch("AutocompleterEnd")},_k=(e,n,o)=>e.dispatch("PastePreProcess",{content:n,internal:o}),iE=(e,n,o)=>e.dispatch("PastePostProcess",{node:n,internal:o}),Cm=(e,n)=>e.dispatch("PastePlainTextToggle",{state:n}),On={BACKSPACE:8,DELETE:46,DOWN:40,ENTER:13,ESC:27,LEFT:37,RIGHT:39,SPACEBAR:32,TAB:9,UP:38,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,modifierPressed:e=>e.shiftKey||e.ctrlKey||e.altKey||On.metaKeyPressed(e),metaKeyPressed:e=>_s.os.isMacOS()||_s.os.isiOS()?e.metaKey:e.ctrlKey&&!e.altKey},Df="data-mce-selected",lE="table,img,figure.image,hr,video,span.mce-preview-object",Oa=Math.abs,ba=Math.round,Sm={nw:[0,0,-1,-1],ne:[1,0,1,-1],se:[1,1,1,1],sw:[0,1,-1,1]},_1=e=>e.type==="longpress"||e.type.indexOf("touch")===0,sC=(e,n)=>{const o=n.dom,r=n.getDoc(),c=document,u=n.getBody();let m,b,v,x,M,D,L,ee,oe,G,te,xe,we,De,He,ht,Jt;const Wt=an=>Ke(an)&&(py(an)||o.is(an,"figure.image")),et=an=>ma(an)||o.hasClass(an,"mce-preview-object"),Qe=(an,cs)=>{if(_1(an)){const is=an.touches[0];return Wt(an.target)&&!nC(is.clientX,is.clientY,cs)}else return Wt(an.target)&&!nC(an.clientX,an.clientY,cs)},pn=an=>{const cs=an.target;Qe(an,n.selection.getRng())&&!an.isDefaultPrevented()&&n.selection.select(cs)},jn=an=>o.hasClass(an,"mce-preview-object")&&Ke(an.firstElementChild)?[an,an.firstElementChild]:o.is(an,"figure.image")?[an.querySelector("img")]:[an],co=an=>{const cs=u2(n);return!cs||an.getAttribute("data-mce-resize")==="false"||an===n.getBody()?!1:o.hasClass(an,"mce-preview-object")&&Ke(an.firstElementChild)?$c(ue.fromDom(an.firstElementChild),cs):$c(ue.fromDom(an),cs)},Wo=an=>et(an)?o.create("img",{src:_s.transparentSrc}):an.cloneNode(!0),ms=(an,cs,is)=>{if(Ke(is)){const Mc=jn(an);Y(Mc,$r=>{$r.style[cs]||!n.schema.isValid($r.nodeName.toLowerCase(),cs)?o.setStyle($r,cs,is):o.setAttrib($r,cs,""+is)})}},Zs=(an,cs,is)=>{ms(an,"width",cs),ms(an,"height",is)},hr=an=>{let cs,is,Mc,$r,$o;cs=an.screenX-D,is=an.screenY-L,De=cs*x[2]+G,He=is*x[3]+te,De=De<5?5:De,He=He<5?5:He,(Wt(m)||et(m))&&d2(n)!==!1?Mc=!On.modifierPressed(an):Mc=On.modifierPressed(an),Mc&&(Oa(cs)>Oa(is)?(He=ba(De*xe),De=ba(He/xe)):(De=ba(He/xe),He=ba(De*xe))),Zs(b,De,He),$r=x.startPos.x+cs,$o=x.startPos.y+is,$r=$r>0?$r:0,$o=$o>0?$o:0,o.setStyles(v,{left:$r,top:$o,display:"block"}),v.innerHTML=De+" × "+He,x[2]<0&&b.clientWidth<=De&&o.setStyle(b,"left",ee+(G-De)),x[3]<0&&b.clientHeight<=He&&o.setStyle(b,"top",oe+(te-He)),cs=u.scrollWidth-ht,is=u.scrollHeight-Jt,cs+is!==0&&o.setStyles(v,{left:$r-cs,top:$o-is}),we||(sE(n,m,G,te,"corner-"+x.name),we=!0)},wa=()=>{const an=we;we=!1,an&&(ms(m,"width",De),ms(m,"height",He)),o.unbind(r,"mousemove",hr),o.unbind(r,"mouseup",wa),c!==r&&(o.unbind(c,"mousemove",hr),o.unbind(c,"mouseup",wa)),o.remove(b),o.remove(v),o.remove(M),Uc(m),an&&(rE(n,m,De,He,"corner-"+x.name),o.setAttrib(m,"style",o.getAttrib(m,"style"))),n.nodeChanged()},Uc=an=>{sn();const cs=o.getPos(an,u),is=cs.x,Mc=cs.y,$r=an.getBoundingClientRect(),$o=$r.width||$r.right-$r.left,Ms=$r.height||$r.bottom-$r.top;m!==an&&(Vt(),m=an,De=He=0);const or=n.dispatch("ObjectSelected",{target:an});co(an)&&!or.isDefaultPrevented()?Nt(Sm,(br,ua)=>{const Da=Xa=>{const Ju=jn(m)[0];D=Xa.screenX,L=Xa.screenY,G=Ju.clientWidth,te=Ju.clientHeight,xe=te/G,x=br,x.name=ua,x.startPos={x:$o*br[0]+is,y:Ms*br[1]+Mc},ht=u.scrollWidth,Jt=u.scrollHeight,M=o.add(u,"div",{class:"mce-resize-backdrop","data-mce-bogus":"all"}),o.setStyles(M,{position:"fixed",left:"0",top:"0",width:"100%",height:"100%"}),b=Wo(m),o.addClass(b,"mce-clonedresizable"),o.setAttrib(b,"data-mce-bogus","all"),b.contentEditable="false",o.setStyles(b,{left:is,top:Mc,margin:0}),Zs(b,$o,Ms),b.removeAttribute(Df),u.appendChild(b),o.bind(r,"mousemove",hr),o.bind(r,"mouseup",wa),c!==r&&(o.bind(c,"mousemove",hr),o.bind(c,"mouseup",wa)),v=o.add(u,"div",{class:"mce-resize-helper","data-mce-bogus":"all"},G+" × "+te)};let jr=o.get("mceResizeHandle"+ua);jr&&o.remove(jr),jr=o.add(u,"div",{id:"mceResizeHandle"+ua,"data-mce-bogus":"all",class:"mce-resizehandle",unselectable:!0,style:"cursor:"+ua+"-resize; margin:0; padding:0"}),o.bind(jr,"mousedown",Xa=>{Xa.stopImmediatePropagation(),Xa.preventDefault(),Da(Xa)}),br.elm=jr,o.setStyles(jr,{left:$o*br[0]+is-jr.offsetWidth/2,top:Ms*br[1]+Mc-jr.offsetHeight/2})}):Vt(!1)},kc=Ml(Uc,0),Vt=(an=!0)=>{kc.cancel(),sn(),m&&an&&m.removeAttribute(Df),Nt(Sm,(cs,is)=>{const Mc=o.get("mceResizeHandle"+is);Mc&&(o.unbind(Mc),o.remove(Mc))})},Bn=(an,cs)=>o.isChildOf(an,cs),Ts=an=>{if(we||n.removed||n.composing)return;const cs=an.type==="mousedown"?an.target:e.getNode(),is=oo(ue.fromDom(cs),lE).map($r=>$r.dom).filter($r=>o.isEditable($r.parentElement)).getOrUndefined(),Mc=Ke(is)?o.getAttrib(is,Df,"1"):"1";if(Y(o.select(`img[${Df}],hr[${Df}]`),$r=>{$r.removeAttribute(Df)}),Ke(is)&&Bn(is,u)){to();const $r=e.getStart(!0);if(Bn($r,is)&&Bn(e.getEnd(!0),is)){o.setAttrib(is,Df,Mc),kc.throttle(is);return}}Vt()},sn=()=>{Nt(Sm,an=>{an.elm&&(o.unbind(an.elm),delete an.elm)})},to=()=>{try{n.getDoc().execCommand("enableObjectResizing",!1,"false")}catch{}};return n.on("init",()=>{to(),n.on("NodeChange ResizeEditor ResizeWindow ResizeContent drop",Ts),n.on("keyup compositionend",an=>{m&&m.nodeName==="TABLE"&&Ts(an)}),n.on("hide blur",Vt),n.on("contextmenu longpress",pn,!0)}),n.on("remove",sn),{isResizable:co,showResizeRect:Uc,hideResizeRect:Vt,updateResizeRect:Ts,destroy:()=>{kc.cancel(),m=b=M=null}}},uE=(e,n)=>{n.fold(o=>{e.setStartBefore(o.dom)},(o,r)=>{e.setStart(o.dom,r)},o=>{e.setStartAfter(o.dom)})},fs=(e,n)=>{n.fold(o=>{e.setEndBefore(o.dom)},(o,r)=>{e.setEnd(o.dom,r)},o=>{e.setEndAfter(o.dom)})},rC=(e,n,o)=>{const r=e.document.createRange();return uE(r,n),fs(r,o),r},C1=(e,n,o,r,c)=>{const u=e.document.createRange();return u.setStart(n.dom,o),u.setEnd(r.dom,c),u},$g=fu.generate([{ltr:["start","soffset","finish","foffset"]},{rtl:["start","soffset","finish","foffset"]}]),aC=(e,n,o)=>n(ue.fromDom(o.startContainer),o.startOffset,ue.fromDom(o.endContainer),o.endOffset),dE=(e,n)=>n.match({domRange:o=>({ltr:nt(o),rtl:I.none}),relative:(o,r)=>({ltr:Hn(()=>rC(e,o,r)),rtl:Hn(()=>I.some(rC(e,r,o)))}),exact:(o,r,c,u)=>({ltr:Hn(()=>C1(e,o,r,c,u)),rtl:Hn(()=>I.some(C1(e,c,u,o,r)))})}),Ck=(e,n)=>{const o=n.ltr();return o.collapsed?n.rtl().filter(c=>c.collapsed===!1).map(c=>$g.rtl(ue.fromDom(c.endContainer),c.endOffset,ue.fromDom(c.startContainer),c.startOffset)).getOrThunk(()=>aC(e,$g.ltr,o)):aC(e,$g.ltr,o)},fE=(e,n)=>{const o=dE(e,n);return Ck(e,o)};$g.ltr,$g.rtl;const cC={create:(e,n,o,r)=>({start:e,soffset:n,finish:o,foffset:r})},Sk=(e,n,o)=>{var r,c;return I.from((c=(r=e.dom).caretPositionFromPoint)===null||c===void 0?void 0:c.call(r,n,o)).bind(u=>{if(u.offsetNode===null)return I.none();const m=e.dom.createRange();return m.setStart(u.offsetNode,u.offset),m.collapse(),I.some(m)})},xk=(e,n,o)=>{var r,c;return I.from((c=(r=e.dom).caretRangeFromPoint)===null||c===void 0?void 0:c.call(r,n,o))},iC=(()=>document.caretPositionFromPoint?Sk:document.caretRangeFromPoint?xk:I.none)(),N5=(e,n,o)=>{const r=ue.fromDom(e.document);return iC(r,n,o).map(c=>cC.create(ue.fromDom(c.startContainer),c.startOffset,ue.fromDom(c.endContainer),c.endOffset))},S1=fu.generate([{before:["element"]},{on:["element","offset"]},{after:["element"]}]),c7=(e,n,o,r)=>e.fold(n,o,r),mE=e=>e.fold(mo,mo,mo),gE=S1.before,B5=S1.on,_o=S1.after,Rf={before:gE,on:B5,after:_o,cata:c7,getStart:mE},Tk=fu.generate([{domRange:["rng"]},{relative:["startSitu","finishSitu"]},{exact:["start","soffset","finish","foffset"]}]),pE=e=>Tk.exact(e.start,e.soffset,e.finish,e.foffset),gb=e=>e.match({domRange:n=>ue.fromDom(n.startContainer),relative:(n,o)=>Rf.getStart(n),exact:(n,o,r,c)=>n}),P5=Tk.domRange,x1=Tk.relative,hE=Tk.exact,bE=e=>{const n=gb(e);return xl(n)},Ek=cC.create,Up={domRange:P5,relative:x1,exact:hE,exactFromRange:pE,getWin:bE,range:Ek},jp=(e,n)=>{const o=Ws(e);return o==="input"?Rf.after(e):ne(["br","img"],o)?n===0?Rf.before(e):Rf.after(e):Rf.on(e,n)},Ak=(e,n)=>{const o=e.fold(Rf.before,jp,Rf.after),r=n.fold(Rf.before,jp,Rf.after);return Up.relative(o,r)},T1=(e,n,o,r)=>{const c=jp(e,n),u=jp(o,r);return Up.relative(c,u)},Ok=e=>e.match({domRange:n=>{const o=ue.fromDom(n.startContainer),r=ue.fromDom(n.endContainer);return T1(o,n.startOffset,r,n.endOffset)},relative:Ak,exact:T1}),zk=(e,n)=>{const r=(n||document).createDocumentFragment();return Y(e,c=>{r.appendChild(c.dom)}),ue.fromDom(r)},yE=e=>{const n=Up.getWin(e).dom,o=(c,u,m,b)=>C1(n,c,u,m,b),r=Ok(e);return fE(n,r).match({ltr:o,rtl:o})},E1=(e,n,o)=>N5(e,n,o),Dk=(e,n,o)=>{const r=xl(ue.fromDom(o));return E1(r.dom,e,n).map(c=>{const u=o.createRange();return u.setStart(c.start.dom,c.soffset),u.setEnd(c.finish.dom,c.foffset),u}).getOrUndefined()},Rk=(e,n)=>Ke(e)&&Ke(n)&&e.startContainer===n.startContainer&&e.startOffset===n.startOffset&&e.endContainer===n.endContainer&&e.endOffset===n.endOffset,Rs=(e,n,o)=>{let r=e;for(;r&&r!==n;){if(o(r))return r;r=r.parentNode}return null},lC=(e,n,o)=>Rs(e,n,o)!==null,Id=(e,n,o)=>lC(e,n,r=>r.nodeName===o),Zu=(e,n)=>ys(e)&&!lC(e,n,oa),pb=(e,n,o)=>{const r=n.parentNode;if(r){const c=new $a(n,e.getParent(r,e.isBlock)||e.getRoot());let u;for(;u=c[o?"prev":"next"]();)if(Vr(u))return!0}return!1},tl=(e,n)=>{var o;return((o=e.previousSibling)===null||o===void 0?void 0:o.nodeName)===n},A1=(e,n)=>{let o=n;for(;o&&o!==e;){if(Ls(o))return!0;o=o.parentNode}return!1},Fg=(e,n,o,r,c)=>{const u=e.getRoot(),m=e.schema.getNonEmptyElements(),b=c.parentNode;let v,x;if(!b)return I.none();const M=e.getParent(b,e.isBlock)||u;if(r&&Vr(c)&&n&&e.isEmpty(M))return I.some(Ne(b,e.nodeIndex(c)));const D=new $a(c,M);for(;x=D[r?"prev":"next"]();){if(e.getContentEditableParent(x)==="false"||Zu(x,u))return I.none();if(Bt(x)&&x.data.length>0)return Id(x,u,"A")?I.none():I.some(Ne(x,r?x.data.length:0));if(e.isBlock(x)||m[x.nodeName.toLowerCase()])return I.none();v=x}return Ri(v)?I.none():o&&v?I.some(Ne(v,0)):I.none()},hb=(e,n,o,r)=>{const c=e.getRoot();let u,m=!1,b=o?r.startContainer:r.endContainer,v=o?r.startOffset:r.endOffset;const x=dn(b)&&v===b.childNodes.length,M=e.schema.getNonEmptyElements();let D=o;if(ys(b))return I.none();if(dn(b)&&v>b.childNodes.length-1&&(D=!1),nm(b)&&(b=c,v=0),b===c){if(D&&(u=b.childNodes[v>0?v-1:0],u&&(ys(u)||M[u.nodeName]||Yr(u))))return I.none();if(b.hasChildNodes()){if(v=Math.min(!D&&v>0?v-1:v,b.childNodes.length-1),b=b.childNodes[v],v=Bt(b)&&x?b.data.length:0,!n&&b===c.lastChild&&Yr(b)||A1(c,b)||ys(b))return I.none();if(b.hasChildNodes()&&!Yr(b)){u=b;const L=new $a(b,c);do{if(Ls(u)||ys(u)){m=!1;break}if(Bt(u)&&u.data.length>0){v=D?0:u.data.length,b=u,m=!0;break}if(M[u.nodeName.toLowerCase()]&&!om(u)){v=e.nodeIndex(u),b=u.parentNode,D||v++,m=!0;break}}while(u=D?L.next():L.prev())}}}return n&&(Bt(b)&&v===0&&Fg(e,x,n,!0,b).each(L=>{b=L.container(),v=L.offset(),m=!0}),dn(b)&&(u=b.childNodes[v],u||(u=b.childNodes[v-1]),u&&Vr(u)&&!tl(u,"A")&&!pb(e,u,!1)&&!pb(e,u,!0)&&Fg(e,x,n,!0,u).each(L=>{b=L.container(),v=L.offset(),m=!0}))),D&&!n&&Bt(b)&&v===b.data.length&&Fg(e,x,n,!1,b).each(L=>{b=L.container(),v=L.offset(),m=!0}),m&&b?I.some(Ne(b,v)):I.none()},Mf=(e,n)=>{const o=n.collapsed,r=n.cloneRange(),c=Ne.fromRangeStart(n);return hb(e,o,!0,r).each(u=>{(!o||!Ne.isAbove(c,u))&&r.setStart(u.container(),u.offset())}),o||hb(e,o,!1,r).each(u=>{r.setEnd(u.container(),u.offset())}),o&&r.collapse(!0),Rk(n,r)?I.none():I.some(r)},Mk=(e,n)=>e.splitText(n),O1=e=>{let n=e.startContainer,o=e.startOffset,r=e.endContainer,c=e.endOffset;if(n===r&&Bt(n)){if(o>0&&oo){c=c-o;const u=Mk(r,c).previousSibling;n=r=u,c=u.data.length,o=0}else c=0}else if(Bt(n)&&o>0&&o0&&c({walk:(u,m)=>Vp(e,u,m),split:O1,expand:(u,m={type:"word"})=>{if(m.type==="word"){const b=Pg(e,u,[{inline:"span"}]),v=e.createRng();return v.setStart(b.startContainer,b.startOffset),v.setEnd(b.endContainer,b.endOffset),v}return u},normalize:u=>Mf(e,u).fold(Te,m=>(u.setStart(m.startContainer,m.startOffset),u.setEnd(m.endContainer,m.endOffset),!0))});Wp.compareRanges=Rk,Wp.getCaretRangeFromPoint=Dk,Wp.getSelectedNode=uu,Wp.getNode=_f;const Ss=((e,n)=>{const o=(b,v)=>{if(!ze(v)&&!v.match(/^[0-9]+$/))throw new Error(e+".set accepts only positive integer values. Value was "+v);const x=b.dom;Vs(x)&&(x.style[e]=v+"px")},r=b=>{const v=n(b);if(v<=0||v===null){const x=ll(b,e);return parseFloat(x)||0}return v},c=r,u=(b,v)=>he(v,(x,M)=>{const D=ll(b,M),L=D===void 0?0:parseInt(D,10);return isNaN(L)?x:x+L},0);return{set:o,get:r,getOuter:c,aggregate:u,max:(b,v,x)=>{const M=u(b,x);return v>M?v-M:0}}})("height",e=>{const n=e.dom;return Tl(e)?n.getBoundingClientRect().height:n.offsetHeight}),yu=e=>Ss.get(e),Ig=()=>ue.fromDom(document),uC=(e,n)=>e.view(n).fold(nt([]),r=>{const c=e.owner(r),u=uC(e,c);return[r].concat(u)}),bb=(e,n)=>{const o=n.owner(e);return uC(n,o)};var fC=Object.freeze({__proto__:null,view:e=>{var n;return(e.dom===document?I.none():I.from((n=e.dom.defaultView)===null||n===void 0?void 0:n.frameElement)).map(ue.fromDom)},owner:e=>ti(e)});const Nk=e=>{const n=Ig(),o=_h(n),r=bb(e,fC),c=El(e),u=ke(r,(m,b)=>{const v=El(b);return{left:m.left+v.left,top:m.top+v.top}},{left:0,top:0});return ul(u.left+c.left+o.left,u.top+c.top+o.top)},Bk=e=>Ws(e)==="textarea",Zp=(e,n)=>e.dispatch("ScrollIntoView",n).isDefaultPrevented(),Lg=(e,n)=>{e.dispatch("AfterScrollIntoView",n)},mC=(e,n)=>{const o=ja(e);if(o.length===0||Bk(e))return{element:e,offset:n};if(n{const o=fy(e),r=yu(e);return{element:e,bottom:o.top+r,height:r,pos:o,cleanup:n}},f=(e,n)=>{const o=mC(e,n),r=ue.fromHtml(''+fe+"");return Is(o.element,r),l(r,()=>fr(r))},p=e=>l(ue.fromDom(e),ft),y=(e,n,o,r)=>{j(e,(c,u)=>O(e,n,o,r),o)},S=(e,n,o,r,c)=>{const u={elm:r.element.dom,alignToTop:c};if(Zp(e,u))return;const m=_h(n).top;o(n,m,r,c),Lg(e,u)},O=(e,n,o,r)=>{const c=ue.fromDom(e.getBody()),u=ue.fromDom(e.getDoc());iy(c);const m=f(ue.fromDom(o.startContainer),o.startOffset);S(e,u,n,m,r),m.cleanup()},P=(e,n,o,r)=>{const c=ue.fromDom(e.getDoc());S(e,c,o,p(n),r)},j=(e,n,o)=>{const r=o.startContainer,c=o.startOffset,u=o.endContainer,m=o.endOffset;n(ue.fromDom(r),ue.fromDom(u));const b=e.dom.createRng();b.setStart(r,c),b.setEnd(u,m),e.selection.setRng(o)},Q=(e,n,o,r)=>{const c=e.pos;if(o)Al(c.left,c.top,r);else{const u=c.top-n+e.height;Al(c.left,u,r)}},me=(e,n,o,r,c)=>{const u=o+n,m=r.pos.top,b=r.bottom,v=b-m>=o;mu?Q(r,o,v?c!==!1:c===!0,e):b>u&&!v&&Q(r,o,c===!0,e)},Re=(e,n,o,r)=>{const c=xl(e).dom.innerHeight;me(e,n,c,o,r)},Rt=(e,n,o,r)=>{const c=xl(e).dom.innerHeight;me(e,n,c,o,r);const u=Nk(o.element),m=up(window);u.topm.bottom&&uf(o.element,r===!0)},nn=(e,n,o)=>y(e,Re,n,o),Yt=(e,n,o)=>P(e,n,Re,o),pt=(e,n,o)=>y(e,Rt,n,o),en=(e,n,o)=>P(e,n,Rt,o),gt=(e,n,o)=>{(e.inline?Yt:en)(e,n,o)},Cn=(e,n,o)=>{(e.inline?nn:pt)(e,n,o)},yo=e=>e.dom.focus(),Vo=e=>{const n=Gi(e).dom;return e.dom===n.activeElement},pr=(e=Ig())=>I.from(e.dom.activeElement).map(ue.fromDom),Dc=e=>pr(Gi(e)).filter(n=>e.dom.contains(n.dom)),ia=(e,n)=>{const o=Sc(n)?ta(n).length:ja(n).length+1;return e>o?o:e<0?0:e},nl=e=>Up.range(e.start,ia(e.soffset,e.start),e.finish,ia(e.foffset,e.finish)),xm=(e,n)=>!qn(n.dom)&&(Ai(e,n)||Ps(e,n)),yb=e=>n=>xm(e,n.start)&&xm(e,n.finish),Pk=e=>e.inline||_s.browser.isFirefox(),z1=e=>Up.range(ue.fromDom(e.startContainer),e.startOffset,ue.fromDom(e.endContainer),e.endOffset),nr=e=>{const n=e.getSelection();return(!n||n.rangeCount===0?I.none():I.from(n.getRangeAt(0))).map(z1)},wi=e=>{const n=xl(e);return nr(n.dom).filter(yb(e))},_i=(e,n)=>I.from(n).filter(yb(e)).map(nl),vu=e=>{const n=document.createRange();try{return n.setStart(e.start.dom,e.soffset),n.setEnd(e.finish.dom,e.foffset),I.some(n)}catch{return I.none()}},ol=e=>{const n=Pk(e)?wi(ue.fromDom(e.getBody())):I.none();e.bookmark=n.isSome()?n:e.bookmark},Tm=e=>(e.bookmark?e.bookmark:I.none()).bind(o=>_i(ue.fromDom(e.getBody()),o)).bind(vu),Ci=e=>{Tm(e).each(n=>e.selection.setRng(n))},qp={isEditorUIElement:e=>{const n=e.className.toString();return n.indexOf("tox-")!==-1||n.indexOf("mce-")!==-1}},Hl=(e,n)=>(ze(n)||(n=0),setTimeout(e,n)),Vc=(e,n)=>(ze(n)||(n=0),setInterval(e,n)),Vl={setEditorTimeout:(e,n,o)=>Hl(()=>{e.removed||n()},o),setEditorInterval:(e,n,o)=>{const r=Vc(()=>{e.removed?clearInterval(r):n()},o);return r}},pC=e=>e.type==="nodechange"&&e.selectionChange,hC=(e,n)=>{const o=()=>{n.throttle()};Ar.DOM.bind(document,"mouseup",o),e.on("remove",()=>{Ar.DOM.unbind(document,"mouseup",o)})},vE=(e,n)=>{e.on("mouseup touchend",o=>{n.throttle()})},kE=(e,n)=>{vE(e,n),e.on("keyup NodeChange AfterSetSelectionRange",o=>{pC(o)||ol(e)})},$k=e=>{const n=Ml(()=>{ol(e)},0);e.on("init",()=>{e.inline&&hC(e,n),kE(e,n)}),e.on("remove",()=>{n.cancel()})};let Gp;const Hg=Ar.DOM,$5=e=>dn(e)&&qp.isEditorUIElement(e),bC=e=>{const n=e.classList;return n!==void 0?n.contains("tox-edit-area")||n.contains("tox-edit-area__iframe")||n.contains("mce-content-body"):!1},vb=(e,n)=>{const o=qh(e);return Hg.getParent(n,c=>$5(c)||(o?e.dom.is(c,o):!1))!==null},wE=e=>{try{const n=Gi(ue.fromDom(e.getElement()));return pr(n).fold(()=>document.body,o=>o.dom)}catch{return document.body}},l7=(e,n)=>{const o=n.editor;$k(o);const r=(c,u)=>{if(C2(c)&&c.inline!==!0){const m=ue.fromDom(c.getContainer());u(m,"tox-edit-focus")}};o.on("focusin",()=>{const c=e.focusedEditor;bC(wE(o))&&r(o,Au),c!==o&&(c&&c.dispatch("blur",{focusedEditor:o}),e.setActive(o),e.focusedEditor=o,o.dispatch("focus",{blurredEditor:c}),o.focus(!0))}),o.on("focusout",()=>{Vl.setEditorTimeout(o,()=>{const c=e.focusedEditor;(!bC(wE(o))||c!==o)&&r(o,cd),!vb(o,wE(o))&&c===o&&(o.dispatch("blur",{focusedEditor:null}),e.focusedEditor=null)})}),Gp||(Gp=c=>{const u=e.activeEditor;u&&af(c).each(m=>{const b=m;b.ownerDocument===document&&b!==document.body&&!vb(u,b)&&e.focusedEditor===u&&(u.dispatch("blur",{focusedEditor:null}),e.focusedEditor=null)})},Hg.bind(document,"focusin",Gp))},_E=(e,n)=>{e.focusedEditor===n.editor&&(e.focusedEditor=null),!e.activeEditor&&Gp&&(Hg.unbind(document,"focusin",Gp),Gp=null)},u7=e=>{e.on("AddEditor",Ye(l7,e)),e.on("RemoveEditor",Ye(_E,e))},F5=(e,n)=>e.dom.getParent(n,o=>e.dom.getContentEditable(o)==="true"),I5=e=>e.collapsed?I.from(_f(e.startContainer,e.startOffset)).map(ue.fromDom):I.none(),L5=(e,n)=>I5(n).bind(o=>hi(o)?I.some(o):Ai(e,o)?I.none():I.some(e)),H5=(e,n)=>{L5(ue.fromDom(e.getBody()),n).bind(o=>Qi(o.dom)).fold(()=>{e.selection.normalize()},o=>e.selection.setRng(o.toRange()))},CE=e=>{if(e.setActive)try{e.setActive()}catch{e.focus()}else e.focus()},d7=e=>Vo(e)||Dc(e).isSome(),f7=e=>Ke(e.iframeElement)&&Vo(ue.fromDom(e.iframeElement)),yC=e=>{const n=e.getBody();return n&&d7(ue.fromDom(n))},V5=e=>{const n=Gi(ue.fromDom(e.getElement()));return pr(n).filter(o=>!bC(o.dom)&&vb(e,o.dom)).isSome()},Kp=e=>e.inline?yC(e):f7(e),U5=e=>Kp(e)||V5(e),j5=e=>{const n=e.selection,o=e.getBody();let r=n.getRng();e.quirks.refreshContentEditable(),Ke(e.bookmark)&&!Kp(e)&&Tm(e).each(u=>{e.selection.setRng(u),r=u});const c=F5(e,n.getNode());if(c&&e.dom.isChildOf(c,o)){CE(c),H5(e,r),SE(e);return}e.inline||(_s.browser.isOpera()||CE(o),e.getWin().focus()),(_s.browser.isFirefox()||e.inline)&&(CE(o),H5(e,r)),SE(e)},SE=e=>e.editorManager.setActive(e),m7=(e,n)=>{e.removed||(n?SE(e):j5(e))},W5=(e,n,o,r,c)=>{const u=o?n.startContainer:n.endContainer,m=o?n.startOffset:n.endOffset;return I.from(u).map(ue.fromDom).map(b=>!r||!n.collapsed?fd(b,c(b,m)).getOr(b):b).bind(b=>er(b)?I.some(b):di(b).filter(er)).map(b=>b.dom).getOr(e)},Z5=(e,n,o=!1)=>W5(e,n,!0,o,(r,c)=>Math.min(Fc(r),c)),q5=(e,n,o=!1)=>W5(e,n,!1,o,(r,c)=>c>0?c-1:c),G5=(e,n)=>{const o=e;for(;e&&Bt(e)&&e.length===0;)e=n?e.nextSibling:e.previousSibling;return e||o},g7=(e,n)=>{if(!n)return e;let o=n.startContainer,r=n.endContainer;const c=n.startOffset,u=n.endOffset;let m=n.commonAncestorContainer;n.collapsed||(o===r&&u-c<2&&o.hasChildNodes()&&(m=o.childNodes[c]),Bt(o)&&Bt(r)&&(o.length===c?o=G5(o.nextSibling,!0):o=o.parentNode,u===0?r=G5(r.previousSibling,!1):r=r.parentNode,o&&o===r&&(m=o)));const b=Bt(m)?m.parentNode:m;return dn(b)?b:e},p7=(e,n,o,r)=>{const c=[],u=e.getRoot(),m=e.getParent(o||Z5(u,n,n.collapsed),e.isBlock),b=e.getParent(r||q5(u,n,n.collapsed),e.isBlock);if(m&&m!==u&&c.push(m),m&&b&&m!==b){let v;const x=new $a(m,u);for(;(v=x.next())&&v!==b;)e.isBlock(v)&&c.push(v)}return b&&m!==b&&b!==u&&c.push(b),c},h7=(e,n,o)=>I.from(n).bind(r=>I.from(r.parentNode).map(c=>{const u=e.nodeIndex(r),m=e.createRng();return m.setStart(c,u),m.setEnd(c,u+1),o&&(d1(e,m,r,!0),d1(e,m,r,!1)),m})),xE=(e,n)=>Ae(n,o=>{const r=e.dispatch("GetSelectionRange",{range:o});return r.range!==o?r.range:o}),b7=e=>Ws(e)==="img"?1:Ol(e).fold(()=>ja(e).length,n=>n.length),y7=e=>Ol(e).filter(n=>n.trim().length!==0||n.indexOf(tr)>-1).isSome(),vC=e=>Sl(e)&&Pc(e,"contenteditable")==="false",K5=["img","br"],TE=e=>y7(e)||ne(K5,Ws(e))||vC(e),v7=e=>ye(e,TE),k7=e=>w7(e,TE),w7=(e,n)=>{const o=r=>{const c=ja(r);for(let u=c.length-1;u>=0;u--){const m=c[u];if(n(m))return I.some(m);const b=o(m);if(b.isSome())return b}return I.none()};return o(e)},Y5="[data-mce-autocompleter]",_7=(e,n)=>{if(EE(ue.fromDom(e.getBody())).isNone()){const o=ue.fromHtml('',e.getDoc());Kr(o,ue.fromDom(n.extractContents())),n.insertNode(o.dom),di(o).each(r=>r.dom.normalize()),k7(o).map(r=>{e.selection.setCursorLocation(r.dom,b7(r))})}},C7=e=>oo(e,Y5),EE=e=>qt(e,Y5),S7=(e,n)=>EE(n).each(o=>{const r=e.selection.getBookmark();Ea(o),e.selection.moveToBookmark(r)}),X5={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11},Fk=(e,n,o)=>{const r=o?"lastChild":"firstChild",c=o?"prev":"next";if(e[r])return e[r];if(e!==n){let u=e[c];if(u)return u;for(let m=e.parent;m&&m!==n;m=m.parent)if(u=m[c],u)return u}},x7=e=>{var n;const o=(n=e.value)!==null&&n!==void 0?n:"";if(!Pi(o))return!1;const r=e.parent;return!(r&&(r.name!=="span"||r.attr("style"))&&/^[ ]+$/.test(o))},J5=e=>{const n=e.name==="a"&&!e.attr("href")&&e.attr("id");return e.attr("name")||e.attr("id")&&!e.firstChild||e.attr("data-mce-bookmark")||n};class vl{constructor(n,o){this.name=n,this.type=o,o===1&&(this.attributes=[],this.attributes.map={})}static create(n,o){const r=new vl(n,X5[n]||1);return o&&Nt(o,(c,u)=>{r.attr(u,c)}),r}replace(n){const o=this;return n.parent&&n.remove(),o.insert(n,o),o.remove(),o}attr(n,o){const r=this;if(!q(n))return Ke(n)&&Nt(n,(u,m)=>{r.attr(m,u)}),r;const c=r.attributes;if(c){if(o!==void 0){if(o===null){if(n in c.map){delete c.map[n];let u=c.length;for(;u--;)if(c[u].name===n)return c.splice(u,1),r}return r}if(n in c.map){let u=c.length;for(;u--;)if(c[u].name===n){c[u].value=o;break}}else c.push({name:n,value:o});return c.map[n]=o,r}return c.map[n]}}clone(){const n=this,o=new vl(n.name,n.type),r=n.attributes;if(r){const c=[];c.map={};for(let u=0,m=r.length;u/^\s*\[if [\w\W]+\]>.*/.test(e.substr(n)),Q5=(e,n,o=0)=>{const r=e.toLowerCase();if(r.indexOf("[if ",o)!==-1&&T7(r,o)){const c=r.indexOf("[endif]",o);return r.indexOf(">",c)}else if(n){const c=r.indexOf(">",o);return c!==-1?c:r.length}else{const c=/--!?>/g;c.lastIndex=o;const u=c.exec(e);return u?u.index+u[0].length:r.length}},E7=(e,n,o)=>{const r=/<([!?\/])?([A-Za-z0-9\-_:.]+)/g,c=/(?:\s(?:[^'">]+(?:"[^"]*"|'[^']*'))*[^"'>]*(?:"[^">]*|'[^'>]*)?|\s*|\/)>/g,u=e.getVoidElements();let m=1,b=o;for(;m!==0;)for(r.lastIndex=b;;){const v=r.exec(n);if(v===null)return b;if(v[1]==="!"){eo(v[2],"--")?b=Q5(n,!1,v.index+3):b=Q5(n,!0,v.index+1);break}else{c.lastIndex=r.lastIndex;const x=c.exec(n);if(U(x)||x.index!==r.lastIndex)continue;v[1]==="/"?m-=1:Un(u,v[2])||(m+=1),b=r.lastIndex+x[0].length;break}}return b},A7=(e,n)=>{const o=new RegExp(["\\s?("+e.join("|")+')="[^"]+"'].join("|"),"gi");return n.replace(o,"")},eO=(e,n)=>{const o=/<(\w+) [^>]*data-mce-bogus="all"[^>]*>/g,r=e.schema;let c=A7(e.getTempAttrs(),n);const u=r.getVoidElements();let m;for(;m=o.exec(c);){const b=o.lastIndex,v=m[0].length;let x;u[m[1]]?x=b:x=E7(r,c,b),c=c.substring(0,b-v)+c.substring(x),o.lastIndex=b-v}return Mt(c)},O7=eO,tO=e=>{const n=Tc(e,"[data-mce-bogus]");Y(n,o=>{Pc(o,"data-mce-bogus")==="all"?fr(o):Nu(o)?(Is(o,ue.fromText(ga)),fr(o)):Ea(o)})},nO=e=>{const n=Tc(e,"input");Y(n,o=>{Hr(o,"name")})},z7=(e,n)=>{const o=Pl(e),r=new RegExp(`^(<${o}[^>]*>( | |\\s| |
    |)<\\/${o}>[\r +]*|
    [\r +]*)$`);return n.replace(r,"")},D7=(e,n)=>{const o=e.getDoc(),r=Gi(ue.fromDom(e.getBody())),c=ue.fromTag("div",o);ea(c,"data-mce-bogus","all"),Km(c,{position:"fixed",left:"-9999999px",top:"0"}),bd(c,n.innerHTML),tO(c),nO(c);const u=rp(r);Kr(u,c);const m=Mt(c.dom.innerText);return fr(c),m},R7=(e,n,o)=>{let r;return n.format==="raw"?r=wt.trim(O7(e.serializer,o.innerHTML)):n.format==="text"?r=D7(e,o):n.format==="tree"?r=e.serializer.serialize(o,n):r=z7(e,e.serializer.serialize(o,n)),n.format!=="text"&&!tc(ue.fromDom(o))&&q(r)?wt.trim(r):r},M7=(e,n)=>I.from(e.getBody()).fold(nt(n.format==="tree"?new vl("body",11):""),o=>R7(e,n,o)),oO=wt.makeMap,sO=e=>{const n=[];e=e||{};const o=e.indent,r=oO(e.indent_before||""),c=oO(e.indent_after||""),u=im.getEncodeFunc(e.entity_encoding||"raw",e.entities),m=e.element_format!=="xhtml";return{start:(b,v,x)=>{if(o&&r[b]&&n.length>0){const M=n[n.length-1];M.length>0&&M!==` +`&&n.push(` +`)}if(n.push("<",b),v)for(let M=0,D=v.length;M0){const M=n[n.length-1];M.length>0&&M!==` +`&&n.push(` +`)}},end:b=>{let v;n.push(""),o&&c[b]&&n.length>0&&(v=n[n.length-1],v.length>0&&v!==` +`&&n.push(` +`))},text:(b,v)=>{b.length>0&&(n[n.length]=v?b:u(b))},cdata:b=>{n.push("")},comment:b=>{n.push("")},pi:(b,v)=>{v?n.push(""):n.push(""),o&&n.push(` +`)},doctype:b=>{n.push("",o?` +`:"")},reset:()=>{n.length=0},getContent:()=>n.join("").replace(/\n$/,"")}},Yp=(e={},n=gl())=>{const o=sO(e);return e.validate="validate"in e?e.validate:!0,{serialize:c=>{const u=e.validate,m={3:v=>{var x;o.text((x=v.value)!==null&&x!==void 0?x:"",v.raw)},8:v=>{var x;o.comment((x=v.value)!==null&&x!==void 0?x:"")},7:v=>{o.pi(v.name,v.value)},10:v=>{var x;o.doctype((x=v.value)!==null&&x!==void 0?x:"")},4:v=>{var x;o.cdata((x=v.value)!==null&&x!==void 0?x:"")},11:v=>{let x=v;if(x=x.firstChild)do b(x);while(x=x.next)}};o.reset();const b=v=>{var x;const M=m[v.type];if(M)M(v);else{const D=v.name,L=D in n.getVoidElements();let ee=v.attributes;if(u&&ee&&ee.length>1){const oe=[];oe.map={};const G=n.getElementRule(v.name);if(G){for(let te=0,xe=G.attributesOrder.length;te{rO.add(n)});const Gn=["font","text-decoration","text-emphasis"],kC=(e,n)=>Es(e.parseStyle(e.getAttrib(n,"style"))),aO=e=>rO.has(e),N7=(e,n)=>wn(kC(e,n),o=>!aO(o)),AE=e=>Be(e,n=>Me(Gn,o=>eo(n,o))),B7=(e,n,o)=>{const r=kC(e,n),c=kC(e,o),u=m=>{var b,v;const x=(b=e.getStyle(n,m))!==null&&b!==void 0?b:"",M=(v=e.getStyle(o,m))!==null&&v!==void 0?v:"";return io(x)&&io(M)&&x!==M};return Me(r,m=>{const b=v=>Me(v,x=>x===m);if(!b(c)&&b(Gn)){const v=AE(c);return Me(v,u)}else return u(m)})},cO=(e,n,o)=>I.from(o.container()).filter(Bt).exists(r=>{const c=e?0:-1;return n(r.data.charAt(o.offset()+c))}),OE=Ye(cO,!0,ab),zE=Ye(cO,!1,ab),P7=e=>{const n=e.container();return Bt(n)&&(n.data.length===0||it(n.data)&&el.isBookmarkNode(n.parentNode))},Nf=(e,n)=>o=>Qy(e?0:-1,o).filter(n).isSome(),DE=e=>py(e)&&ll(ue.fromDom(e),"display")==="block",$7=e=>Ls(e)&&!gp(e),F7=Nf(!0,DE),Do=Nf(!1,DE),Ik=Nf(!0,ma),Po=Nf(!1,ma),RE=Nf(!0,Yr),I7=Nf(!1,Yr),kb=Nf(!0,$7),Xp=Nf(!1,$7),oj=e=>e.slice(0,-1),sj=(e,n,o)=>Ai(n,e)?oj(Zm(e,r=>o(r)||Ps(r,n))):[],iO=(e,n)=>sj(e,n,Te),Vg=(e,n)=>[e].concat(iO(e,n)),fo=(e,n,o)=>L2(e,n,o,P7),lO=(e,n)=>It(Vg(ue.fromDom(n.container()),e),Oc),uO=(e,n,o)=>fo(e,n.dom,o).forall(r=>lO(n,o).fold(()=>!hl(r,o,n.dom),c=>!hl(r,o,n.dom)&&Ai(c,ue.fromDom(r.container())))),dO=(e,n,o)=>lO(n,o).fold(()=>fo(e,n.dom,o).forall(r=>!hl(r,o,n.dom)),r=>fo(e,r.dom,o).isNone()),wb=Ye(dO,!1),ME=Ye(dO,!0),L7=Ye(uO,!1),H7=Ye(uO,!0),V7=e=>eb(e).exists(Nu),Lk=(e,n,o)=>{const r=Be(Vg(ue.fromDom(o.container()),n),Oc),c=Yn(r).getOr(n);return Il(e,c.dom,o).filter(V7)},NE=(e,n)=>eb(n).exists(Nu)||Lk(!0,e,n).isSome(),fO=(e,n)=>zg(n).exists(Nu)||Lk(!1,e,n).isSome(),rj=Ye(Lk,!1),U7=Ye(Lk,!0),mO=e=>Ne.isTextPosition(e)&&!e.isAtStart()&&!e.isAtEnd(),gO=(e,n)=>{const o=Be(Vg(ue.fromDom(n.container()),e),Oc);return Yn(o).getOr(e)},pO=(e,n)=>mO(n)?zE(n):zE(n)||pu(gO(e,n).dom,n).exists(zE),BE=(e,n)=>mO(n)?OE(n):OE(n)||bl(gO(e,n).dom,n).exists(OE),j7=e=>ne(["pre","pre-wrap"],e),qo=e=>eb(e).bind(n=>T(n,er)).exists(n=>j7(ll(n,"white-space"))),hO=(e,n)=>pu(e.dom,n).isNone(),wC=(e,n)=>bl(e.dom,n).isNone(),bO=(e,n)=>hO(e,n)||wC(e,n)||wb(e,n)||ME(e,n)||fO(e,n)||NE(e,n),yO=e=>Ke(e)&&Ls(e)&&Xc(e),PE=(e,n)=>o=>yO(new $a(o,e)[n]()),vO=(e,n)=>{const o=bl(e.dom,n).getOr(n),r=PE(e.dom,"next");return n.isAtEnd()&&(r(n.container())||r(o.container()))},kO=(e,n)=>{const o=pu(e.dom,n).getOr(n),r=PE(e.dom,"prev");return n.isAtStart()&&(r(n.container())||r(o.container()))},W7=(e,n)=>qo(n)?!1:bO(e,n)||pO(e,n)||BE(e,n),D1=(e,n)=>qo(n)?!1:wb(e,n)||L7(e,n)||fO(e,n)||pO(e,n)||kO(e,n),Z7=e=>{const n=e.container(),o=e.offset();return Bt(n)&&oqo(n)?!1:ME(e,n)||H7(e,n)||NE(e,n)||BE(e,n)||vO(e,n),$E=(e,n)=>D1(e,n)||Hk(e,Z7(n)),wO=(e,n)=>i1(e.charAt(n)),_O=(e,n)=>ab(e.charAt(n)),q7=e=>{const n=e.container();return Bt(n)&&Qn(n.data,tr)},G7=e=>{const n=e.split("");return Ae(n,(o,r)=>i1(o)&&r>0&&r{const r=n.data,c=Ne(n,0);return!o&&wO(r,0)&&!$E(e,c)?(n.data=" "+r.slice(1),!0):o&&_O(r,0)&&D1(e,c)?(n.data=tr+r.slice(1),!0):!1},FE=e=>{const n=e.data,o=G7(n);return o!==n?(e.data=o,!0):!1},_C=(e,n,o)=>{const r=n.data,c=Ne(n,r.length-1);return!o&&wO(r,r.length-1)&&!$E(e,c)?(n.data=r.slice(0,-1)+" ",!0):o&&_O(r,r.length-1)&&Hk(e,c)?(n.data=r.slice(0,-1)+tr,!0):!1},K7=(e,n)=>{const o=n.container();if(!Bt(o))return I.none();if(q7(n)){const r=CO(e,o,!1)||FE(o)||_C(e,o,!1);return Xo(r,n)}else if($E(e,n)){const r=CO(e,o,!0)||_C(e,o,!0);return Xo(r,n)}else return I.none()},Y7=e=>{const n=ue.fromDom(e.getBody());e.selection.isCollapsed()&&K7(n,Ne.fromRangeStart(e.selection.getRng())).each(o=>{e.selection.setRng(o.toRange())})},SO=(e,n,o)=>{if(o===0)return;const r=ue.fromDom(e),c=vr(r,Oc).getOr(r),u=e.data.slice(n,n+o),m=n+o>=e.data.length&&Hk(c,Ne(e,e.data.length)),b=n===0&&D1(c,Ne(e,0));e.replaceData(n,o,rg(u,4,b,m))},CC=(e,n)=>{const o=e.data.slice(n),r=o.length-Ua(o).length;SO(e,n,r)},IE=(e,n)=>{const o=e.data.slice(0,n),r=o.length-ic(o).length;SO(e,n-r,r)},LE=(e,n,o,r=!0)=>{const c=ic(e.data).length,u=r?e:n,m=r?n:e;return r?u.appendData(m.data):u.insertData(0,m.data),fr(ue.fromDom(m)),o&&CC(u,c),u},X7=(e,n)=>{const o=e.container(),r=e.offset();return!Ne.isTextPosition(e)&&o===n.parentNode&&r>Ne.before(n).offset()},J7=(e,n)=>X7(n,e)?Ne(n.container(),n.offset()-1):n,xO=e=>Bt(e)?Ne(e,0):Ne.before(e),Q7=e=>Bt(e)?Ne(e,e.data.length):Ne.after(e),TO=e=>bi(e.previousSibling)?I.some(Q7(e.previousSibling)):e.previousSibling?bm(e.previousSibling):I.none(),Jp=e=>bi(e.nextSibling)?I.some(xO(e.nextSibling)):e.nextSibling?Qi(e.nextSibling):I.none(),eB=(e,n)=>I.from(n.previousSibling?n.previousSibling:n.parentNode).bind(o=>pu(e,Ne.before(o))).orThunk(()=>bl(e,Ne.after(n))),EO=(e,n)=>bl(e,Ne.after(n)).orThunk(()=>pu(e,Ne.before(n))),tB=(e,n)=>TO(n).orThunk(()=>Jp(n)).orThunk(()=>eB(e,n)),nB=(e,n)=>Jp(n).orThunk(()=>TO(n)).orThunk(()=>EO(e,n)),AO=(e,n,o)=>e?nB(n,o):tB(n,o),OO=(e,n,o)=>AO(e,n,o).map(Ye(J7,o)),HE=(e,n,o)=>{o.fold(()=>{e.focus()},r=>{e.selection.setRng(r.toRange(),n)})},zO=e=>n=>n.dom===e,sl=(e,n)=>n&&Un(e.schema.getBlockElements(),Ws(n)),oB=e=>{if(ir(e)){const n=ue.fromHtml('
    ');return ar(e),Kr(e,n),I.some(Ne.before(n.dom))}else return I.none()},sB=(e,n,o)=>{const r=qc(e).filter(Sc),c=dd(e).filter(Sc);return fr(e),sd(r,c,n,(u,m,b)=>{const v=u.dom,x=m.dom,M=v.data.length;return LE(v,x,o),b.container()===x?Ne(v,M):b}).orThunk(()=>(o&&(r.each(u=>IE(u.dom,u.dom.length)),c.each(u=>CC(u.dom,0))),n))},rB=(e,n)=>Un(e.schema.getTextInlineElements(),Ws(n)),_b=(e,n,o,r=!0)=>{const c=OO(n,e.getBody(),o.dom),u=vr(o,Ye(sl,e),zO(e.getBody())),m=sB(o,c,rB(e,o));e.dom.isEmpty(e.getBody())?(e.setContent(""),e.selection.setCursorLocation()):u.bind(oB).fold(()=>{r&&HE(e,n,m)},b=>{r&&HE(e,n,I.some(b))})},aB=/[\u0591-\u07FF\uFB1D-\uFDFF\uFE70-\uFEFC]/,Cb=e=>aB.test(e),Sb=(e,n)=>$c(ue.fromDom(n),Zh(e))&&!gf(e.schema,n)&&e.dom.isEditable(n),cB=e=>{var n;return Ar.DOM.getStyle(e,"direction",!0)==="rtl"||Cb((n=e.textContent)!==null&&n!==void 0?n:"")},Ia=(e,n,o)=>Be(Ar.DOM.getParents(o.container(),"*",n),e),Bf=(e,n,o)=>{const r=Ia(e,n,o);return I.from(r[r.length-1])},aj=(e,n,o)=>{const r=Ka(n,e),c=Ka(o,e);return Ke(r)&&r===c},Jc=e=>dc(e)||Dl(e),as=(e,n)=>{const o=n.container(),r=n.offset();return e?Xs(o)?Bt(o.nextSibling)?Ne(o.nextSibling,0):Ne.after(o):dc(n)?Ne(o,r+1):n:Xs(o)?Bt(o.previousSibling)?Ne(o.previousSibling,o.previousSibling.data.length):Ne.before(o):Dl(n)?Ne(o,r-1):n},ku=Ye(as,!0),DO=Ye(as,!1),VE=(e,n)=>{const o=r=>r.stopImmediatePropagation();e.on("beforeinput input",o,!0),e.getDoc().execCommand(n),e.off("beforeinput input",o)},UE=e=>{e.execCommand("delete")},Vk=e=>VE(e,"Delete"),RO=e=>VE(e,"ForwardDelete"),MO=e=>n=>qr(di(n),e,Ps),iB=e=>Fe(e)||ru(e),SC=(e,n)=>Ai(e,n)?T(n,iB,MO(e)):I.none(),Uk=(e,n=!0)=>{e.dom.isEmpty(e.getBody())&&e.setContent("",{no_selection:!n})},NO=(e,n,o)=>ca(Qi(o),bm(o),(r,c)=>{const u=as(!0,r),m=as(!1,c),b=as(!1,n);return e?bl(o,b).exists(v=>v.isEqual(m)&&n.isEqual(u)):pu(o,b).exists(v=>v.isEqual(u)&&n.isEqual(m))}).getOr(!0),qu=e=>(Ti(e)?qc(e):Oi(e)).bind(qu).orThunk(()=>I.some(e)),BO=(e,n,o,r=!0)=>{var c;n.deleteContents();const u=qu(o).getOr(o),m=ue.fromDom((c=e.dom.getParent(u.dom,e.dom.isBlock))!==null&&c!==void 0?c:o.dom);if(m.dom===e.getBody()?Uk(e,r):ir(m)&&(F(m),r&&e.selection.setCursorLocation(m.dom,0)),!Ps(o,m)){const b=qr(di(m),o)?[]:op(m);Y(b.concat(ja(o)),v=>{!Ps(v,m)&&!Ai(v,m)&&ir(v)&&fr(v)})}},lB=e=>n=>Ps(e,n),PO=e=>Tc(e,"td,th"),jE=(e,n)=>{const o=x=>Ng(ue.fromDom(x),n),r=o(e.startContainer),c=o(e.endContainer),u=r.isSome(),m=c.isSome(),b=ca(r,c,Ps).getOr(!1);return{startTable:r,endTable:c,isStartInTable:u,isEndInTable:m,isSameTable:b,isMultiTable:!b&&u&&m}},WE=(e,n)=>({start:e,end:n}),jk=(e,n,o)=>({rng:e,table:n,cells:o}),Wk=fu.generate([{singleCellTable:["rng","cell"]},{fullTable:["table"]},{partialTable:["cells","outsideDetails"]},{multiTable:["startTableCells","endTableCells","betweenRng"]}]),Ug=(e,n)=>oo(ue.fromDom(e),"td,th",n),wu=e=>!Ps(e.start,e.end),R1=(e,n)=>Ng(e.start,n).bind(o=>Ng(e.end,n).bind(r=>Xo(Ps(o,r),o))),Or=(e,n)=>!wu(e)&&R1(e,n).exists(o=>{const r=o.dom.rows;return r.length===1&&r[0].cells.length===1}),Zk=(e,n)=>{const o=Ug(e.startContainer,n),r=Ug(e.endContainer,n);return ca(o,r,WE)},$O=e=>n=>Ng(n,e).bind(o=>Lo(PO(o)).map(r=>WE(n,r))),FO=e=>n=>Ng(n,e).bind(o=>Yn(PO(o)).map(r=>WE(r,n))),qk=e=>n=>R1(n,e).map(o=>jk(n,o,PO(o))),xC=(e,n,o,r)=>{if(o.collapsed||!e.forall(wu))return I.none();if(n.isSameTable){const c=e.bind(qk(r));return I.some({start:c,end:c})}else{const c=Ug(o.startContainer,r),u=Ug(o.endContainer,r),m=c.bind($O(r)).bind(qk(r)),b=u.bind(FO(r)).bind(qk(r));return I.some({start:m,end:b})}},TC=(e,n)=>Vn(e,o=>Ps(o,n)),Gk=e=>ca(TC(e.cells,e.rng.start),TC(e.cells,e.rng.end),(n,o)=>e.cells.slice(n,o+1)),EC=(e,n,o)=>e.exists(r=>Or(r,o)&&ib(r.start,n)),AC=(e,n)=>{const{startTable:o,endTable:r}=n,c=e.cloneRange();return o.each(u=>c.setStartAfter(u.dom)),r.each(u=>c.setEndBefore(u.dom)),c},IO=(e,n,o,r)=>xC(e,n,o,r).bind(({start:c,end:u})=>c.or(u)).bind(c=>{const{isSameTable:u}=n,m=Gk(c).getOr([]);if(u&&c.cells.length===m.length)return I.some(Wk.fullTable(c.table));if(m.length>0){if(u)return I.some(Wk.partialTable(m,I.none()));{const b=AC(o,n);return I.some(Wk.partialTable(m,I.some({...n,rng:b})))}}else return I.none()}),LO=(e,n,o,r)=>xC(e,n,o,r).bind(({start:c,end:u})=>{const m=c.bind(Gk).getOr([]),b=u.bind(Gk).getOr([]);if(m.length>0&&b.length>0){const v=AC(o,n);return I.some(Wk.multiTable(m,b,v))}else return I.none()}),HO=(e,n)=>{const o=lB(e),r=Zk(n,o),c=jE(n,o);return EC(r,n,o)?r.map(u=>Wk.singleCellTable(n,u.start)):c.isMultiTable?LO(r,c,n,o):IO(r,c,n,o)},ZE=e=>Y(e,n=>{Hr(n,"contenteditable"),F(n)}),VO=(e,n)=>I.from(e.dom.getParent(n,e.dom.isBlock)).map(ue.fromDom),M1=(e,n,o)=>{o.each(r=>{n?fr(r):(F(r),e.selection.setCursorLocation(r.dom,0))})},OC=(e,n,o,r)=>{const c=o.cloneRange();r?(c.setStart(o.startContainer,o.startOffset),c.setEndAfter(n.dom.lastChild)):(c.setStartBefore(n.dom.firstChild),c.setEnd(o.endContainer,o.endOffset)),DC(e,c,n,!1).each(u=>u())},zC=e=>{const n=Mg(e),o=ue.fromDom(e.selection.getNode());Ac(o.dom)&&ir(o)?e.selection.setCursorLocation(o.dom,0):e.selection.collapse(!0),n.length>1&&Me(n,r=>Ps(r,o))&&ea(o,"data-mce-selected","1")},UO=(e,n,o)=>I.some(()=>{const r=e.selection.getRng(),c=o.bind(({rng:u,isStartInTable:m})=>{const b=VO(e,m?u.endContainer:u.startContainer);u.deleteContents(),M1(e,m,b.filter(ir));const v=m?n[0]:n[n.length-1];return OC(e,v,r,m),ir(v)?I.none():I.some(m?n.slice(1):n.slice(0,-1))}).getOr(n);ZE(c),zC(e)}),uB=(e,n,o,r)=>I.some(()=>{const c=e.selection.getRng(),u=n[0],m=o[o.length-1];OC(e,u,c,!0),OC(e,m,c,!1);const b=ir(u)?n:n.slice(1),v=ir(m)?o:o.slice(0,-1);ZE(b.concat(v)),r.deleteContents(),zC(e)}),DC=(e,n,o,r=!0)=>I.some(()=>{BO(e,n,o,r)}),jO=(e,n)=>I.some(()=>_b(e,!1,n)),WO=(e,n,o)=>HO(n,o).bind(r=>r.fold(Ye(DC,e),Ye(jO,e),Ye(UO,e),Ye(uB,e))),RC=(e,n)=>Kk(e,n),ZO=(e,n,o,r)=>MC(n,r).fold(()=>WO(e,n,o),c=>RC(e,c)),qO=(e,n,o)=>{const r=ue.fromDom(e.getBody()),c=e.selection.getRng();return o.length!==0?UO(e,o,I.none()):ZO(e,r,c,n)},qE=(e,n)=>It(Vg(n,e),Mi),MC=(e,n)=>It(Vg(n,e),il("caption")),GO=(e,n,o,r,c)=>s1(o,e.getBody(),c).bind(u=>qE(n,ue.fromDom(u.getNode())).bind(m=>Ps(m,r)?I.none():I.some(ft))),Kk=(e,n)=>I.some(()=>{F(n),e.selection.setCursorLocation(n.dom,0)}),KO=(e,n,o,r)=>Qi(e.dom).bind(c=>bm(e.dom).map(u=>n?o.isEqual(c)&&r.isEqual(u):o.isEqual(u)&&r.isEqual(c))).getOr(!0),YO=(e,n)=>Kk(e,n),XO=(e,n,o)=>MC(e,ue.fromDom(o.getNode())).fold(()=>I.some(ft),r=>Xo(!Ps(r,n),ft)),JO=(e,n,o,r,c)=>s1(o,e.getBody(),c).fold(()=>I.some(ft),u=>KO(r,o,c,u)?YO(e,r):XO(n,r,u)),QO=(e,n,o,r)=>{const c=Ne.fromRangeStart(e.selection.getRng());return qE(o,r).bind(u=>ir(u)?Kk(e,u):GO(e,o,n,u,c))},ez=(e,n,o,r)=>{const c=Ne.fromRangeStart(e.selection.getRng());return ir(r)?Kk(e,r):JO(e,o,n,r,c)},GE=(e,n)=>e?RE(n):I7(n),tz=(e,n)=>{const o=Ne.fromRangeStart(e.selection.getRng());return GE(n,o)||Il(n,e.getBody(),o).exists(r=>GE(n,r))},nz=(e,n,o)=>{const r=ue.fromDom(e.getBody());return MC(r,o).fold(()=>QO(e,n,r,o).orThunk(()=>Xo(tz(e,n),ft)),c=>ez(e,n,r,c))},Yk=(e,n)=>{const o=ue.fromDom(e.selection.getStart(!0)),r=Mg(e);return e.selection.isCollapsed()&&r.length===0?nz(e,n,o):qO(e,o,r)},Em=(e,n)=>{let o=n;for(;o&&o!==e;){if(Ys(o)||Ls(o))return o;o=o.parentNode}return null},oz=["data-ephox-","data-mce-","data-alloy-","data-snooker-","_"],sz=wt.each,N1=e=>{const n=e.dom,o=new Set(e.serializer.getTempAttrs()),r=(u,m)=>{if(u.nodeName!==m.nodeName||u.nodeType!==m.nodeType)return!1;const b=x=>{const M={};return sz(n.getAttribs(x),D=>{const L=D.nodeName.toLowerCase();L!=="style"&&!c(L)&&(M[L]=n.getAttrib(x,L))}),M},v=(x,M)=>{for(const D in x)if(Un(x,D)){const L=M[D];if(In(L)||x[D]!==L)return!1;delete M[D]}for(const D in M)if(Un(M,D))return!1;return!0};return dn(u)&&dn(m)&&(!v(b(u),b(m))||!v(n.parseStyle(n.getAttrib(u,"style")),n.parseStyle(n.getAttrib(m,"style"))))?!1:!yl(u)&&!yl(m)},c=u=>Me(oz,m=>eo(u,m))||o.has(u);return{compare:r,isAttributeInternal:c}},KE=(e,n)=>{let o=e;for(;o=o.walk();)n(o)},B1=(e,n,o,r)=>{const c=o.name;for(let u=0,m=e.length;u{const r={nodes:{},attributes:{}};return o.firstChild&&KE(o,c=>{B1(e,n,c,r)}),r},XE=(e,n)=>{const o=(r,c)=>{Nt(r,u=>{const m=Cs(u.nodes);Y(u.filter.callbacks,b=>{for(let v=m.length-1;v>=0;v--){const x=m[v];(!(c?x.attr(u.filter.name)!==void 0:x.name===u.filter.name)||zt(x.parent))&&m.splice(v,1)}m.length>0&&b(m,u.filter.name,n)})})};o(e.nodes,!1),o(e.attributes,!0)},xb=(e,n,o,r={})=>{const c=YE(e,n,o);XE(c,r)},Xk=(e,n,o)=>{if(e.insert&&n(o)){const r=new vl("br",1);r.attr("data-mce-bogus","1"),o.empty().append(r)}else o.empty().append(new vl("#text",3)).value=tr},JE=e=>{var n;return P1(e,"#text")&&((n=e==null?void 0:e.firstChild)===null||n===void 0?void 0:n.value)===tr},P1=(e,n)=>{const o=e==null?void 0:e.firstChild;return Ke(o)&&o===e.lastChild&&o.name===n},Qp=(e,n)=>{const o=e.getElementRule(n.name);return(o==null?void 0:o.paddEmpty)===!0},$1=(e,n,o,r)=>r.isEmpty(n,o,c=>Qp(e,c)),dB=(e,n)=>Ke(e)&&(n(e)||e.name==="br"),rz=e=>{let n;for(let o=e;o;o=o.parent){const r=o.attr("contenteditable");if(r==="false")break;r==="true"&&(n=o)}return I.from(n)},NC=(e,n,o=e.parent)=>{if(n.getSpecialElements()[e.name])e.empty().remove();else{const r=e.children();for(const c of r)o&&!n.isValidChild(o.name,c.name)&&NC(c,n,o);e.unwrap()}},QE=(e,n,o,r=ft)=>{const c=n.getTextBlockElements(),u=n.getNonEmptyElements(),m=n.getWhitespaceElements(),b=wt.makeMap("tr,td,th,tbody,thead,tfoot,table"),v=new Set,x=M=>M!==o&&!b[M.name];for(let M=0;M1)if(n.isValidChild(L.name,D.name)){G.reverse(),ee=G[0].clone(),r(ee);let te=ee;for(let xe=0;xe0?(oe=G[xe].clone(),r(oe),te.append(oe)):oe=te;for(let we=G[xe].firstChild;we&&we!==G[xe+1];){const De=we.next;oe.append(we),we=De}te=oe}$1(n,u,m,ee)?L.insert(D,G[0],!0):(L.insert(ee,G[0],!0),L.insert(D,ee)),L=G[0],($1(n,u,m,L)||P1(L,"br"))&&L.empty().remove()}else NC(D,n);else if(D.parent){if(D.name==="li"){let te=D.prev;if(te&&(te.name==="ul"||te.name==="ol")){te.append(D);continue}if(te=D.next,te&&(te.name==="ul"||te.name==="ol")&&te.firstChild){te.insert(D,te.firstChild,!0);continue}const xe=new vl("ul",1);r(xe),D.wrap(xe);continue}if(n.isValidChild(D.parent.name,"div")&&n.isValidChild("div",D.name)){const te=new vl("div",1);r(te),D.wrap(te)}else NC(D,n)}}},cj=(e,n)=>{let o=e;for(;o;){if(o.name===n)return!0;o=o.parent}return!1},az=(e,n,o=n.parent)=>o&&e.children[n.name]&&!e.isValidChild(o.name,n.name)?!0:!!(o&&n.name==="a"&&cj(o,"a")),e3=(e,n,o,r)=>{const c=document.createRange();return c.setStart(e,n),c.setEnd(o,r),c},Pf=e=>{const n=Ne.fromRangeStart(e),o=Ne.fromRangeEnd(e),r=e.commonAncestorContainer;return Il(!1,r,o).map(c=>!hl(n,o,r)&&hl(n,c,r)?e3(n.container(),n.offset(),c.container(),c.offset()):e).getOr(e)},Jk=e=>e.collapsed?e:Pf(e),BC=e=>Ke(e.firstChild)&&e.firstChild===e.lastChild,t3=e=>e.name==="br"||e.value===tr,fB=(e,n)=>e.getBlockElements()[n.name]&&BC(n)&&t3(n.firstChild),cz=(e,n)=>{const o=e.getNonEmptyElements();return Ke(n)&&(n.isEmpty(o)||fB(e,n))},mB=(e,n)=>{let o=n.firstChild,r=n.lastChild;return o&&o.name==="meta"&&(o=o.next),r&&r.attr("id")==="mce_marker"&&(r=r.prev),cz(e,r)&&(r=r==null?void 0:r.prev),!o||o!==r?!1:o.name==="ul"||o.name==="ol"},iz=e=>{var n,o;const r=e.firstChild,c=e.lastChild;return r&&r.nodeName==="META"&&((n=r.parentNode)===null||n===void 0||n.removeChild(r)),c&&c.id==="mce_marker"&&((o=c.parentNode)===null||o===void 0||o.removeChild(c)),e},n3=(e,n,o)=>{const r=n.serialize(o),c=e.createFragment(r);return iz(c)},gB=e=>{var n;return Be((n=e==null?void 0:e.childNodes)!==null&&n!==void 0?n:[],o=>o.nodeName==="LI")},lz=e=>e.data===tr||Vr(e),pB=e=>Ke(e==null?void 0:e.firstChild)&&e.firstChild===e.lastChild&&lz(e.firstChild),Qk=e=>!e.firstChild||pB(e),uz=e=>e.length>0&&Qk(e[e.length-1])?e.slice(0,-1):e,o3=(e,n)=>{const o=e.getParent(n,e.isBlock);return o&&o.nodeName==="LI"?o:null},dz=(e,n)=>!!o3(e,n),hB=(e,n)=>{const o=n.cloneRange(),r=n.cloneRange();return o.setStartBefore(e),r.setEndAfter(e),[o.cloneContents(),r.cloneContents()]},bB=(e,n)=>{const o=Ne.before(e),c=gu(n).next(o);return c?c.toRange():null},fz=(e,n)=>{const o=Ne.after(e),c=gu(n).prev(o);return c?c.toRange():null},yB=(e,n,o,r)=>{const c=hB(e,r),u=e.parentNode;return u&&(u.insertBefore(c[0],e),wt.each(n,m=>{u.insertBefore(m,e)}),u.insertBefore(c[1],e),u.removeChild(e)),fz(n[n.length-1],o)},vB=(e,n,o)=>{const r=e.parentNode;return r&&wt.each(n,c=>{r.insertBefore(c,e)}),bB(e,o)},mz=(e,n,o,r)=>(r.insertAfter(n.reverse(),e),fz(n[0],o)),kB=(e,n,o,r)=>{const c=n3(n,e,r),u=o3(n,o.startContainer),m=uz(gB(c.firstChild)),b=1,v=2,x=n.getRoot(),M=D=>{const L=Ne.fromRangeStart(o),ee=gu(n.getRoot()),oe=D===b?ee.prev(L):ee.next(L),G=oe==null?void 0:oe.getNode();return G?o3(n,G)!==u:!0};return u?M(b)?vB(u,m,x):M(v)?mz(u,m,x,n):yB(u,m,x,o):null},s3=["pre"],Tb=(e,n,o,r)=>{var c;const u=n.firstChild,m=n.lastChild,b=m.attr("data-mce-type")==="bookmark"?m.prev:m,v=u===b,x=ne(s3,u.name);if(v&&x){const M=u.attr("contenteditable")!=="false",D=((c=e.getParent(o,e.isBlock))===null||c===void 0?void 0:c.nodeName.toLowerCase())===u.name,L=I.from(Em(r,o)).forall(Ys);return M&&D&&L}else return!1},r3=Ac,wB=(e,n,o)=>{if(Ke(o)){const r=e.getParent(n.endContainer,r3);return o===r&&ib(ue.fromDom(o),n)}else return!1},PC=(e,n,o)=>{var r;if(o.getAttribute("data-mce-bogus")==="all")(r=o.parentNode)===null||r===void 0||r.insertBefore(e.dom.createFragment(n),o);else{const c=o.firstChild,u=o.lastChild;!c||c===u&&c.nodeName==="BR"?e.dom.setHTML(o,n):e.selection.setContent(n,{no_events:!0})}},gz=(e,n)=>{I.from(e.getParent(n,"td,th")).map(ue.fromDom).each(Z)},pz=(e,n)=>{const o=e.schema.getTextInlineElements(),r=e.dom;if(n){const c=e.getBody(),u=N1(e);wt.each(r.select("*[data-mce-fragment]"),m=>{if(Ke(o[m.nodeName.toLowerCase()])&&N7(r,m)){for(let v=m.parentElement;Ke(v)&&v!==c&&!B7(r,m,v);v=v.parentElement)if(u.compare(v,m)){r.remove(m,!0);break}}})}},_B=e=>{let n=e;for(;n=n.walk();)n.type===1&&n.attr("data-mce-fragment","1")},hz=e=>{wt.each(e.getElementsByTagName("*"),n=>{n.removeAttribute("data-mce-fragment")})},CB=e=>!!e.getAttribute("data-mce-fragment"),Eb=(e,n)=>Ke(n)&&!e.schema.getVoidElements()[n.nodeName],bz=(e,n)=>{var o,r,c;let u;const m=e.dom,b=e.selection;if(!n)return;b.scrollIntoView(n);const v=Em(e.getBody(),n);if(v&&m.getContentEditable(v)==="false"){m.remove(n),b.select(v);return}let x=m.createRng();const M=n.previousSibling;if(Bt(M)){x.setStart(M,(r=(o=M.nodeValue)===null||o===void 0?void 0:o.length)!==null&&r!==void 0?r:0);const ee=n.nextSibling;Bt(ee)&&(M.appendData(ee.data),(c=ee.parentNode)===null||c===void 0||c.removeChild(ee))}else x.setStartBefore(n),x.setEndBefore(n);const D=ee=>{let oe=Ne.fromRangeStart(ee);return oe=gu(e.getBody()).next(oe),oe==null?void 0:oe.toRange()},L=m.getParent(n,m.isBlock);m.remove(n),L&&m.isEmpty(L)&&(ar(ue.fromDom(L)),x.setStart(L,0),x.setEnd(L,0),!r3(L)&&!CB(L)&&(u=D(x))?(x=u,m.remove(L)):m.add(L,m.create("br",{"data-mce-bogus":"1"}))),b.setRng(x)},yz=e=>{const n=e.dom,o=Jk(e.selection.getRng());e.selection.setRng(o);const r=n.getParent(o.startContainer,r3);wB(n,o,r)?DC(e,o,ue.fromDom(r)):o.startContainer===o.endContainer&&o.endOffset-o.startOffset===1&&Bt(o.startContainer.childNodes[o.startOffset])?o.deleteContents():e.getDoc().execCommand("Delete",!1)},vz=e=>{for(let n=e;n;n=n.walk())if(n.attr("id")==="mce_marker")return I.some(n);return I.none()},$C=(e,n,o)=>{var r,c;const u=e.selection,m=e.dom,b=e.parser,v=o.merge,x=Yp({validate:!0},e.schema),M='';n.indexOf("{$caret}")===-1&&(n+="{$caret}"),n=n.replace(/\{\$caret\}/,M);let D=u.getRng();const L=D.startContainer,ee=e.getBody();L===ee&&u.isCollapsed()&&m.isBlock(ee.firstChild)&&Eb(e,ee.firstChild)&&m.isEmpty(ee.firstChild)&&(D=m.createRng(),D.setStart(ee.firstChild,0),D.setEnd(ee.firstChild,0),u.setRng(D)),u.isCollapsed()||yz(e);const oe=u.getNode(),G={context:oe.nodeName.toLowerCase(),data:o.data,insert:!0},te=b.parse(n,G);if(o.paste===!0&&mB(e.schema,te)&&dz(m,oe))return D=kB(x,m,u.getRng(),te),D&&u.setRng(D),n;o.paste===!0&&Tb(m,te,oe,e.getBody())&&((r=te.firstChild)===null||r===void 0||r.unwrap()),_B(te);let xe=te.lastChild;if(xe&&xe.attr("id")==="mce_marker"){const we=xe;for(xe=xe.prev;xe;xe=xe.walk(!0))if(xe.type===3||!m.isBlock(xe.name)){xe.parent&&e.schema.isValidChild(xe.parent.name,"span")&&xe.parent.insert(we,xe,xe.name==="br");break}}if(e._selectionOverrides.showBlockCaretContainer(oe),!G.invalid)n=x.serialize(te),PC(e,n,oe);else{e.selection.setContent(M);let we=u.getNode(),De;const He=e.getBody();for(nm(we)?we=De=He:De=we;De&&De!==He;)we=De,De=De.parentNode;n=we===He?He.innerHTML:m.getOuterHTML(we);const ht=b.parse(n),Jt=vz(ht),Wt=Jt.bind(rz).getOr(ht);Jt.each(jn=>jn.replace(te));const et=te.children(),Qe=(c=te.parent)!==null&&c!==void 0?c:ht;te.unwrap();const pn=Be(et,jn=>az(e.schema,jn,Qe));QE(pn,e.schema,Wt),xb(b.getNodeFilters(),b.getAttributeFilters(),ht),n=x.serialize(ht),we===He?m.setHTML(He,n):m.setOuterHTML(we,n)}return pz(e,v),bz(e,m.get("mce_marker")),hz(e.getBody()),gz(m,u.getStart()),mf(e.schema,e.getBody(),u.getStart()),n},ew=e=>e instanceof vl,SB=e=>{Kp(e)&&Qi(e.getBody()).each(n=>{const o=n.getNode(),r=Yr(o)?Qi(o).getOr(n):n;e.selection.setRng(r.toRange())})},FC=(e,n,o)=>{e.dom.setHTML(e.getBody(),n),o!==!0&&SB(e)},xB=(e,n,o,r)=>{if(o.length===0||/^\s+$/.test(o)){const c='
    ';n.nodeName==="TABLE"?o=""+c+"":/^(UL|OL)$/.test(n.nodeName)&&(o="
  • "+c+"
  • ");const u=Pl(e);return e.schema.isValidChild(n.nodeName.toLowerCase(),u.toLowerCase())?(o=c,o=e.dom.createHTML(u,jh(e),o)):o||(o=c),FC(e,o,r.no_selection),{content:o,html:o}}else{r.format!=="raw"&&(o=Yp({validate:!1},e.schema).serialize(e.parser.parse(o,{isRootContent:!0,insert:!0})));const c=tc(ue.fromDom(n))?o:wt.trim(o);return FC(e,c,r.no_selection),{content:c,html:c}}},TB=(e,n,o,r)=>{xb(e.parser.getNodeFilters(),e.parser.getAttributeFilters(),o);const c=Yp({validate:!1},e.schema).serialize(o),u=tc(ue.fromDom(n))?c:wt.trim(c);return FC(e,u,r.no_selection),{content:o,html:u}},IC=(e,n,o)=>I.from(e.getBody()).map(r=>ew(n)?TB(e,r,n,o):xB(e,r,n,o)).getOr({content:n,html:ew(o.content)?"":o.content}),kz=(e,n,o)=>vr(e,n,o).isSome(),a3=(e,n)=>R(e,n).isSome(),wz=e=>ce(e)?e:Te,EB=(e,n,o)=>{let r=e.dom;const c=wz(o);for(;r.parentNode;){r=r.parentNode;const u=ue.fromDom(r),m=n(u);if(m.isSome())return m;if(c(u))break}return I.none()},LC=(e,n,o)=>{const r=n(e),c=wz(o);return r.orThunk(()=>c(e)?I.none():EB(e,n,c))},tw=nk,c3=(e,n,o)=>{const r=e.formatter.get(o);if(r)for(let c=0;c{const u=e.dom.getRoot();if(n===u)return!1;const m=e.dom.getParent(n,b=>c3(e,b,o)?!0:b.parentNode===u||!!Gu(e,b,o,r,!0));return!!Gu(e,m,o,r,c)},HC=(e,n,o)=>Ya(o)&&tw(n,o.inline)||Mr(o)&&tw(n,o.block)?!0:Li(o)?dn(n)&&e.is(n,o.selector):!1,_z=(e,n,o,r,c,u)=>{const m=o[r],b=r==="attributes";if(ce(o.onmatch))return o.onmatch(n,o,r);if(m){if(Lt(m)){for(let v=0;v{const u=e.formatter.get(o),m=e.dom;if(u&&dn(n))for(let b=0;b{if(r)return i3(e,r,n,o,c);if(r=e.selection.getNode(),i3(e,r,n,o,c))return!0;const u=e.selection.getStart();return!!(u!==r&&i3(e,u,n,o,c))},AB=(e,n,o)=>{const r=[],c={},u=e.selection.getStart();return e.dom.getParent(u,m=>{for(let b=0;b{const o=c=>Ps(c,ue.fromDom(e.getBody())),r=(c,u)=>Gu(e,c.dom,u)?I.some(u):I.none();return I.from(e.selection.getStart(!0)).bind(c=>LC(ue.fromDom(c),u=>js(n,m=>r(u,m)),o)).getOrNull()},La=(e,n)=>{const o=e.formatter.get(n),r=e.dom;if(o){const c=e.selection.getStart(),u=g1(r,c);for(let m=o.length-1;m>=0;m--){const b=o[m];if(!Li(b))return!0;for(let v=u.length-1;v>=0;v--)if(r.is(u[v],b.selector))return!0}}return!1},u3=(e,n,o)=>he(o,(r,c)=>{const u=bc(e,c);return e.formatter.matchNode(n,c,{},u)?r.concat([c]):r},[]),eh=fe,jg=(e,n)=>e.importNode(n,!0),Cz=e=>{const n=[];let o=e;for(;o;){if(Bt(o)&&o.data!==eh||o.childNodes.length>1)return[];dn(o)&&n.push(o),o=o.firstChild}return n},VC=e=>Cz(e).length>0,F1=e=>{if(e){const n=new $a(e,e);for(let o=n.current();o;o=n.next())if(Bt(o))return o}return null},d3=e=>{const n=ue.fromTag("span");return uc(n,{id:ym,"data-mce-bogus":"1","data-mce-type":"format-caret"}),e&&Kr(n,ue.fromText(eh)),n},OB=e=>{const n=F1(e);return n&&n.data.charAt(0)===eh&&n.deleteData(0,1),n},th=(e,n,o=!0)=>{const r=e.dom,c=e.selection;if(VC(n))_b(e,!1,ue.fromDom(n),o);else{const u=c.getRng(),m=r.getParent(n,r.isBlock),b=u.startContainer,v=u.startOffset,x=u.endContainer,M=u.endOffset,D=OB(n);r.remove(n,!0),b===D&&v>0&&u.setStart(D,v-1),x===D&&M>0&&u.setEnd(D,M-1),m&&r.isEmpty(m)&&F(ue.fromDom(m)),c.setRng(u)}},f3=(e,n,o=!0)=>{const r=e.dom,c=e.selection;if(n)th(e,n,o);else if(n=Tf(e.getBody(),c.getStart()),!n)for(;n=r.get(ym);)th(e,n,!1)},Ab=(e,n,o)=>{var r,c;const u=e.dom,m=u.getParent(o,Ye(tk,e.schema));m&&u.isEmpty(m)?(r=o.parentNode)===null||r===void 0||r.replaceChild(n,o):(w(ue.fromDom(o)),u.isEmpty(o)?(c=o.parentNode)===null||c===void 0||c.replaceChild(n,o):u.insertAfter(n,o))},Sz=(e,n)=>(e.appendChild(n),n),Wg=(e,n)=>{var o;const r=ke(e,(u,m)=>Sz(u,m.cloneNode(!1)),n),c=(o=r.ownerDocument)!==null&&o!==void 0?o:document;return Sz(r,c.createTextNode(eh))},Ld=(e,n,o,r,c,u)=>{const m=e.formatter,b=e.dom,v=Be(Es(m.get()),D=>D!==r&&!Qn(D,"removeformat")),x=u3(e,o,v);if(Be(x,D=>!p1(e,D,r)).length>0){const D=o.cloneNode(!1);return b.add(n,D),m.remove(r,c,D,u),b.remove(D),I.some(D)}else return I.none()},UC=(e,n,o)=>{let r;const c=e.selection,u=e.formatter.get(n);if(!u)return;const m=c.getRng();let b=m.startOffset;const x=m.startContainer.nodeValue;r=Tf(e.getBody(),c.getStart());const M=/[^\s\u00a0\u00ad\u200b\ufeff]/;if(x&&b>0&&b{const c=e.dom,u=e.selection;let m=!1;const b=e.formatter.get(n);if(!b)return;const v=u.getRng(),x=v.startContainer,M=v.startOffset;let D=x;Bt(x)&&(M!==x.data.length&&(m=!0),D=D.parentNode);const L=[];let ee;for(;D;){if(Gu(e,D,n,o,r)){ee=D;break}D.nextSibling&&(m=!0),L.push(D),D=D.parentNode}if(ee)if(m){const oe=u.getBookmark();v.collapse(!0);let G=Pg(c,v,b,!0);G=O1(G),e.formatter.remove(n,o,G,r),u.moveToBookmark(oe)}else{const oe=Tf(e.getBody(),ee),G=d3(!1).dom;Ab(e,G,oe??ee);const te=Ld(e,G,ee,n,o,r),xe=Wg(L.concat(te.toArray()),G);oe&&th(e,oe,!1),u.setCursorLocation(xe,1),c.isEmpty(ee)&&c.remove(ee)}},zB=(e,n)=>{const o=e.selection,r=e.getBody();f3(e,null,!1),(n===8||n===46)&&o.isCollapsed()&&o.getStart().innerHTML===eh&&f3(e,Tf(r,o.getStart())),(n===37||n===39)&&f3(e,Tf(r,o.getStart()))},DB=e=>{e.on("mouseup keydown",n=>{zB(e,n.keyCode)})},nw=e=>{const n=d3(!1),o=Wg(e,n.dom);return{caretContainer:n,caretPosition:Ne(o,0)}},xz=(e,n)=>{const{caretContainer:o,caretPosition:r}=nw(n);return Is(ue.fromDom(e),o),fr(ue.fromDom(e)),r},Hd=(e,n)=>{const{caretContainer:o,caretPosition:r}=nw(n);return e.selection.getRng().insertNode(o.dom),r},ow=(e,n)=>{const o=e.schema.getTextInlineElements();return Un(o,Ws(n))&&!oa(n.dom)&&!gi(n.dom)},g3=e=>oa(e.dom)&&VC(e.dom),Ob={},jC=oi(["pre"]),zb=(e,n)=>{Ob[e]||(Ob[e]=[]),Ob[e].push(n)},p3=(e,n)=>{Un(Ob,e)&&Y(Ob[e],o=>{o(n)})};zb("pre",e=>{const n=e.selection.getRng(),o=c=>u=>{const m=u.previousSibling;return jC(m)&&ne(c,m)},r=(c,u)=>{const m=ue.fromDom(u),b=ti(m).dom;fr(m),Ru(ue.fromDom(c),[ue.fromTag("br",b),ue.fromTag("br",b),...ja(m)])};if(!n.collapsed){const c=e.selection.getSelectedBlocks(),u=Be(Be(c,jC),o(c));Y(u,m=>{r(m.previousSibling,m)})}});const Tz=["fontWeight","fontStyle","color","fontSize","fontFamily"],Ez=e=>dt(e.styles)&&Me(Es(e.styles),n=>ne(Tz,n)),RB=e=>It(e,n=>Ya(n)&&n.inline==="span"&&Ez(n)),Az=(e,n)=>{const o=e.get(n);return kt(o)?RB(o):I.none()},Oz=(e,n)=>pu(n,Ne.fromRangeStart(e)).isNone(),zz=(e,n)=>bl(n,Ne.fromRangeEnd(e)).exists(o=>!Vr(o.getNode())||bl(n,o).isSome())===!1,I1=e=>n=>vd(n)&&e.isEditable(n),MB=e=>{const n=e.getSelectedBlocks(),o=e.getRng();if(e.isCollapsed())return[];if(n.length===1)return Oz(o,n[0])&&zz(o,n[0])?n:[];{const r=Yn(n).filter(m=>Oz(o,m)).toArray(),c=Lo(n).filter(m=>zz(o,m)).toArray(),u=n.slice(1,-1);return r.concat(u).concat(c)}},Dz=e=>Be(MB(e),I1(e.dom)),WC=e=>Be(e.getSelectedBlocks(),I1(e.dom)),h3=wt.each,ZC=e=>dn(e)&&!yl(e)&&!oa(e)&&!gi(e),b3=(e,n)=>{for(let o=e;o;o=o[n]){if(Bt(o)&&io(o.data))return e;if(dn(o)&&!yl(o))return o}return e},Rz=(e,n,o)=>{const r=N1(e),c=dn(n)&&Pd(n),u=dn(o)&&Pd(o);if(c&&u){const m=b3(n,"previousSibling"),b=b3(o,"nextSibling");if(r.compare(m,b)){for(let v=m.nextSibling;v&&v!==b;){const x=v;v=v.nextSibling,m.appendChild(x)}return e.dom.remove(b),wt.each(wt.grep(b.childNodes),v=>{m.appendChild(v)}),m}}return o},Mz=(e,n,o,r)=>{var c;if(r&&n.merge_siblings!==!1){const u=(c=Rz(e,G2(r),r))!==null&&c!==void 0?c:r;Rz(e,u,G2(u,!0))}},NB=(e,n,o)=>{if(n.clear_child_styles){const r=n.links?"*:not(a)":"*";h3(e.select(r,o),c=>{ZC(c)&&Pd(c)&&h3(n.styles,(u,m)=>{e.setStyle(c,m,"")})})}},y3=(e,n,o)=>{h3(e.childNodes,r=>{ZC(r)&&(n(r)&&o(r),r.hasChildNodes()&&y3(r,n,o))})},BB=(e,n)=>{n.nodeName==="SPAN"&&e.getAttribs(n).length===0&&e.remove(n,!0)},Nz=(e,n)=>o=>!!(o&&m1(e,o,n)),Bz=(e,n,o)=>r=>{e.setStyle(r,n,o),r.getAttribute("style")===""&&r.removeAttribute("style"),BB(e,r)},Db=fu.generate([{keep:[]},{rename:["name"]},{removed:[]}]),PB=/^(src|href|style)$/,v3=wt.each,qC=nk,$B=e=>/^(TR|TH|TD)$/.test(e.nodeName),Pz=(e,n,o)=>e.isChildOf(n,o)&&n!==o&&!e.isBlock(o),k3=(e,n,o)=>{let r=n[o?"startContainer":"endContainer"],c=n[o?"startOffset":"endOffset"];if(dn(r)){const u=r.childNodes.length-1;!o&&c&&c--,r=r.childNodes[c>u?u:c]}return Bt(r)&&o&&c>=r.data.length&&(r=new $a(r,e.getBody()).next()||r),Bt(r)&&!o&&c===0&&(r=new $a(r,e.getBody()).prev()||r),r},$z=(e,n)=>{const o=n?"firstChild":"lastChild",r=e[o];return $B(e)&&r?e.nodeName==="TR"&&r[o]||r:e},nh=(e,n,o,r)=>{var c;const u=e.create(o,r);return(c=n.parentNode)===null||c===void 0||c.insertBefore(u,n),u.appendChild(n),u},Fz=(e,n,o,r,c)=>{const u=ue.fromDom(n),m=ue.fromDom(e.create(r,c)),b=o?ni(u):sp(u);return Ru(m,b),o?(Is(u,m),gd(m,u)):(Du(u,m),Kr(m,u)),m.dom},FB=(e,n)=>n.links&&e.nodeName==="A",Iz=(e,n,o)=>{const r=n.parentNode;let c;const u=e.dom,m=Pl(e);Mr(o)&&r===u.getRoot()&&(!o.list_block||!qC(n,o.list_block))&&Y(Cs(n.childNodes),b=>{Lp(e,m,b.nodeName.toLowerCase())?c?c.appendChild(b):(c=nh(u,b,m),u.setAttribs(c,jh(e))):c=null}),!(h1(o)&&!qC(o.inline,n))&&u.remove(n,!0)},Lz=(e,n,o)=>ze(e)?{name:n,value:null}:{name:e,value:_m(n,o)},w3=(e,n)=>{e.getAttrib(n,"style")===""&&(n.removeAttribute("style"),n.removeAttribute("data-mce-style"))},Hz=(e,n,o,r,c)=>{let u=!1;v3(o.styles,(m,b)=>{const{name:v,value:x}=Lz(b,m,r),M=ok(x,v);(o.remove_similar||U(x)||!dn(c)||qC(m1(e,c,v),M))&&e.setStyle(n,v,""),u=!0}),u&&w3(e,n)},IB=(e,n,o)=>{n==="removeformat"?Y(WC(e.selection),r=>{Y(Tz,c=>e.dom.setStyle(r,c,"")),w3(e.dom,r)}):Az(e.formatter,n).each(r=>{Y(WC(e.selection),c=>Hz(e.dom,c,r,o,null))})},Vz=(e,n,o,r,c)=>{const u=e.dom,m=N1(e),b=e.schema;if(Ya(n)&&Eh(b,n.inline)&&gf(b,r)&&r.parentElement===e.getBody())return Iz(e,r,n),Db.removed();if(!n.ceFalseOverride&&r&&u.getContentEditableParent(r)==="false"||r&&!HC(u,r,n)&&!FB(r,n))return Db.keep();const v=r,x=n.preserve_attributes;if(Ya(n)&&n.remove==="all"&&kt(x)){const M=Be(u.getAttribs(v),D=>ne(x,D.name.toLowerCase()));if(u.removeAllAttribs(v),Y(M,D=>u.setAttrib(v,D.name,D.value)),M.length>0)return Db.rename("span")}if(n.remove!=="all"){Hz(u,v,n,o,c),v3(n.attributes,(D,L)=>{const{name:ee,value:oe}=Lz(L,D,o);if(n.remove_similar||U(oe)||!dn(c)||qC(u.getAttrib(c,ee),oe)){if(ee==="class"){const G=u.getAttrib(v,ee);if(G){let te="";if(Y(G.split(/\s+/),xe=>{/mce\-\w+/.test(xe)&&(te+=(te?" ":"")+xe)}),te){u.setAttrib(v,ee,te);return}}}if(PB.test(ee)&&v.removeAttribute("data-mce-"+ee),ee==="style"&&oi(["li"])(v)&&u.getStyle(v,"list-style-type")==="none"){v.removeAttribute(ee),u.setStyle(v,"list-style-type","none");return}ee==="class"&&v.removeAttribute("className"),v.removeAttribute(ee)}}),v3(n.classes,D=>{D=_m(D,o),(!dn(c)||u.hasClass(c,D))&&u.removeClass(v,D)});const M=u.getAttribs(v);for(let D=0;DVz(e,n,o,r,c).fold(Te,u=>(e.dom.rename(r,u),!0),lt),LB=(e,n,o,r,c)=>{let u;return n.parentNode&&Y(g1(e.dom,n.parentNode).reverse(),m=>{if(!u&&dn(m)&&m.id!=="_start"&&m.id!=="_end"){const b=Gu(e,m,o,r,c);b&&b.split!==!1&&(u=m)}}),u},HB=(e,n,o,r)=>Vz(e,n,o,r,r).fold(nt(r),c=>(e.dom.createFragment().appendChild(r),e.dom.rename(r,c)),nt(null)),VB=(e,n,o,r,c,u,m,b)=>{var v,x;let M,D;const L=e.dom;if(o){const ee=o.parentNode;for(let oe=r.parentNode;oe&&oe!==ee;oe=oe.parentNode){let G=L.clone(oe,!1);for(let te=0;te{const u=e.formatter.get(n),m=u[0],b=e.dom,v=e.selection,x=G=>{const te=LB(e,G,n,o,c);return VB(e,u,te,G,G,!0,m,o)},M=G=>yl(G)&&dn(G)&&(G.id==="_start"||G.id==="_end"),D=G=>Me(u,te=>sw(e,te,o,G,G)),L=G=>{const te=Cs(G.childNodes),we=D(G)||Me(u,ht=>HC(b,G,ht)),De=G.parentNode;if(!we&&Ke(De)&&b1(m)&&D(De),m.deep&&te.length)for(let ht=0;ht{dn(G)&&e.dom.getStyle(G,"text-decoration")===ht&&G.parentNode&&Bg(b,G.parentNode)===ht&&sw(e,{deep:!1,exact:!0,inline:"span",styles:{textDecoration:ht}},void 0,G)})},ee=G=>{const te=b.get(G?"_start":"_end");if(te){let xe=te[G?"firstChild":"lastChild"];return M(xe)&&(xe=xe[G?"firstChild":"lastChild"]),Bt(xe)&&xe.data.length===0&&(xe=G?te.previousSibling||te.nextSibling:te.nextSibling||te.previousSibling),b.remove(te,!0),xe}else return null},oe=G=>{let te,xe,we=Pg(b,G,u,G.collapsed);if(m.split){if(we=O1(we),te=k3(e,we,!0),xe=k3(e,we),te!==xe){if(te=$z(te,!0),xe=$z(xe,!1),Pz(b,te,xe)){const He=I.from(te.firstChild).getOr(te);x(Fz(b,He,!0,"span",{id:"_start","data-mce-type":"bookmark"})),ee(!0);return}if(Pz(b,xe,te)){const He=I.from(xe.lastChild).getOr(xe);x(Fz(b,He,!1,"span",{id:"_end","data-mce-type":"bookmark"})),ee(!1);return}te=nh(b,te,"span",{id:"_start","data-mce-type":"bookmark"}),xe=nh(b,xe,"span",{id:"_end","data-mce-type":"bookmark"});const De=b.createRng();De.setStartAfter(te),De.setEndBefore(xe),Vp(b,De,He=>{Y(He,ht=>{!yl(ht)&&!yl(ht.parentNode)&&x(ht)})}),x(te),x(xe),te=ee(!0),xe=ee()}else te=xe=x(te);we.startContainer=te.parentNode?te.parentNode:te,we.startOffset=b.nodeIndex(te),we.endContainer=xe.parentNode?xe.parentNode:xe,we.endOffset=b.nodeIndex(xe)+1}Vp(b,we,De=>{Y(De,L)})};if(r){if(lb(r)){const G=b.createRng();G.setStartBefore(r),G.setEndAfter(r),oe(G)}else oe(r);bk(e,n,r,o);return}!v.isCollapsed()||!Ya(m)||Mg(e).length?(wm(e,()=>ek(e,oe),G=>Ya(m)&&$f(e,n,o,G)),e.nodeChanged()):m3(e,n,o,c),IB(e,n,o),bk(e,n,r,o)},jz=wt.each,UB=(e,n,o,r)=>{const c=u=>{if(dn(u)&&dn(u.parentNode)&&Pd(u)){const m=Bg(e,u.parentNode);e.getStyle(u,"color")&&m?e.setStyle(u,"text-decoration",m):e.getStyle(u,"text-decoration")===m&&e.setStyle(u,"text-decoration",null)}};n.styles&&(n.styles.color||n.styles.textDecoration)&&(wt.walk(r,c,"childNodes"),c(r))},_3=(e,n,o,r)=>{if(n.styles&&n.styles.backgroundColor){const c=Nz(e,"fontSize");y3(r,u=>c(u)&&Pd(u),Bz(e,"backgroundColor",_m(n.styles.backgroundColor,o)))}},Wz=(e,n,o,r)=>{if(Ya(n)&&(n.inline==="sub"||n.inline==="sup")){const c=Nz(e,"fontSize");y3(r,m=>c(m)&&Pd(m),Bz(e,"fontSize",""));const u=Be(e.select(n.inline==="sup"?"sub":"sup",r),Pd);e.remove(u,!0)}},ij=(e,n,o,r)=>{jz(n,c=>{Ya(c)&&jz(e.dom.select(c.inline,r),u=>{ZC(u)&&sw(e,c,o,u,c.exact?u:null)}),NB(e.dom,c,r)})},rw=(e,n,o,r,c)=>{const u=c.parentNode;Gu(e,u,o,r)&&sw(e,n,r,c)||n.merge_with_parents&&u&&e.dom.getParent(u,m=>Gu(e,m,o,r)?(sw(e,n,r,c),!0):!1)},aw=wt.each,cw=(e,n,o,r)=>{if(m2(e)&&Ya(n)&&o.parentNode){const c=O_(e.schema),u=a3(ue.fromDom(o),m=>oa(m.dom));return Cr(c,r)&&ir(ue.fromDom(o.parentNode),!1)&&!u}else return!1},L1=(e,n,o,r)=>{if(aw(o.styles,(c,u)=>{e.setStyle(n,u,_m(c,r))}),o.styles){const c=e.getAttrib(n,"style");c&&e.setAttrib(n,"data-mce-style",c)}},C3=(e,n,o,r)=>{const c=e.formatter.get(n),u=c[0],m=!r&&e.selection.isCollapsed(),b=e.dom,v=e.selection,x=(oe,G=u)=>{ce(G.onformat)&&G.onformat(oe,G,o,r),L1(b,oe,G,o),aw(G.attributes,(te,xe)=>{b.setAttrib(oe,xe,_m(te,o))}),aw(G.classes,te=>{const xe=_m(te,o);b.hasClass(oe,xe)||b.addClass(oe,xe)})},M=(oe,G)=>{let te=!1;return aw(oe,xe=>Li(xe)?b.getContentEditable(G)==="false"&&!xe.ceFalseOverride||Ke(xe.collapsed)&&xe.collapsed!==m?!0:b.is(G,xe.selector)&&!oa(G)?(x(G,xe),te=!0,!1):!0:!1),te},D=oe=>{if(q(oe)){const G=b.create(oe);return x(G),G}else return null},L=(oe,G,te)=>{const xe=[];let we=!0;const De=u.inline||u.block,He=D(De),ht=et=>hu(u)&&Gu(e,et,n,o),Jt=(et,Qe,pn)=>{const jn=Y2(u)&&tk(e.schema,et)&&Lp(e,Qe,De);return pn&&jn},Wt=(et,Qe,pn,jn)=>{const co=et.nodeName.toLowerCase(),Wo=Lp(e,De,co)&&Lp(e,Qe,De),ms=!te&&Bt(et)&&it(et.data),Zs=oa(et),hr=!Ya(u)||!oe.isBlock(et);return(pn||jn)&&Wo&&!ms&&!Zs&&hr};Vp(oe,G,et=>{let Qe;const pn=jn=>{let co=!1,Wo=we,ms=!1;const Zs=jn.parentNode,hr=Zs.nodeName.toLowerCase(),wa=oe.getContentEditable(jn);Ke(wa)&&(Wo=we,we=wa==="true",co=!0,ms=K2(e,jn));const Uc=we&&!co;if(Vr(jn)&&!cw(e,u,jn,hr)){Qe=null,Mr(u)&&oe.remove(jn);return}if(ht(jn)){Qe=null;return}if(Jt(jn,hr,Uc)){const kc=oe.rename(jn,De);x(kc),xe.push(kc),Qe=null;return}if(Li(u)){let kc=M(c,jn);if(!kc&&Ke(Zs)&&b1(u)&&(kc=M(c,Zs)),!Ya(u)||kc){Qe=null;return}}Ke(He)&&Wt(jn,hr,Uc,ms)?(Qe||(Qe=oe.clone(He,!1),Zs.insertBefore(Qe,jn),xe.push(Qe)),ms&&co&&(we=Wo),Qe.appendChild(jn)):(Qe=null,Y(Cs(jn.childNodes),pn),co&&(we=Wo),Qe=null)};Y(et,pn)}),u.links===!0&&Y(xe,et=>{const Qe=pn=>{pn.nodeName==="A"&&x(pn,u),Y(Cs(pn.childNodes),Qe)};Qe(et)}),Y(xe,et=>{const Qe=co=>{let Wo=0;return Y(co.childNodes,ms=>{!eE(ms)&&!yl(ms)&&Wo++}),Wo},pn=co=>It(co.childNodes,Af).filter(ms=>oe.getContentEditable(ms)!=="false"&&HC(oe,ms,u)).map(ms=>{const Zs=oe.clone(ms,!1);return x(Zs),oe.replace(Zs,co,!0),oe.remove(ms,!0),Zs}).getOr(co),jn=Qe(et);if((xe.length>1||!oe.isBlock(et))&&jn===0){oe.remove(et,!0);return}(Ya(u)||Mr(u)&&u.wrapper)&&(!u.exact&&jn===1&&(et=pn(et)),ij(e,c,o,et),rw(e,u,n,o,et),_3(oe,u,o,et),UB(oe,u,o,et),Wz(oe,u,o,et),Mz(e,u,o,et))})},ee=lb(r)?r:v.getNode();if(b.getContentEditable(ee)==="false"&&!K2(e,ee)){r=ee,M(c,r),hk(e,n,r,o);return}if(u){if(r)if(lb(r)){if(!M(c,r)){const oe=b.createRng();oe.setStartBefore(r),oe.setEndAfter(r),L(b,Pg(b,oe,c),!0)}}else L(b,r,!0);else!m||!Ya(u)||Mg(e).length?(v.setRng(Jk(v.getRng())),wm(e,()=>{ek(e,(oe,G)=>{const te=G?oe:Pg(b,oe,c);L(b,te,!1)})},lt),e.nodeChanged()):UC(e,n,o),Az(e.formatter,n).each(oe=>{Y(Dz(e.selection),G=>L1(b,G,oe,o))});p3(n,e)}hk(e,n,r,o)},jB=e=>Un(e,"vars"),WB=(e,n)=>{e.set({}),n.on("NodeChange",o=>{qB(n,o.element,e.get())}),n.on("FormatApply FormatRemove",o=>{const r=I.from(o.node).map(c=>lb(c)?c:c.startContainer).bind(c=>dn(c)?I.some(c):I.from(c.parentElement)).getOrThunk(()=>ZB(n));qB(n,r,e.get())})},ZB=e=>e.selection.getStart(),Zz=(e,n,o,r,c)=>bt(n,b=>{const v=e.formatter.matchNode(b,o,c??{},r);return!In(v)},b=>c3(e,b,o)?!0:r?!1:Ke(e.formatter.matchNode(b,o,c,!0))),qz=(e,n)=>{const o=n??ZB(e);return Be(g1(e.dom,o),r=>dn(r)&&!gi(r))},qB=(e,n,o)=>{const r=qz(e,n);Nt(o,(c,u)=>{const m=b=>{const v=Zz(e,r,u,b.similar,jB(b)?b.vars:void 0),x=v.isSome();if(b.state.get()!==x){b.state.set(x);const M=v.getOr(n);jB(b)?b.callback(x,{node:M,format:u,parents:r}):Y(b.callbacks,D=>D(x,{node:M,format:u,parents:r}))}};Y([c.withSimilar,c.withoutSimilar],m),Y(c.withVars,m)})},GB=(e,n,o,r,c,u)=>{const m=n.get();Y(o.split(","),b=>{const v=ns(m,b).getOrThunk(()=>{const M={withSimilar:{state:Za(!1),similar:!0,callbacks:[]},withoutSimilar:{state:Za(!1),similar:!1,callbacks:[]},withVars:[]};return m[b]=M,M}),x=()=>{const M=qz(e);return Zz(e,M,b,c,u).isSome()};if(In(u)){const M=c?v.withSimilar:v.withoutSimilar;M.callbacks.push(r),M.callbacks.length===1&&M.state.set(x())}else v.withVars.push({state:Za(x()),similar:c,vars:u,callback:r})}),n.set(m)},Gz=(e,n,o)=>{const r=e.get();Y(n.split(","),c=>ns(r,c).each(u=>{r[c]={withSimilar:{...u.withSimilar,callbacks:Be(u.withSimilar.callbacks,m=>m!==o)},withoutSimilar:{...u.withoutSimilar,callbacks:Be(u.withoutSimilar.callbacks,m=>m!==o)},withVars:Be(u.withVars,m=>m.callback!==o)}})),e.set(r)},KB=(e,n,o,r,c,u)=>(GB(e,n,o,r,c,u),{unbind:()=>Gz(n,o,r)}),Kz=(e,n,o,r)=>{const c=e.formatter.get(n);c&&($f(e,n,o,r)&&(!("toggle"in c[0])||c[0].toggle)?Uz(e,n,o,r):C3(e,n,o,r))},Yz=wt.explode,iw=()=>{const e={};return{addFilter:(c,u)=>{Y(Yz(c),m=>{Un(e,m)||(e[m]={name:m,callbacks:[]}),e[m].callbacks.push(u)})},getFilters:()=>Rr(e),removeFilter:(c,u)=>{Y(Yz(c),m=>{if(Un(e,m))if(Ke(u)){const b=e[m],v=Be(b.callbacks,x=>x!==u);v.length>0?b.callbacks=v:delete e[m]}else delete e[m]})}}},Xz=(e,n)=>{Y(n,o=>{e.attr(o,null)})},yc=(e,n,o)=>{e.addNodeFilter("font",r=>{Y(r,c=>{const u=n.parse(c.attr("style")),m=c.attr("color"),b=c.attr("face"),v=c.attr("size");m&&(u.color=m),b&&(u["font-family"]=b),v&&Wr(v).each(x=>{u["font-size"]=o[x-1]}),c.name="span",c.attr("style",n.serialize(u)),Xz(c,["color","face","size"])})})},lj=(e,n,o)=>{e.addNodeFilter("strike",r=>{const c=n.type!=="html4";Y(r,u=>{if(c)u.name="s";else{const m=o.parse(u.attr("style"));m["text-decoration"]="line-through",u.name="span",u.attr("style",o.serialize(m))}})})},uj=(e,n,o)=>{var r;const c=Sy();n.convert_fonts_to_spans&&yc(e,c,wt.explode((r=n.font_size_legacy_values)!==null&&r!==void 0?r:"")),lj(e,o,c)},dj=(e,n,o)=>{n.inline_styles&&uj(e,n,o)},fj=e=>fetch(e).then(n=>n.ok?n.blob():Promise.reject()).catch(()=>Promise.reject(`Cannot convert ${e} to Blob. Resource might not exist or is inaccessible.`)),Vd=e=>{const n=/([a-z0-9+\/=\s]+)/i.exec(e);return n?n[1]:""},H1=e=>{const[n,...o]=e.split(","),r=o.join(","),c=/data:([^/]+\/[^;]+)(;.+)?/.exec(n);if(c){const u=c[2]===";base64",m=u?Vd(r):decodeURIComponent(r);return I.some({type:c[1],data:m,base64Encoded:u})}else return I.none()},oh=(e,n,o=!0)=>{let r=n;if(o)try{r=atob(n)}catch{return I.none()}const c=new Uint8Array(r.length);for(let u=0;unew Promise((n,o)=>{H1(e).bind(({type:r,data:c,base64Encoded:u})=>oh(r,c,u)).fold(()=>o("Invalid data URI"),n)}),YB=e=>eo(e,"blob:")?fj(e):eo(e,"data:")?Rb(e):Promise.reject("Unknown URI format"),Jz=e=>new Promise((n,o)=>{const r=new FileReader;r.onloadend=()=>{n(r.result)},r.onerror=()=>{var c;o((c=r.error)===null||c===void 0?void 0:c.message)},r.readAsDataURL(e)});let V1=0;const U1=e=>(e||"blobid")+V1++,Mb=(e,n,o)=>H1(e).bind(({data:r,type:c,base64Encoded:u})=>{if(n&&!u)return I.none();{const m=u?r:btoa(r);return o(m,c)}}),Qz=(e,n,o)=>{const r=e.create(U1(),n,o);return e.add(r),r},GC=(e,n,o=!1)=>Mb(n,o,(r,c)=>I.from(e.getByData(r,c)).orThunk(()=>oh(c,r).map(u=>Qz(e,u,r)))),eD=(e,n)=>{const o=()=>Promise.reject("Invalid data URI");if(eo(n,"blob:")){const r=e.getByUri(n);return Ke(r)?Promise.resolve(r):YB(n).then(c=>Jz(c).then(u=>Mb(u,!1,m=>I.some(Qz(e,c,m))).getOrThunk(o)))}else return eo(n,"data:")?GC(e,n).fold(o,r=>Promise.resolve(r)):Promise.reject("Unknown image data format")},tD=e=>Ke(e.attr("data-mce-bogus")),XB=e=>e.attr("src")===_s.transparentSrc||Ke(e.attr("data-mce-placeholder")),JB=(e,n)=>{const{blob_cache:o}=n;if(o){const r=c=>{const u=c.attr("src");XB(c)||tD(c)||zt(u)||GC(o,u,!0).each(m=>{c.attr("src",m.blobUri())})};e.addAttributeFilter("src",c=>Y(c,r))}},nD=(e,n)=>{const o=e.schema;n.remove_trailing_brs&&e.addNodeFilter("br",(c,u,m)=>{const b=wt.extend({},o.getBlockElements()),v=o.getNonEmptyElements(),x=o.getWhitespaceElements();b.body=1;const M=D=>D.name in b&&Nv(o,D);for(let D=0,L=c.length;D{let u=c.length;const m=v=>v.split(" ").filter(M=>M.length>0).concat(["noopener"]).sort().join(" "),b=v=>{const x=v?wt.trim(v):"";return/\b(noopener)\b/g.test(x)?x:m(x)};if(!n.allow_unsafe_link_target)for(;u--;){const v=c[u];v.name==="a"&&v.attr("target")==="_blank"&&v.attr("rel",b(v.attr("rel")))}}),n.allow_html_in_named_anchor||e.addAttributeFilter("id,name",c=>{let u=c.length,m,b,v,x;for(;u--;)if(x=c[u],x.name==="a"&&x.firstChild&&!x.attr("href"))for(v=x.parent,m=x.lastChild;m&&v;)b=m.prev,v.insert(m,x),m=b}),n.fix_list_elements&&e.addNodeFilter("ul,ol",c=>{let u=c.length,m,b;for(;u--;)if(m=c[u],b=m.parent,b&&(b.name==="ul"||b.name==="ol"))if(m.prev&&m.prev.name==="li")m.prev.append(m);else{const v=new vl("li",1);v.attr("style","list-style-type: none"),m.wrap(v)}});const r=o.getValidClasses();n.validate&&r&&e.addAttributeFilter("class",c=>{var u;let m=c.length;for(;m--;){const b=c[m],v=(u=b.attr("class"))!==null&&u!==void 0?u:"",x=wt.explode(v," ");let M="";for(let D=0;D"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function KC(e,n,o){return QB()?KC=Reflect.construct:KC=function(c,u,m){var b=[null];b.push.apply(b,u);var v=Function.bind.apply(c,b),x=new v;return m&&S3(x,m.prototype),x},KC.apply(null,arguments)}function Ff(e){return oD(e)||eP(e)||lw(e)||tP()}function oD(e){if(Array.isArray(e))return YC(e)}function eP(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function lw(e,n){if(e){if(typeof e=="string")return YC(e,n);var o=Object.prototype.toString.call(e).slice(8,-1);if(o==="Object"&&e.constructor&&(o=e.constructor.name),o==="Map"||o==="Set")return Array.from(e);if(o==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return YC(e,n)}}function YC(e,n){(n==null||n>e.length)&&(n=e.length);for(var o=0,r=new Array(n);o1?o-1:0),c=1;c/gm),dD=If(/^data-[\-\w.\u00B7-\uFFFF]/),lP=If(/^aria-[\-\w]+$/),fD=If(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),uP=If(/^(?:\w+script|data):/i),mD=If(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),gw=If(/^html$/i),O3=function(){return typeof window>"u"?null:window},dP=function(n,o){if(Nb(n)!=="object"||typeof n.createPolicy!="function")return null;var r=null,c="data-tt-policy-suffix";o.currentScript&&o.currentScript.hasAttribute(c)&&(r=o.currentScript.getAttribute(c));var u="dompurify"+(r?"#"+r:"");try{return n.createPolicy(u,{createHTML:function(b){return b}})}catch{return console.warn("TrustedTypes policy "+u+" could not be created."),null}};function z3(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:O3(),n=function(rt){return z3(rt)};if(n.version="2.3.8",n.removed=[],!e||!e.document||e.document.nodeType!==9)return n.isSupported=!1,n;var o=e.document,r=e.document,c=e.DocumentFragment,u=e.HTMLTemplateElement,m=e.Node,b=e.Element,v=e.NodeFilter,x=e.NamedNodeMap,M=x===void 0?e.NamedNodeMap||e.MozNamedAttrMap:x,D=e.HTMLFormElement,L=e.DOMParser,ee=e.trustedTypes,oe=b.prototype,G=mw(oe,"cloneNode"),te=mw(oe,"nextSibling"),xe=mw(oe,"childNodes"),we=mw(oe,"parentNode");if(typeof u=="function"){var De=r.createElement("template");De.content&&De.content.ownerDocument&&(r=De.content.ownerDocument)}var He=dP(ee,o),ht=He?He.createHTML(""):"",Jt=r,Wt=Jt.implementation,et=Jt.createNodeIterator,Qe=Jt.createDocumentFragment,pn=Jt.getElementsByTagName,jn=o.importNode,co={};try{co=Lf(r).documentMode?r.documentMode:{}}catch{}var Wo={};n.isSupported=typeof we=="function"&&Wt&&typeof Wt.createHTMLDocument<"u"&&co!==9;var ms=iP,Zs=Bb,hr=dD,wa=lP,Uc=uP,kc=mD,Vt=fD,Bn=null,Ts=lr({},[].concat(Ff(QC),Ff(eS),Ff(tS),Ff(A3),Ff(nS))),sn=null,to=lr({},[].concat(Ff(lD),Ff(oS),Ff(uD),Ff(sS))),so=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),an=null,cs=null,is=!0,Mc=!0,$r=!1,$o=!1,Ms=!1,or=!1,br=!1,ua=!1,Da=!1,jr=!1,Xa=!0,Ju=!0,ii=!1,jf={},Gl=null,ny=lr({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),oy=null,Wf=lr({},["audio","video","img","source","image","track"]),Jd=null,cc=lr({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Qu="http://www.w3.org/1998/Math/MathML",Zf="http://www.w3.org/2000/svg",Vi="http://www.w3.org/1999/xhtml",ed=Vi,Vm=!1,xi,Qg=["application/xhtml+xml","text/html"],qf="text/html",Kl,Um=null,f_=r.createElement("form"),Vx=function(rt){return rt instanceof RegExp||rt instanceof Function},m_=function(rt){Um&&Um===rt||((!rt||Nb(rt)!=="object")&&(rt={}),rt=Lf(rt),Bn="ALLOWED_TAGS"in rt?lr({},rt.ALLOWED_TAGS):Ts,sn="ALLOWED_ATTR"in rt?lr({},rt.ALLOWED_ATTR):to,Jd="ADD_URI_SAFE_ATTR"in rt?lr(Lf(cc),rt.ADD_URI_SAFE_ATTR):cc,oy="ADD_DATA_URI_TAGS"in rt?lr(Lf(Wf),rt.ADD_DATA_URI_TAGS):Wf,Gl="FORBID_CONTENTS"in rt?lr({},rt.FORBID_CONTENTS):ny,an="FORBID_TAGS"in rt?lr({},rt.FORBID_TAGS):{},cs="FORBID_ATTR"in rt?lr({},rt.FORBID_ATTR):{},jf="USE_PROFILES"in rt?rt.USE_PROFILES:!1,is=rt.ALLOW_ARIA_ATTR!==!1,Mc=rt.ALLOW_DATA_ATTR!==!1,$r=rt.ALLOW_UNKNOWN_PROTOCOLS||!1,$o=rt.SAFE_FOR_TEMPLATES||!1,Ms=rt.WHOLE_DOCUMENT||!1,ua=rt.RETURN_DOM||!1,Da=rt.RETURN_DOM_FRAGMENT||!1,jr=rt.RETURN_TRUSTED_TYPE||!1,br=rt.FORCE_BODY||!1,Xa=rt.SANITIZE_DOM!==!1,Ju=rt.KEEP_CONTENT!==!1,ii=rt.IN_PLACE||!1,Vt=rt.ALLOWED_URI_REGEXP||Vt,ed=rt.NAMESPACE||Vi,rt.CUSTOM_ELEMENT_HANDLING&&Vx(rt.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(so.tagNameCheck=rt.CUSTOM_ELEMENT_HANDLING.tagNameCheck),rt.CUSTOM_ELEMENT_HANDLING&&Vx(rt.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(so.attributeNameCheck=rt.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),rt.CUSTOM_ELEMENT_HANDLING&&typeof rt.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(so.allowCustomizedBuiltInElements=rt.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),xi=Qg.indexOf(rt.PARSER_MEDIA_TYPE)===-1?xi=qf:xi=rt.PARSER_MEDIA_TYPE,Kl=xi==="application/xhtml+xml"?function(Rn){return Rn}:j1,$o&&(Mc=!1),Da&&(ua=!0),jf&&(Bn=lr({},Ff(nS)),sn=[],jf.html===!0&&(lr(Bn,QC),lr(sn,lD)),jf.svg===!0&&(lr(Bn,eS),lr(sn,oS),lr(sn,sS)),jf.svgFilters===!0&&(lr(Bn,tS),lr(sn,oS),lr(sn,sS)),jf.mathMl===!0&&(lr(Bn,A3),lr(sn,uD),lr(sn,sS))),rt.ADD_TAGS&&(Bn===Ts&&(Bn=Lf(Bn)),lr(Bn,rt.ADD_TAGS)),rt.ADD_ATTR&&(sn===to&&(sn=Lf(sn)),lr(sn,rt.ADD_ATTR)),rt.ADD_URI_SAFE_ATTR&&lr(Jd,rt.ADD_URI_SAFE_ATTR),rt.FORBID_CONTENTS&&(Gl===ny&&(Gl=Lf(Gl)),lr(Gl,rt.FORBID_CONTENTS)),Ju&&(Bn["#text"]=!0),Ms&&lr(Bn,["html","head","body"]),Bn.table&&(lr(Bn,["tbody"]),delete an.tbody),kl&&kl(rt),Um=rt)},k5=lr({},["mi","mo","mn","ms","mtext"]),g_=lr({},["foreignobject","desc","title","annotation-xml"]),w5=lr({},["title","style","font","a","script"]),Qd=lr({},eS);lr(Qd,tS),lr(Qd,aP);var sy=lr({},A3);lr(sy,cP);var Ve=function(rt){var Rn=we(rt);(!Rn||!Rn.tagName)&&(Rn={namespaceURI:Vi,tagName:"template"});var zo=j1(rt.tagName),Ra=j1(Rn.tagName);return rt.namespaceURI===Zf?Rn.namespaceURI===Vi?zo==="svg":Rn.namespaceURI===Qu?zo==="svg"&&(Ra==="annotation-xml"||k5[Ra]):!!Qd[zo]:rt.namespaceURI===Qu?Rn.namespaceURI===Vi?zo==="math":Rn.namespaceURI===Zf?zo==="math"&&g_[Ra]:!!sy[zo]:rt.namespaceURI===Vi?Rn.namespaceURI===Zf&&!g_[Ra]||Rn.namespaceURI===Qu&&!k5[Ra]?!1:!sy[zo]&&(w5[zo]||!Qd[zo]):!1},je=function(rt){dw(n.removed,{element:rt});try{rt.parentNode.removeChild(rt)}catch{try{rt.outerHTML=ht}catch{rt.remove()}}},Zt=function(rt,Rn){try{dw(n.removed,{attribute:Rn.getAttributeNode(rt),from:Rn})}catch{dw(n.removed,{attribute:null,from:Rn})}if(Rn.removeAttribute(rt),rt==="is"&&!sn[rt])if(ua||Da)try{je(Rn)}catch{}else try{Rn.setAttribute(rt,"")}catch{}},Pt=function(rt){var Rn,zo;if(br)rt=""+rt;else{var Ra=fw(rt,/^[\r\n\t ]+/);zo=Ra&&Ra[0]}xi==="application/xhtml+xml"&&(rt=''+rt+"");var Tu=He?He.createHTML(rt):rt;if(ed===Vi)try{Rn=new L().parseFromString(Tu,xi)}catch{}if(!Rn||!Rn.documentElement){Rn=Wt.createDocument(ed,"template",null);try{Rn.documentElement.innerHTML=Vm?"":Tu}catch{}}var Cl=Rn.body||Rn.documentElement;return rt&&zo&&Cl.insertBefore(r.createTextNode(zo),Cl.childNodes[0]||null),ed===Vi?pn.call(Rn,Ms?"html":"body")[0]:Ms?Rn.documentElement:Cl},Xn=function(rt){return et.call(rt.ownerDocument||rt,rt,v.SHOW_ELEMENT|v.SHOW_COMMENT|v.SHOW_TEXT,null,!1)},ls=function(rt){return rt instanceof D&&(typeof rt.nodeName!="string"||typeof rt.textContent!="string"||typeof rt.removeChild!="function"||!(rt.attributes instanceof M)||typeof rt.removeAttribute!="function"||typeof rt.setAttribute!="function"||typeof rt.namespaceURI!="string"||typeof rt.insertBefore!="function")},_r=function(rt){return Nb(m)==="object"?rt instanceof m:rt&&Nb(rt)==="object"&&typeof rt.nodeType=="number"&&typeof rt.nodeName=="string"},Nr=function(rt,Rn,zo){Wo[rt]&&sP(Wo[rt],function(Ra){Ra.call(n,Rn,zo,Um)})},jm=function(rt){var Rn;if(Nr("beforeSanitizeElements",rt,null),ls(rt)||Ul(/[\u0080-\uFFFF]/,rt.nodeName))return je(rt),!0;var zo=Kl(rt.nodeName);if(Nr("uponSanitizeElement",rt,{tagName:zo,allowedTags:Bn}),rt.hasChildNodes()&&!_r(rt.firstElementChild)&&(!_r(rt.content)||!_r(rt.content.firstElementChild))&&Ul(/<[/\w]/g,rt.innerHTML)&&Ul(/<[/\w]/g,rt.textContent)||zo==="select"&&Ul(/