diff --git a/README.md b/README.md index db7509c..78b0b96 100644 --- a/README.md +++ b/README.md @@ -2,11 +2,11 @@

-

HotGo V2.0

+

HotGo V2.1

- goframe + goframe vue @@ -29,7 +29,7 @@ ## 平台简介 -* 基于全新Go Frame 2.0+Vue3+Naive UI开发的全栈前后端分离的管理系统 +* 基于全新Go Frame 2+Vue3+Naive UI开发的全栈前后端分离的管理系统 * 前端采用naive-ui-admin 、Vue、Naive UI。 ## 特征 @@ -55,7 +55,7 @@ 10. 调度日志:服务端运行所产生的警告、异常、崩溃日志的详细数据和堆栈信息。 11. 在线用户:当前系统中活跃用户状态监控。 12. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。 -13. 代码生成:前后端代码的生成。 +13. 代码生成:支持自动化生成前后端代码。CURD关联表、树表、消息队列、定时任务一键生成等。 14. 服务监控:监视当前系统CPU、内存、磁盘、网络、堆栈等相关信息。 15. 附件管理:文件上传,多种上传方式适配。 16. 消息队列:同时兼容 kafka、redis、rocketmq,一键配置切换到自己想用的MQ。 @@ -74,7 +74,7 @@ ## 环境要求 - node版本 >= v16.0.0 - golang版本 >= v1.18 -- gf版本 >=v2.2.5 (会保持同步gf最新版本,gf小版本更新可能存在兼容问题,旧版本需自行处理,如非必要不建议更新!) +- gf版本 >=v2.3.1 (会保持同步gf最新版本,gf小版本更新可能存在兼容问题,旧版本需自行处理,如非必要不建议更新!) - IDE推荐:Goland - mysql版本 >=5.7 - redis版本 >=3.0 @@ -93,13 +93,14 @@ git clone https://github.com/bufanyun/hotgo.git && cd hotgo 其中hotgo配置 ```yaml +# hotgo配置 hotgo: - debug: true # debug开关,开启后:接口出现错误时会输出堆栈信息,默认为true - ipMethod: "cz88" # IP归属地解析方法,可选:cz88|whois,默认为cz88 - wsAddr: "ws://你的IP:8000/socket" # 客户端websocket连接地址,如果项目在公网,请填写公网IP:运行端口 - isDemo: false # 是否為演示系統 false | true + debug: true # debug开关,开启后:接口出现错误时会输出堆栈信息,默认为true + ipMethod: "whois" # IP归属地解析方法,可选:cz88|whois,默认为whois + wsAddr: "ws://127.0.0.1:8000/socket" # 客户端websocket连接地址,如果项目在公网,请填写公网IP:运行端口 + isDemo: false # 是否為演示系統 false | true ssl: # https - switch: false # 是否开启https访问,需要配置sslCrtPath、sslKeyPath证书夹 + switch: false # 是否开启https访问,需要配置sslCrtPath、sslKeyPath证书夹 crtPath: "resource/ssl/server.crt" keyPath: "resource/ssl/server.key" log: # 全局请求日志 @@ -108,10 +109,11 @@ hotgo: module: [ "admin", "api", "default" ] # 需要记录的模块 skipCode: [ ] # 不记录的状态码,如: ["0", "-1"] admin: - superIds: [ 1,2 ] # 后台超管账号ID,通过ID验证超管 + superIds: [ 1,2,3 ] # 后台超管账号ID,通过ID验证超管 superRoleKey: "super" # 超管角色唯一标识符,通过角色验证超管 defaultPage: 10 # 列表分页默认加载数量 defaultPageSize: 1 # 列表分页默认加载页码 + maxSortIncrement: 10 # 最大排序值增量 ``` 后台前端: @@ -137,10 +139,10 @@ VITE_PROXY=[["/admin","http://你的IP:8000/admin"]] go mod tidy # 查看命令行方法 - go run main.go + go run main.go hlep # 启动所有服务 - go run main.go all + go run main.go # 热编译启动: gf run main.go # 如果顺利,至此到浏览器打开:http://你的IP:8000/admin,即可看到后台登录地址 # 登录账号:admin, 密码:123456 @@ -151,7 +153,7 @@ VITE_PROXY=[["/admin","http://你的IP:8000/admin"]] web端: ```shell script - cd web + cd views # 首先确定你以安装node16.0以上版本并安装了包[npm、yarn],否则可能会出现一些未知报错 # 安装依赖 @@ -248,3 +250,6 @@ web端: + + + diff --git a/server/api/backend/common/upload.go b/server/api/backend/common/upload.go index 932446b..8b19de7 100644 --- a/server/api/backend/common/upload.go +++ b/server/api/backend/common/upload.go @@ -17,3 +17,10 @@ type UploadImageReq struct { } type UploadImageRes *sysin.AttachmentListModel + +// UploadFileReq 上传文件 +type UploadFileReq struct { + g.Meta `path:"/upload/file" tags:"上传" method:"post" summary:"上传附件"` +} + +type UploadFileRes *sysin.AttachmentListModel diff --git a/server/api/backend/config/config.go b/server/api/backend/config/config.go index 150fef6..bbd8617 100644 --- a/server/api/backend/config/config.go +++ b/server/api/backend/config/config.go @@ -8,6 +8,7 @@ package config import ( "github.com/gogf/gf/v2/frame/g" + "hotgo/internal/model/input/form" "hotgo/internal/model/input/sysin" ) @@ -28,3 +29,9 @@ type UpdateReq struct { } type UpdateRes struct { } + +// TypeSelectReq 数据类型选项 +type TypeSelectReq struct { + g.Meta `path:"/config/typeSelect" method:"get" tags:"配置" summary:"数据类型选项"` +} +type TypeSelectRes []form.Select diff --git a/server/api/backend/curddemo/curddemo.go b/server/api/backend/curddemo/curddemo.go new file mode 100644 index 0000000..d73f24e --- /dev/null +++ b/server/api/backend/curddemo/curddemo.go @@ -0,0 +1,85 @@ +// Package curddemo +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2023 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// @AutoGenerate Version 2.1.0 +// @AutoGenerate Date 2023-01-18 15:19:42 +// +package curddemo + +import ( + "hotgo/internal/model/input/form" + "hotgo/internal/model/input/sysin" + + "github.com/gogf/gf/v2/frame/g" +) + +// ListReq 查询生成演示列表 +type ListReq struct { + g.Meta `path:"/curdDemo/list" method:"get" tags:"生成演示" summary:"获取生成演示列表"` + sysin.CurdDemoListInp +} + +type ListRes struct { + form.PageRes + List []*sysin.CurdDemoListModel `json:"list" dc:"数据列表"` +} + +// ExportReq 导出生成演示列表 +type ExportReq struct { + g.Meta `path:"/curdDemo/export" method:"get" tags:"生成演示" summary:"导出生成演示列表"` + sysin.CurdDemoListInp +} + +type ExportRes struct{} + +// ViewReq 获取生成演示指定信息 +type ViewReq struct { + g.Meta `path:"/curdDemo/view" method:"get" tags:"生成演示" summary:"获取生成演示指定信息"` + sysin.CurdDemoViewInp +} + +type ViewRes struct { + *sysin.CurdDemoViewModel +} + +// EditReq 修改/新增生成演示 +type EditReq struct { + g.Meta `path:"/curdDemo/edit" method:"post" tags:"生成演示" summary:"修改/新增生成演示"` + sysin.CurdDemoEditInp +} +type EditRes struct{} + +// DeleteReq 删除生成演示 +type DeleteReq struct { + g.Meta `path:"/curdDemo/delete" method:"post" tags:"生成演示" summary:"删除生成演示"` + sysin.CurdDemoDeleteInp +} + +type DeleteRes struct{} + +// MaxSortReq 获取生成演示最大排序 +type MaxSortReq struct { + g.Meta `path:"/curdDemo/maxSort" method:"get" tags:"生成演示" summary:"获取生成演示最大排序"` +} + +type MaxSortRes struct { + *sysin.CurdDemoMaxSortModel +} + +// StatusReq 更新生成演示状态 +type StatusReq struct { + g.Meta `path:"/curdDemo/status" method:"post" tags:"生成演示" summary:"更新生成演示状态"` + sysin.CurdDemoStatusInp +} + +type StatusRes struct{} + +// SwitchReq 更新生成演示开关状态 +type SwitchReq struct { + g.Meta `path:"/curdDemo/switch" method:"post" tags:"生成演示" summary:"更新生成演示状态"` + sysin.CurdDemoSwitchInp +} + +type SwitchRes struct{} diff --git a/server/api/backend/dict/dict_data.go b/server/api/backend/dict/dict_data.go index ac06ced..b087ed9 100644 --- a/server/api/backend/dict/dict_data.go +++ b/server/api/backend/dict/dict_data.go @@ -17,7 +17,7 @@ import ( type DataEditReq struct { entity.SysDictData TypeID int64 `json:"typeID" dc:"字典类型ID"` - g.Meta `path:"/dict_data/edit" method:"post" tags:"字典数据" summary:"修改/新增字典数据"` + g.Meta `path:"/dictData/edit" method:"post" tags:"字典数据" summary:"修改/新增字典数据"` } type DataEditRes struct{} @@ -25,7 +25,7 @@ type DataEditRes struct{} // DataDeleteReq 删除字典数据 type DataDeleteReq struct { Id interface{} `json:"id" v:"required#字典数据ID不能为空" dc:"字典数据ID"` - g.Meta `path:"/dict_data/delete" method:"post" tags:"字典数据" summary:"删除字典数据"` + g.Meta `path:"/dictData/delete" method:"post" tags:"字典数据" summary:"删除字典数据"` } type DataDeleteRes struct{} @@ -37,10 +37,22 @@ type DataListReq struct { TypeID int64 `json:"typeId" v:"required#字典类型ID不能为空" dc:"字典类型ID"` // Type string `json:"type"` Label string `json:"label"` - g.Meta `path:"/dict_data/list" method:"get" tags:"字典数据" summary:"获取字典数据列表"` + g.Meta `path:"/dictData/list" method:"get" tags:"字典数据" summary:"获取字典数据列表"` } type DataListRes struct { List []*sysin.DictDataListModel `json:"list" dc:"数据列表"` form.PageRes } + +type DataSelectReq struct { + g.Meta `path:"/dictData/option/{Type}" method:"get" summary:"字典数据" tags:"获取指定字典选项"` + Type string `in:"path" v:"required#字典类型不能为空" dc:"字典类型"` +} +type DataSelectRes sysin.DataSelectModel + +type DataSelectsReq struct { + g.Meta `path:"/dictData/options" method:"get" summary:"字典数据" tags:"获取多个字典选项"` + Types []string `json:"types"` +} +type DataSelectsRes map[string]sysin.DataSelectModel diff --git a/server/api/backend/dict/dict_type.go b/server/api/backend/dict/dict_type.go index c4a3e8f..9b95a96 100644 --- a/server/api/backend/dict/dict_type.go +++ b/server/api/backend/dict/dict_type.go @@ -14,7 +14,7 @@ import ( // TypeTreeReq 字典类型树 type TypeTreeReq struct { - g.Meta `path:"/dict_type/tree" tags:"字典类型" method:"get" summary:"字典类型树列表"` + g.Meta `path:"/dictType/tree" tags:"字典类型" method:"get" summary:"字典类型树列表"` } type TypeTreeRes struct { List []map[string]interface{} `json:"list" dc:"数据列表"` @@ -23,7 +23,7 @@ type TypeTreeRes struct { // TypeEditReq 修改/新增字典数据 type TypeEditReq struct { entity.AdminDept - g.Meta `path:"/dict_type/edit" method:"post" tags:"字典类型" summary:"修改/新增字典类型"` + g.Meta `path:"/dictType/edit" method:"post" tags:"字典类型" summary:"修改/新增字典类型"` } type TypeEditRes struct{} @@ -31,13 +31,13 @@ type TypeEditRes struct{} // TypeDeleteReq 删除字典类型 type TypeDeleteReq struct { Id interface{} `json:"id" v:"required#字典类型ID不能为空" dc:"字典类型ID"` - g.Meta `path:"/dict_type/delete" method:"post" tags:"字典类型" summary:"删除字典类型"` + g.Meta `path:"/dictType/delete" method:"post" tags:"字典类型" summary:"删除字典类型"` } type TypeDeleteRes struct{} // TypeSelectReq 修改/新增字典数据 type TypeSelectReq struct { - g.Meta `path:"/dict_type/select" method:"get" tags:"字典类型" summary:"字典类型选项"` + g.Meta `path:"/dictType/select" method:"get" tags:"字典类型" summary:"字典类型选项"` } type TypeSelectRes sysin.DictTypeSelectModel diff --git a/server/api/backend/gencodes/gencodes.go b/server/api/backend/gencodes/gencodes.go new file mode 100644 index 0000000..03872cd --- /dev/null +++ b/server/api/backend/gencodes/gencodes.go @@ -0,0 +1,108 @@ +// Package hggen +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2022 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package gencodes + +import ( + "github.com/gogf/gf/v2/frame/g" + "hotgo/internal/model/entity" + "hotgo/internal/model/input/form" + "hotgo/internal/model/input/sysin" +) + +// ListReq 查询列表 +type ListReq struct { + g.Meta `path:"/genCodes/list" method:"get" tags:"生成代码" summary:"获取生成代码列表"` + sysin.GenCodesListInp +} + +type ListRes struct { + List []*sysin.GenCodesListModel `json:"list" dc:"数据列表"` + form.PageRes +} + +// ViewReq 获取指定信息 +type ViewReq struct { + Id int64 `json:"id" v:"required#生成代码ID不能为空" dc:"生成代码ID"` + g.Meta `path:"/genCodes/view" method:"get" tags:"生成代码" summary:"获取指定信息"` +} +type ViewRes struct { + *sysin.GenCodesViewModel +} + +// EditReq 修改/新增数据 +type EditReq struct { + entity.SysGenCodes + g.Meta `path:"/genCodes/edit" method:"post" tags:"生成代码" summary:"修改/新增生成代码"` +} +type EditRes struct { + *sysin.GenCodesEditModel +} + +// DeleteReq 删除 +type DeleteReq struct { + Id interface{} `json:"id" v:"required#生成代码ID不能为空" dc:"生成代码ID"` + g.Meta `path:"/genCodes/delete" method:"post" tags:"生成代码" summary:"删除生成代码"` +} +type DeleteRes struct{} + +// MaxSortReq 最大排序 +type MaxSortReq struct { + Id int64 `json:"id" dc:"生成代码ID"` + g.Meta `path:"/genCodes/max_sort" method:"get" tags:"生成代码" summary:"生成代码最大排序"` +} +type MaxSortRes struct { + Sort int `json:"sort" dc:"排序"` +} + +// StatusReq 更新状态 +type StatusReq struct { + entity.SysGenCodes + g.Meta `path:"/genCodes/status" method:"post" tags:"生成代码" summary:"更新生成代码状态"` +} +type StatusRes struct{} + +type SelectsReq struct { + g.Meta `path:"/genCodes/selects" method:"get" tags:"生成代码" summary:"生成入口选项"` +} +type SelectsRes struct { + *sysin.GenCodesSelectsModel +} + +type TableSelectReq struct { + g.Meta `path:"/genCodes/tableSelect" method:"get" tags:"生成代码" summary:"数据库表选项"` + sysin.GenCodesTableSelectInp +} +type TableSelectRes []*sysin.GenCodesTableSelectModel + +type ColumnSelectReq struct { + g.Meta `path:"/genCodes/columnSelect" method:"get" tags:"生成代码" summary:"表字段选项"` + sysin.GenCodesColumnSelectInp +} +type ColumnSelectRes []*sysin.GenCodesColumnSelectModel + +type ColumnListReq struct { + g.Meta `path:"/genCodes/columnList" method:"get" tags:"生成代码" summary:"表字段列表"` + sysin.GenCodesColumnListInp +} +type ColumnListRes []*sysin.GenCodesColumnListModel + +// PreviewReq 生成预览 +type PreviewReq struct { + g.Meta `path:"/genCodes/preview" method:"post" tags:"生成代码" summary:"生成预览"` + sysin.GenCodesPreviewInp +} +type PreviewRes struct { + *sysin.GenCodesPreviewModel +} + +// BuildReq 提交生成 +type BuildReq struct { + g.Meta `path:"/genCodes/build" method:"post" tags:"生成代码" summary:"提交生成"` + sysin.GenCodesPreviewInp +} +type BuildRes struct { +} diff --git a/server/api/backend/member/member.go b/server/api/backend/member/member.go index bcd876a..12089c3 100644 --- a/server/api/backend/member/member.go +++ b/server/api/backend/member/member.go @@ -16,16 +16,16 @@ import ( // UpdateProfileReq 更新会员资料 type UpdateProfileReq struct { - g.Meta `path:"/member/update_profile" method:"post" tags:"会员" summary:"更新会员资料"` + g.Meta `path:"/member/updateProfile" method:"post" tags:"会员" summary:"更新会员资料"` Mobile int `json:"mobile" dc:"手机号"` Email string `json:"email" dc:"邮箱"` - RealName string `json:"realname" dc:"真实姓名"` + RealName string `json:"realName" dc:"真实姓名"` } type UpdateProfileRes struct{} // UpdatePwdReq 修改登录密码 type UpdatePwdReq struct { - g.Meta `path:"/member/update_pwd" method:"post" tags:"会员" summary:"重置密码"` + g.Meta `path:"/member/updatePwd" method:"post" tags:"会员" summary:"重置密码"` OldPassword string `json:"oldPassword" v:"required#原密码不能为空" dc:"原密码"` NewPassword string `json:"newPassword" v:"required|length:6,16#新密码不能为空#新密码需在6~16之间" dc:"新密码"` } @@ -47,7 +47,7 @@ type ProfileRes struct { // ResetPwdReq 重置密码 type ResetPwdReq struct { - g.Meta `path:"/member/reset_pwd" method:"post" tags:"会员" summary:"重置密码"` + g.Meta `path:"/member/resetPwd" method:"post" tags:"会员" summary:"重置密码"` Password string `json:"password" v:"required#密码不能为空" dc:"密码"` Id int64 `json:"id" dc:"会员ID"` } @@ -55,7 +55,7 @@ type ResetPwdRes struct{} // EmailUniqueReq 邮箱是否唯一 type EmailUniqueReq struct { - g.Meta `path:"/member/email_unique" method:"get" tags:"会员" summary:"邮箱是否唯一"` + g.Meta `path:"/member/emailUnique" method:"get" tags:"会员" summary:"邮箱是否唯一"` Email string `json:"email" v:"required#邮箱不能为空" dc:"邮箱"` Id int64 `json:"id" dc:"会员ID"` } @@ -65,7 +65,7 @@ type EmailUniqueRes struct { // MobileUniqueReq 手机号是否唯一 type MobileUniqueReq struct { - g.Meta `path:"/member/mobile_unique" method:"get" tags:"会员" summary:"手机号是否唯一"` + g.Meta `path:"/member/mobileUnique" method:"get" tags:"会员" summary:"手机号是否唯一"` Mobile string `json:"mobile" v:"required#手机号不能为空" dc:"手机号"` Id int64 `json:"id" dc:"会员ID"` } @@ -75,7 +75,7 @@ type MobileUniqueRes struct { // NameUniqueReq 名称是否唯一 type NameUniqueReq struct { - g.Meta `path:"/member/name_unique" method:"get" tags:"会员" summary:"会员名称是否唯一"` + g.Meta `path:"/member/nameUnique" method:"get" tags:"会员" summary:"会员名称是否唯一"` Username string `json:"username" v:"required#会员名称不能为空" dc:"会员名称"` Id int64 `json:"id" dc:"会员ID"` } @@ -89,13 +89,13 @@ type ListReq struct { form.PageReq form.RangeDateReq form.StatusReq - DeptId int `json:"dept_id" dc:"部门ID"` + DeptId int `json:"deptId" dc:"部门ID"` Mobile int `json:"mobile" dc:"手机号"` Username string `json:"username" dc:"用户名"` - Realname string `json:"realname" dc:"真实姓名"` + Realname string `json:"realName" dc:"真实姓名"` Name string `json:"name" dc:"岗位名称"` Code string `json:"code" dc:"岗位编码"` - CreatedAt []int64 `json:"created_at" dc:"创建时间"` + CreatedAt []int64 `json:"createdAt" dc:"创建时间"` } type ListRes struct { @@ -114,7 +114,7 @@ type ViewRes struct { PostIds []int64 `json:"postIds" dc:"当前岗位"` Roles []*adminin.RoleListModel `json:"roles" dc:"可选角色"` RoleIds []int64 `json:"roleIds" dc:"当前角色"` - DeptName string `json:"dept_name" dc:"部门名称"` + DeptName string `json:"deptName" dc:"部门名称"` } // EditReq 修改/新增 @@ -147,13 +147,6 @@ type InfoReq struct { type InfoRes struct { adminin.MemberLoginModel - //DefaultPortalConfig []*PortalConfig `json:"defaultPortalConfig" dc:"默认用户配置"` - //LincenseInfo string `json:"lincenseInfo" dc:"应用版本号"` - //Permissions []string `json:"permissions" dc:"权限"` - //Roles []string `json:"roles" dc:"角色"` - //SysNoticeList []*entity.AdminNotice `json:"sysNoticeList" dc:"系统公告"` - //UserPortalConfig []*PortalConfig `json:"userPortalConfig" dc:"用户配置"` - //User model.Identity `json:"member" dc:"用户信息"` } type PortalConfigContentOptions struct { diff --git a/server/api/backend/role/role.go b/server/api/backend/role/role.go index 106439b..42bdbd5 100644 --- a/server/api/backend/role/role.go +++ b/server/api/backend/role/role.go @@ -20,7 +20,7 @@ type MemberListReq struct { form.RangeDateReq form.StatusReq Role int `json:"role" description:"角色ID"` - DeptId int `json:"dept_id" description:"部门ID"` + DeptId int `json:"deptId" description:"部门ID"` Mobile int `json:"mobile" description:"手机号"` Username string `json:"username" description:"用户名"` Realname string `json:"realname" description:"真实姓名"` @@ -41,7 +41,7 @@ type ListReq struct { form.PageReq form.RangeDateReq form.StatusReq - DeptId int `json:"dept_id" description:"部门ID"` + DeptId int `json:"deptId" description:"部门ID"` Mobile int `json:"mobile" description:"手机号"` Username string `json:"username" description:"用户名"` Realname string `json:"realname" description:"真实姓名"` @@ -129,3 +129,18 @@ type DeleteReq struct { Id int64 `json:"id" v:"required"` } type DeleteRes struct{} + +// DataScopeSelectReq 获取数据权限选项 +type DataScopeSelectReq struct { + g.Meta `path:"/role/dataScope/select" method:"get" summary:"角色" tags:"获取数据权限选项"` +} +type DataScopeSelectRes struct { + List form.Selects `json:"list" dc:"数据选项"` +} + +// DataScopeEditReq 修改指定角色的数据权限 +type DataScopeEditReq struct { + g.Meta `path:"/role/dataScope/edit" method:"post" tags:"角色" summary:"修改指定角色的数据权限"` + adminin.DataScopeEditInp +} +type DataScopeEditRes struct{} diff --git a/server/api/backend/test/test.go b/server/api/backend/test/test.go new file mode 100644 index 0000000..a4a3143 --- /dev/null +++ b/server/api/backend/test/test.go @@ -0,0 +1,77 @@ +// Package test +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2022 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package test + +import ( + "github.com/gogf/gf/v2/frame/g" + "hotgo/internal/model/input/adminin" + "hotgo/internal/model/input/form" +) + +// ListReq 查询列表 +type ListReq struct { + g.Meta `path:"/test/list" method:"get" tags:"测试" summary:"获取测试列表"` + adminin.TestListInp +} + +type ListRes struct { + form.PageRes + List []*adminin.TestListModel `json:"list" dc:"数据列表"` +} + +// ExportReq 导出列表 +type ExportReq struct { + g.Meta `path:"/test/export" method:"get" tags:"测试" summary:"导出测试列表"` + adminin.TestListInp +} + +type ExportRes struct{} + +// ViewReq 获取信息 +type ViewReq struct { + g.Meta `path:"/test/view" method:"get" tags:"测试" summary:"获取指定信息"` + adminin.TestViewInp +} +type ViewRes struct { + *adminin.TestViewModel +} + +// EditReq 修改/新增 +type EditReq struct { + g.Meta `path:"/test/edit" method:"post" tags:"测试" summary:"修改/新增测试"` + adminin.TestEditInp +} +type EditRes struct{} + +// DeleteReq 删除 +type DeleteReq struct { + g.Meta `path:"/test/delete" method:"post" tags:"测试" summary:"删除测试"` + adminin.TestDeleteInp +} +type DeleteRes struct{} + +// MaxSortReq 最大排序 +type MaxSortReq struct { + g.Meta `path:"/test/maxSort" method:"get" tags:"测试" summary:"测试最大排序"` +} +type MaxSortRes struct { + *adminin.TestMaxSortModel +} + +// StatusReq 更新状态 +type StatusReq struct { + g.Meta `path:"/test/status" method:"post" tags:"测试" summary:"更新测试状态"` + adminin.TestStatusInp +} +type StatusRes struct{} + +// SwitchReq 更新开关状态 +type SwitchReq struct { + g.Meta `path:"/test/switch" method:"post" tags:"测试" summary:"更新测试状态"` + adminin.TestSwitchInp +} +type SwitchRes struct{} diff --git a/server/go.mod b/server/go.mod index a119a15..d4b1dae 100644 --- a/server/go.mod +++ b/server/go.mod @@ -9,9 +9,11 @@ require ( github.com/bufanyun/pool v0.2.1 github.com/casbin/casbin/v2 v2.55.0 github.com/dgrijalva/jwt-go v3.2.0+incompatible + github.com/forgoer/openssl v1.4.0 github.com/go-resty/resty/v2 v2.7.0 github.com/gogf/gf/contrib/drivers/mysql/v2 v2.2.0-beta2 - github.com/gogf/gf/v2 v2.2.5 + github.com/gogf/gf/contrib/nosql/redis/v2 v2.3.0 + github.com/gogf/gf/v2 v2.3.0 github.com/golang/mock v1.6.0 // indirect github.com/gomodule/redigo v1.8.8 github.com/google/btree v1.1.2 // indirect @@ -19,13 +21,16 @@ require ( github.com/kayon/iploc v0.0.0-20200312105652-bda3e968a794 github.com/mattn/go-colorable v0.1.12 // indirect github.com/mojocn/base64Captcha v1.3.5 + github.com/olekukonko/tablewriter v0.0.5 github.com/shirou/gopsutil v3.21.11+incompatible github.com/shopspring/decimal v1.3.1 github.com/tklauser/go-sysconf v0.3.10 // indirect + github.com/ufilesdk-dev/ufile-gosdk v1.0.3 github.com/xuri/excelize/v2 v2.6.0 github.com/yusufpapurcu/wmi v1.2.2 // indirect go.uber.org/atomic v1.7.0 // indirect golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 // indirect + golang.org/x/tools v0.1.7 golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f // indirect - google.golang.org/protobuf v1.28.0 // indirect + gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b ) diff --git a/server/go.sum b/server/go.sum index 63edd72..4a4b528 100644 --- a/server/go.sum +++ b/server/go.sum @@ -92,6 +92,8 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= +github.com/forgoer/openssl v1.4.0 h1:rPMnQ92OKuBsKnfY/GmUDunnP72Cy+zviAompWMdC9U= +github.com/forgoer/openssl v1.4.0/go.mod h1:NMVFOzYeLVR7UiGTxsa+A21nrERTZ3Rv2JHDPcJpDyI= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= @@ -126,9 +128,11 @@ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/me github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/gogf/gf/contrib/drivers/mysql/v2 v2.2.0-beta2 h1:QgVPXrGp8wJx18HIOsNATaIiHjXsd/Rk1F1QyxfWv+g= github.com/gogf/gf/contrib/drivers/mysql/v2 v2.2.0-beta2/go.mod h1:z+/0qiOwMroAnj5ESuobTv0l5P83rf+XR3r6Fj8WJyk= +github.com/gogf/gf/contrib/nosql/redis/v2 v2.3.0 h1:r2q8MLwF6yUIEm6Hhwsfo/ixaJTKluTXSjU8rSeXo3c= +github.com/gogf/gf/contrib/nosql/redis/v2 v2.3.0/go.mod h1:V9o2BF9ovJnaZhHImHAanqUgjX4kI51lgU45u5rPqvw= github.com/gogf/gf/v2 v2.0.0/go.mod h1:apktt6TleWtCIwpz63vBqUnw8MX8gWKoZyxgDpXFtgM= -github.com/gogf/gf/v2 v2.2.5 h1:XyRSfn/gqdrGb03p1OGhXd4q6kVf1BL/pryT2Y1NyBA= -github.com/gogf/gf/v2 v2.2.5/go.mod h1:thvkyb43RWUu/m05sRm4CbH9r7t7/FrW2M56L9Ystwk= +github.com/gogf/gf/v2 v2.3.0 h1:Uz4z6tMqnpH9azLFrfBX1R1k/73d7QPC2E4Ab8L3y4g= +github.com/gogf/gf/v2 v2.3.0/go.mod h1:tsbmtwcAl2chcYoq/fP9W2FZf06aw4i89X34nbSHo9Y= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= @@ -373,6 +377,8 @@ github.com/tklauser/go-sysconf v0.3.10 h1:IJ1AZGZRWbY8T5Vfk04D9WOA5WSejdflXxP03O github.com/tklauser/go-sysconf v0.3.10/go.mod h1:C8XykCvCb+Gn0oNCWPIlcb0RuglQTYaQ2hGm7jmxEFk= github.com/tklauser/numcpus v0.4.0 h1:E53Dm1HjH1/R2/aoCtXtPgzmElmn51aOkhCFSuZq//o= github.com/tklauser/numcpus v0.4.0/go.mod h1:1+UI3pD8NW14VMwdgJNJ1ESk2UnwhAnz5hMwiKKqXCQ= +github.com/ufilesdk-dev/ufile-gosdk v1.0.3 h1:M85lCFBmCHcFfXldFOb+Lkdw10fLZXvqVUnyZ852Nhk= +github.com/ufilesdk-dev/ufile-gosdk v1.0.3/go.mod h1:R5FMQxkQ+QK/9Vz+jfnJP4rZIktYrRcWmuAnbOSkROI= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= @@ -452,6 +458,7 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -624,6 +631,7 @@ golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.7 h1:6j8CgantCy3yc8JGBqkDLMKWqZ0RDU2g1HVgacojGWQ= golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -705,9 +713,8 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= -google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/server/hack/config.yaml b/server/hack/config.yaml index 8fbcd1d..f4577c7 100644 --- a/server/hack/config.yaml +++ b/server/hack/config.yaml @@ -15,10 +15,18 @@ gfcli: gen: dao: - link: "mysql:hotgo:hg123456.@tcp(127.0.0.1:3306)/hotgo?loc=Local&parseTime=true" + group: "default" # 分组。使用hotgo代码生成功能时必须填 # path: "./app" # tables: "" #指定当前数据库中需要执行代码生成的数据表。如果为空,表示数据库的所有表都会生成。 # tablesEx: "" #指定当前数据库中需要排除代码生成的数据表。 removePrefix: "hg_" descriptionTag: true noModelComment: true - jsonCase: "CamelLower" \ No newline at end of file + jsonCase: "CamelLower" + gJsonSupport: true + +# service: +# srcFolder: "internal/logic" +# dstFolder: "internal/service" +# dstFileNameCase: "CamelLower" +# clear: true \ No newline at end of file diff --git a/server/internal/cmd/cmd.go b/server/internal/cmd/cmd.go index b6e6db5..2ce88f8 100644 --- a/server/internal/cmd/cmd.go +++ b/server/internal/cmd/cmd.go @@ -16,26 +16,33 @@ import ( var ( serverCloseSignal chan struct{} Main = &gcmd.Command{ - Description: ` - 命令提示符 - --------------------------------------------------------------------------------- - 启动服务 - >> HTTP服务 [go run main.go http] - >> 消息队列 [go run main.go queue] - >> 所有服务 [go run main.go all] - - --------------------------------------------------------------------------------- - 工具 - >> 释放casbin权限,用于清理无效的权限设置 [go run main.go tools -m=casbin -a1=refresh] -`, + Description: `默认启动所有服务`, + Func: func(ctx context.Context, parser *gcmd.Parser) (err error) { + return All.Func(ctx, parser) + }, } Help = &gcmd.Command{ Name: "help", Brief: "查看帮助", Description: ` - github地址:https://github.com/bufanyun/hotgo - 文档地址:文档正在书写中,请耐心等一等。 + 命令提示符 + --------------------------------------------------------------------------------- + 启动服务 + >> 所有服务 [go run main.go] 热编译 [gf run main.go] + >> HTTP服务 [go run main.go http] + >> 消息队列 [go run main.go queue] + >> 查看帮助 [go run main.go help] + + --------------------------------------------------------------------------------- + 工具 + >> 释放casbin权限,用于清理无效的权限设置 [go run main.go tools -m=casbin -a1=refresh] + + --------------------------------------------------------------------------------- + 更多 + github地址:https://github.com/bufanyun/hotgo + 文档地址:文档正在书写中,请耐心等一等。 + HotGo框架交流1群:190966648 `, } @@ -44,7 +51,7 @@ var ( Brief: "start all server", Description: "this is the command entry for starting all server", Func: func(ctx context.Context, parser *gcmd.Parser) (err error) { - g.Log().Info(ctx, "start all server") + g.Log().Debug(ctx, "starting all server") simple.SafeGo(ctx, func(ctx context.Context) { if err := Http.Func(ctx, parser); err != nil { diff --git a/server/internal/cmd/http.go b/server/internal/cmd/http.go index ed02e62..fd2b461 100644 --- a/server/internal/cmd/http.go +++ b/server/internal/cmd/http.go @@ -11,10 +11,7 @@ import ( "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/net/ghttp" "github.com/gogf/gf/v2/os/gcmd" - baseApi "hotgo/api/home/base" - "hotgo/internal/controller/home/base" "hotgo/internal/library/casbin" - "hotgo/internal/model" "hotgo/internal/router" "hotgo/internal/service" ) @@ -25,10 +22,6 @@ var ( Usage: "http", Brief: "HTTP服务", Func: func(ctx context.Context, parser *gcmd.Parser) (err error) { - if _, err := g.Cfg().Get(ctx, "hotgo.debug"); err != nil { - g.Log().Fatal(ctx, "配置读取异常:", err, "\r\n你确定 config/config.yaml 文件存在且格式正确吗?\r\n") - } - // 加载权限 casbin.InitEnforcer(ctx) @@ -55,20 +48,10 @@ var ( service.Middleware().ResponseHandler, ) - // 注册默认首页路由 - group.ALL("/", func(r *ghttp.Request) { - _, _ = base.Site.Index(r.Context(), &baseApi.SiteIndexReq{}) - return - }) - - group.ALL("/login", func(r *ghttp.Request) { - r.Response.RedirectTo("/admin") - }) - // 注册后台路由 router.Admin(ctx, group) - // 注册前台路由 + // 注册Api路由 router.Api(ctx, group) // 注册websocket路由 @@ -84,18 +67,8 @@ var ( // 信号监听 signalListen(ctx, signalHandlerForCron, signalHandlerForWebSocket) - // 开启https访问 - var ( - sSLConfig *model.SSLConfig - ssl, _ = g.Cfg().Get(ctx, "hotgo.ssl") - ) - if err := ssl.Struct(&sSLConfig); err != nil { - g.Log().Fatalf(ctx, "hotgo启动失败, ssl err:", err) - return err - } - if sSLConfig != nil && sSLConfig.Switch { - s.EnableHTTPS(sSLConfig.CrtPath, sSLConfig.KeyPath) - } + // https + setSSL(ctx, s) // Just run the server. s.Run() @@ -104,3 +77,14 @@ var ( }, } ) + +func setSSL(ctx context.Context, s *ghttp.Server) { + config, err := service.SysConfig().GetLoadSSL(ctx) + if err != nil { + g.Log().Fatal(ctx, "ssl配置获取失败:err:%+v", err) + return + } + if config != nil && config.Switch { + s.EnableHTTPS(config.CrtPath, config.KeyPath) + } +} diff --git a/server/internal/cmd/queue.go b/server/internal/cmd/queue.go index 65798ca..e97034c 100644 --- a/server/internal/cmd/queue.go +++ b/server/internal/cmd/queue.go @@ -19,7 +19,7 @@ var ( Brief: "消息队列", Description: ``, Func: func(ctx context.Context, parser *gcmd.Parser) (err error) { - g.Log().Infof(ctx, "start queue consumer..") + g.Log().Debug(ctx, "start queue consumer..") queues.Run(ctx) return }, diff --git a/server/internal/cmd/tools.go b/server/internal/cmd/tools.go index 772d230..0cc89d7 100644 --- a/server/internal/cmd/tools.go +++ b/server/internal/cmd/tools.go @@ -20,7 +20,7 @@ var ( Description: ``, Func: func(ctx context.Context, parser *gcmd.Parser) (err error) { flags := parser.GetOptAll() - g.Log().Warningf(ctx, "flags:%+v", flags) + g.Log().Debug(ctx, "flags:%+v", flags) if len(flags) == 0 { g.Log().Fatal(ctx, "工具参数不能为空") return diff --git a/server/internal/consts/code.go b/server/internal/consts/code.go deleted file mode 100644 index 161d767..0000000 --- a/server/internal/consts/code.go +++ /dev/null @@ -1,31 +0,0 @@ -// Package consts -// @Link https://github.com/bufanyun/hotgo -// @Copyright Copyright (c) 2022 HotGo CLI -// @Author Ms <133814250@qq.com> -// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE -// -package consts - -// 全局状态码 -const ( - CodeNil = -1 // No error code specified. - CodeOK = 0 // It is OK. - CodeInternalError = 50 // An error occurred internally. - CodeValidationFailed = 51 // Data validation failed. - CodeDbOperationError = 52 // Database operation error. - CodeInvalidParameter = 53 // The given parameter for current operation is invalid. - CodeMissingParameter = 54 // Parameter for current operation is missing. - CodeInvalidOperation = 55 // The function cannot be used like this. - CodeInvalidConfiguration = 56 // The configuration is invalid for current operation. - CodeMissingConfiguration = 57 // The configuration is missing for current operation. - CodeNotImplemented = 58 // The operation is not implemented yet. - CodeNotSupported = 59 // The operation is not supported yet. - CodeOperationFailed = 60 // I tried, but I cannot give you what you want. - CodeNotAuthorized = 61 // Not Authorized. - CodeSecurityReason = 62 // Security Reason. - CodeServerBusy = 63 // Server is busy, please try again later. - CodeUnknown = 64 // Unknown error. - CodeNotFound = 65 // Resource does not exist. - CodeInvalidRequest = 66 // Invalid request. - CodeBusinessValidationFailed = 300 // Business validation failed. -) diff --git a/server/internal/consts/config.go b/server/internal/consts/config.go index 80dfaf5..4766957 100644 --- a/server/internal/consts/config.go +++ b/server/internal/consts/config.go @@ -6,10 +6,74 @@ // package consts +import "github.com/gogf/gf/v2/util/gconv" + +// 配置数据类型 const ( - ConfigTypeString = "string" - ConfigTypeInt = "int" - ConfigTypeBool = "bool" - ConfigTypeArray = "array" - ConfigTypeDate = "date" + ConfigTypeString = "string" + ConfigTypeInt = "int" + ConfigTypeInt8 = "int8" + ConfigTypeInt16 = "int16" + ConfigTypeInt32 = "int32" + ConfigTypeInt64 = "int64" + ConfigTypeUint = "uint" + ConfigTypeUint8 = "uint8" + ConfigTypeUint16 = "uint16" + ConfigTypeUint32 = "uint32" + ConfigTypeUint64 = "uint64" + ConfigTypeFloat32 = "float32" + ConfigTypeFloat64 = "float64" + ConfigTypeBool = "bool" + ConfigTypeDate = "date" + ConfigTypeDateTime = "datetime" ) + +var ConfigTypes = []string{ConfigTypeString, + ConfigTypeInt, ConfigTypeInt8, ConfigTypeInt16, ConfigTypeInt32, ConfigTypeInt64, + ConfigTypeUint, ConfigTypeUint8, ConfigTypeUint16, ConfigTypeUint32, ConfigTypeUint64, + ConfigTypeFloat32, ConfigTypeFloat64, + ConfigTypeBool, + ConfigTypeDate, ConfigTypeDateTime, +} + +// ConvType 类型转换 +func ConvType(val interface{}, t string) interface{} { + switch t { + case ConfigTypeString: + val = gconv.String(val) + case ConfigTypeInt: + val = gconv.Int(val) + case ConfigTypeInt8: + val = gconv.Int8(val) + case ConfigTypeInt16: + val = gconv.Int16(val) + case ConfigTypeInt32: + val = gconv.Int32(val) + case ConfigTypeInt64: + val = gconv.Int64(val) + case ConfigTypeUint: + val = gconv.Uint(val) + case ConfigTypeUint8: + val = gconv.Uint8(val) + case ConfigTypeUint16: + val = gconv.Uint16(val) + case ConfigTypeUint32: + val = gconv.Uint32(val) + case ConfigTypeUint64: + val = gconv.Uint64(val) + case ConfigTypeFloat32: + val = gconv.Float32(val) + case ConfigTypeFloat64: + val = gconv.Float64(val) + case ConfigTypeBool: + val = gconv.Bool(val) + case ConfigTypeDate: + val = gconv.Time(val, "Y-m-d") + case ConfigTypeDateTime: + val = gconv.Time(val, "Y-m-d H:i:s") + default: + val = gconv.String(val) + } + + return val +} diff --git a/server/internal/consts/debris.go b/server/internal/consts/debris.go index 957b4e0..8814a5e 100644 --- a/server/internal/consts/debris.go +++ b/server/internal/consts/debris.go @@ -9,5 +9,6 @@ package consts // 碎片 const ( - DemoTips = "演示系统已隐藏" + DemoTips = "演示系统已隐藏" + NilJsonToString = "{}" // 空json初始化值 ) diff --git a/server/internal/consts/gencodes.go b/server/internal/consts/gencodes.go new file mode 100644 index 0000000..2347a14 --- /dev/null +++ b/server/internal/consts/gencodes.go @@ -0,0 +1,74 @@ +// Package consts +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2022 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package consts + +// 生成代码类型 +const ( + GenCodesTypeCurd = 10 // 增删改查列表 + GenCodesTypeTree = 11 // 树列表 + GenCodesTypeQueue = 20 // 队列消费者 + GenCodesTypeCron = 30 // 定时任务 +) + +var GenCodesTypeNameMap = map[int]string{ + GenCodesTypeCurd: "增删改查列表", + GenCodesTypeTree: "关系树列表(未实现)", + GenCodesTypeQueue: "队列消费者(未实现)", + GenCodesTypeCron: "定时任务(未实现)", +} + +// 生成代码状态 +const ( + GenCodesStatusOk = 1 // 生成成功 + GenCodesStatusWait = 2 // 未生成 + GenCodesStatusFail = 3 // 生成失败 +) + +var GenCodesStatusNameMap = map[int]string{ + GenCodesStatusOk: "生成成功", + GenCodesStatusWait: "未生成", + GenCodesStatusFail: "生成失败", +} + +// 生成代码关联表方式 +const ( + GenCodesJoinLeft = 1 // 左关联 + GenCodesJoinRight = 2 // 右关联 + GenCodesJoinInner = 3 // 内关联 +) + +var GenCodesJoinNameMap = map[int]string{ + GenCodesJoinLeft: "左关联", + GenCodesJoinRight: "右关联", + GenCodesJoinInner: "内关联", +} + +var GenCodesJoinLinkMap = map[int]string{ + GenCodesJoinLeft: "LeftJoin", + GenCodesJoinRight: "RightJoin", + GenCodesJoinInner: "InnerJoin", +} + +// 生成代码的生成方式 +const ( + GenCodesBuildMethCreate = 1 // 创建 + GenCodesBuildMethCover = 2 // 覆盖 + GenCodesBuildMethSkip = 3 // 跳过 + GenCodesBuildIgnore = 4 // 不生成 +) + +var GenCodesBuildMethNameMap = map[int]string{ + GenCodesBuildMethCreate: "创建文件", + GenCodesBuildMethCover: "强制覆盖", + GenCodesBuildMethSkip: "已存在跳过", + GenCodesBuildIgnore: "不生成", +} + +const ( + GenCodesIndexPK = "PRI" // 主键索引 + GenCodesIndexUNI = "UNI" // 唯一索引 +) diff --git a/server/internal/consts/role.go b/server/internal/consts/role.go new file mode 100644 index 0000000..093f992 --- /dev/null +++ b/server/internal/consts/role.go @@ -0,0 +1,32 @@ +// Package consts +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2022 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package consts + +// 数据范围 +const ( + RoleDataAll = 1 // 全部权限 + + // 通过部门划分 + RoleDataNowDept = 2 // 当前部门 + RoleDataDeptAndSub = 3 // 当前部门及以下部门 + RoleDataDeptCustom = 4 // 自定义部门 + + // 通过上下级关系划分 + RoleDataSelf = 5 // 仅自己 + RoleDataSelfAndSub = 6 // 自己和直属下级 + RoleDataSelfAndAllSub = 7 // 自己和全部下级 +) + +var RoleDataNameMap = map[int]string{ + RoleDataAll: "全部权限", + RoleDataNowDept: "当前部门", + RoleDataDeptAndSub: "当前及以下部门", + RoleDataDeptCustom: "自定义部门", + RoleDataSelf: "仅自己", + RoleDataSelfAndSub: "自己和直属下级", + RoleDataSelfAndAllSub: "自己和全部下级", +} diff --git a/server/internal/consts/upload.go b/server/internal/consts/upload.go index 9b37b38..3025eb9 100644 --- a/server/internal/consts/upload.go +++ b/server/internal/consts/upload.go @@ -7,6 +7,7 @@ package consts const ( - UploadDriveLocal = "local" // 本地驱动 - UploadDriveOss = "oss" // 阿里云oss + UploadDriveLocal = "local" // 本地驱动 + UploadDriveOss = "oss" // 阿里云oss + UploadDriveUCloud = "ucloud" // ucloud对象存储 ) diff --git a/server/internal/consts/version.go b/server/internal/consts/version.go index 61de906..6196a06 100644 --- a/server/internal/consts/version.go +++ b/server/internal/consts/version.go @@ -6,7 +6,7 @@ // package consts -// VersionApp 应用版本 +// VersionApp HotGo版本 const ( - VersionApp = "2.0.3" + VersionApp = "2.1.0" ) diff --git a/server/internal/controller/backend/admin/member.go b/server/internal/controller/backend/admin/member.go index e3d0335..d3308d5 100644 --- a/server/internal/controller/backend/admin/member.go +++ b/server/internal/controller/backend/admin/member.go @@ -81,14 +81,14 @@ func (c *cMember) Profile(ctx context.Context, req *member.ProfileReq) (*member. res.SysDept = sysDept // 角色列表 - sysRoles, err := service.AdminRole().GetMemberList(ctx, memberInfo.Role) + sysRoles, err := service.AdminRole().GetMemberList(ctx, memberInfo.RoleId) if err != nil { return nil, err } res.SysRoles = sysRoles // 获取角色名称 - roleGroup, err := service.AdminRole().GetName(ctx, memberInfo.Role) + roleGroup, err := service.AdminRole().GetName(ctx, memberInfo.RoleId) if err != nil { return nil, err } @@ -174,6 +174,8 @@ func (c *cMember) Edit(ctx context.Context, req *member.EditReq) (res *member.Ed if err = gconv.Scan(req, &in); err != nil { return nil, err } + + in.PostIds = req.PostIds if err = service.AdminMember().Edit(ctx, in); err != nil { return nil, err } @@ -227,7 +229,7 @@ func (c *cMember) View(ctx context.Context, req *member.ViewReq) (*member.ViewRe return nil, err } - res.RoleIds = []int64{memberInfo.Role} + res.RoleIds = []int64{memberInfo.RoleId} res.DeptName, err = service.AdminDept().GetName(ctx, memberInfo.DeptId) if err != nil { return nil, err diff --git a/server/internal/controller/backend/admin/monitor.go b/server/internal/controller/backend/admin/monitor.go index 66f0282..dcfb498 100644 --- a/server/internal/controller/backend/admin/monitor.go +++ b/server/internal/controller/backend/admin/monitor.go @@ -56,7 +56,7 @@ func (c *cMonitor) OnlineList(ctx context.Context, req *monitor.OnlineListReq) ( var ( res monitor.OnlineListRes clients []*monitor.OnlineModel - i int64 + i int ) if c.wsManager.GetClientsLen() == 0 { @@ -86,16 +86,16 @@ func (c *cMonitor) OnlineList(ctx context.Context, req *monitor.OnlineListReq) ( }) } - res.PageCount = form.CalPageCount(int64(len(clients)), req.PerPage) + res.PageCount = form.CalPageCount(len(clients), req.PerPage) res.Page = req.Page res.PerPage = req.PerPage sort.Sort(monitor.OnlineModels(clients)) - isDemo, _ := g.Cfg().Get(ctx, "hotgo.isDemo", false) + isDemo := g.Cfg().MustGet(ctx, "hotgo.isDemo", false) _, perPage, offset := form.CalPage(ctx, req.Page, req.PerPage) for k, v := range clients { - if int64(k) >= offset && i <= perPage { + if k >= offset && i <= perPage { i++ if isDemo.Bool() { v.Addr = consts.DemoTips diff --git a/server/internal/controller/backend/admin/role.go b/server/internal/controller/backend/admin/role.go index a1a3ca5..78c4782 100644 --- a/server/internal/controller/backend/admin/role.go +++ b/server/internal/controller/backend/admin/role.go @@ -45,11 +45,11 @@ func (c *cRole) RoleMemberList(ctx context.Context, req *role.MemberListReq) (*r // List 获取列表 func (c *cRole) List(ctx context.Context, req *role.ListReq) (*role.ListRes, error) { - - list, totalCount, err := service.AdminRole().List(ctx, adminin.RoleListInp{ - Page: req.Page, - PerPage: req.PerPage, - }) + var in adminin.RoleListInp + if err := gconv.Scan(req, &in); err != nil { + return nil, err + } + list, totalCount, err := service.AdminRole().List(ctx, in) if err != nil { return nil, err } @@ -57,7 +57,7 @@ func (c *cRole) List(ctx context.Context, req *role.ListReq) (*role.ListRes, err var res role.ListRes res.List = list res.PageCount = form.CalPageCount(totalCount, req.PerPage) - res.PerPage = req.Page + res.Page = req.Page res.PerPage = req.PerPage return &res, nil @@ -115,3 +115,27 @@ func (c *cRole) UpdatePermissions(ctx context.Context, req *role.UpdatePermissio } return res, nil } + +// DataScopeSelect 获取数据权限选项 +func (c *cRole) DataScopeSelect(ctx context.Context, req *role.DataScopeSelectReq) (res *role.DataScopeSelectRes, err error) { + data := service.AdminRole().DataScopeSelect(ctx) + res = new(role.DataScopeSelectRes) + res.List = data + return res, nil +} + +// DataScopeEdit 获取数据权限选项 +func (c *cRole) DataScopeEdit(ctx context.Context, req *role.DataScopeEditReq) (res *role.DataScopeEditRes, err error) { + var in adminin.DataScopeEditInp + if err = gconv.Scan(req, &in); err != nil { + return nil, err + } + + in.CustomDept = req.CustomDept + err = service.AdminRole().DataScopeEdit(ctx, &in) + if err != nil { + return nil, err + } + + return res, nil +} diff --git a/server/internal/controller/backend/admin/test.go b/server/internal/controller/backend/admin/test.go new file mode 100644 index 0000000..c936db9 --- /dev/null +++ b/server/internal/controller/backend/admin/test.go @@ -0,0 +1,144 @@ +// Package admin +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2022 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package admin + +import ( + "context" + "github.com/gogf/gf/v2/util/gconv" + "hotgo/api/backend/test" + "hotgo/internal/model/input/adminin" + "hotgo/internal/model/input/form" + "hotgo/internal/service" + "hotgo/utility/validate" +) + +var ( + Test = cTest{} +) + +type cTest struct{} + +// List 查看列表 +func (c *cTest) List(ctx context.Context, req *test.ListReq) (res *test.ListRes, err error) { + var in adminin.TestListInp + if err = gconv.Scan(req, &in); err != nil { + return nil, err + } + + if err = validate.PreFilter(ctx, &in); err != nil { + return nil, err + } + + list, totalCount, err := service.AdminTest().List(ctx, in) + if err != nil { + return nil, err + } + + res = new(test.ListRes) + res.List = list + res.PageCount = form.CalPageCount(totalCount, req.PerPage) + res.Page = req.Page + res.PerPage = req.PerPage + return res, nil +} + +// Export 导出列表 +func (c *cTest) Export(ctx context.Context, req *test.ExportReq) (res *test.ExportRes, err error) { + var in adminin.TestListInp + if err = gconv.Scan(req, &in); err != nil { + return nil, err + } + if err = service.AdminTest().Export(ctx, in); err != nil { + return nil, err + } + return res, nil +} + +// Edit 更新 +func (c *cTest) Edit(ctx context.Context, req *test.EditReq) (res *test.EditRes, err error) { + var in adminin.TestEditInp + if err = gconv.Scan(req, &in); err != nil { + return nil, err + } + + if err = validate.PreFilter(ctx, &in); err != nil { + return nil, err + } + if err = service.AdminTest().Edit(ctx, in); err != nil { + return nil, err + } + return res, nil +} + +// MaxSort 最大排序 +func (c *cTest) MaxSort(ctx context.Context, req *test.MaxSortReq) (res *test.MaxSortRes, err error) { + data, err := service.AdminTest().MaxSort(ctx, adminin.TestMaxSortInp{}) + if err != nil { + return nil, err + } + + res = new(test.MaxSortRes) + res.TestMaxSortModel = data + return res, nil +} + +// View 获取指定信息 +func (c *cTest) View(ctx context.Context, req *test.ViewReq) (res *test.ViewRes, err error) { + var in adminin.TestViewInp + if err = gconv.Scan(req, &in); err != nil { + return nil, err + } + + data, err := service.AdminTest().View(ctx, in) + if err != nil { + return nil, err + } + + res = new(test.ViewRes) + res.TestViewModel = data + return res, nil +} + +// Delete 删除 +func (c *cTest) Delete(ctx context.Context, req *test.DeleteReq) (res *test.DeleteRes, err error) { + var in adminin.TestDeleteInp + if err = gconv.Scan(req, &in); err != nil { + return nil, err + } + + if err = service.AdminTest().Delete(ctx, in); err != nil { + return nil, err + } + return res, nil +} + +// Status 更新状态 +func (c *cTest) Status(ctx context.Context, req *test.StatusReq) (res *test.StatusRes, err error) { + var in adminin.TestStatusInp + if err = gconv.Scan(req, &in); err != nil { + return nil, err + } + + if err = service.AdminTest().Status(ctx, in); err != nil { + return nil, err + } + return res, nil +} + +// Switch 更新开关状态 +func (c *cTest) Switch(ctx context.Context, req *test.SwitchReq) (res *test.SwitchRes, err error) { + var in adminin.TestSwitchInp + if err = gconv.Scan(req, &in); err != nil { + return nil, err + } + + if err = service.AdminTest().Switch(ctx, in); err != nil { + return nil, err + } + + return res, nil +} diff --git a/server/internal/controller/backend/common/site.go b/server/internal/controller/backend/common/site.go index be5470d..d2e9c27 100644 --- a/server/internal/controller/backend/common/site.go +++ b/server/internal/controller/backend/common/site.go @@ -33,16 +33,31 @@ func (c *cSite) Ping(ctx context.Context, req *common.SitePingReq) (res *common. // Config 获取配置 func (c *cSite) Config(ctx context.Context, req *common.SiteConfigReq) (res *common.SiteConfigRes, err error) { - - wsAddr, _ := g.Cfg().Get(ctx, "hotgo.wsAddr", "ws://127.0.0.1:8000/ws") - g.Log().Warningf(ctx, "wsAddr:%+v", wsAddr.String()) res = &common.SiteConfigRes{ Version: consts.VersionApp, - WsAddr: wsAddr.String(), + WsAddr: c.getWsAddr(ctx), } return } +func (c *cSite) getWsAddr(ctx context.Context) string { + ws := g.Cfg().MustGet(ctx, "hotgo.wsAddr", "ws://127.0.0.1:8000/socket") + return ws.String() + + //// nginx负载均衡部署 + //// 如果是IP访问,则认为是调试模式,走配置中的ws地址,否则走实际请求中的域名+协议 + //if !validate.IsDNSName(ghttp.RequestFromCtx(ctx).Host) { + // ws := g.Cfg().MustGet(ctx, "hotgo.wsAddr", "ws://127.0.0.1:8000/socket") + // return ws.String() + //} + // + //if !validate.IsHTTPS(ctx) { + // return fmt.Sprintf("ws://%s/socket", url.GetDomain(ctx)) + //} + // + //return fmt.Sprintf("wss://%s/socket", url.GetDomain(ctx)) +} + // Captcha 登录验证码 func (c *cSite) Captcha(ctx context.Context, req *common.LoginCaptchaReq) (res *common.LoginCaptchaRes, err error) { diff --git a/server/internal/controller/backend/common/upload.go b/server/internal/controller/backend/common/upload.go index 9f2280d..167bb69 100644 --- a/server/internal/controller/backend/common/upload.go +++ b/server/internal/controller/backend/common/upload.go @@ -34,3 +34,20 @@ func (c *cUpload) UploadImage(ctx context.Context, req *common.UploadImageReq) ( return } + +// UploadFile 上传附件 +func (c *cUpload) UploadFile(ctx context.Context, req *common.UploadFileReq) (res common.UploadFileRes, err error) { + r := g.RequestFromCtx(ctx) + file := r.GetUploadFile("file") + if file == nil { + err = gerror.New("没有找到上传的文件") + return + } + + res, err = service.CommonUpload().UploadFile(ctx, file) + if err != nil { + return + } + + return +} diff --git a/server/internal/controller/backend/sys/config.go b/server/internal/controller/backend/sys/config.go index 6655526..e39937e 100644 --- a/server/internal/controller/backend/sys/config.go +++ b/server/internal/controller/backend/sys/config.go @@ -10,6 +10,8 @@ import ( "context" "github.com/gogf/gf/v2/util/gconv" "hotgo/api/backend/config" + "hotgo/internal/consts" + "hotgo/internal/model/input/form" "hotgo/internal/model/input/sysin" "hotgo/internal/service" ) @@ -55,3 +57,15 @@ func (c *cConfig) UpdateConfig(ctx context.Context, req *config.UpdateReq) (*con return &res, nil } + +// TypeSelect 数据类型选项 +func (c *cConfig) TypeSelect(ctx context.Context, req *config.TypeSelectReq) (res config.TypeSelectRes, err error) { + for _, v := range consts.ConfigTypes { + res = append(res, form.Select{ + Value: v, + Name: v, + Label: v, + }) + } + return +} diff --git a/server/internal/controller/backend/sys/curd_demo.go b/server/internal/controller/backend/sys/curd_demo.go new file mode 100644 index 0000000..6f48515 --- /dev/null +++ b/server/internal/controller/backend/sys/curd_demo.go @@ -0,0 +1,169 @@ +// Package sys +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2023 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// @AutoGenerate Version 2.1.0 +// @AutoGenerate Date 2023-01-18 15:19:42 +// +package sys + +import ( + "context" + "hotgo/api/backend/curddemo" + "hotgo/internal/model/input/form" + "hotgo/internal/model/input/sysin" + "hotgo/internal/service" + "hotgo/utility/validate" + + "github.com/gogf/gf/v2/util/gconv" +) + +var ( + CurdDemo = cCurdDemo{} +) + +type cCurdDemo struct{} + +// List 查看生成演示列表 +func (c *cCurdDemo) List(ctx context.Context, req *curddemo.ListReq) (res *curddemo.ListRes, err error) { + var in sysin.CurdDemoListInp + if err = gconv.Scan(req, &in); err != nil { + return nil, err + } + + if err = validate.PreFilter(ctx, &in); err != nil { + return nil, err + } + + list, totalCount, err := service.SysCurdDemo().List(ctx, in) + if err != nil { + return nil, err + } + + res = new(curddemo.ListRes) + res.List = list + res.PageCount = form.CalPageCount(totalCount, req.PerPage) + res.Page = req.Page + res.PerPage = req.PerPage + return res, nil +} + +// Export 导出生成演示列表 +func (c *cCurdDemo) Export(ctx context.Context, req *curddemo.ExportReq) (res *curddemo.ExportRes, err error) { + var in sysin.CurdDemoListInp + if err = gconv.Scan(req, &in); err != nil { + return nil, err + } + + if err = validate.PreFilter(ctx, &in); err != nil { + return nil, err + } + + if err = service.SysCurdDemo().Export(ctx, in); err != nil { + return nil, err + } + return res, nil +} + +// Edit 更新生成演示 +func (c *cCurdDemo) Edit(ctx context.Context, req *curddemo.EditReq) (res *curddemo.EditRes, err error) { + var in sysin.CurdDemoEditInp + if err = gconv.Scan(req, &in); err != nil { + return nil, err + } + + if err = validate.PreFilter(ctx, &in); err != nil { + return nil, err + } + + if err = service.SysCurdDemo().Edit(ctx, in); err != nil { + return nil, err + } + return res, nil +} + +// MaxSort 获取生成演示最大排序 +func (c *cCurdDemo) MaxSort(ctx context.Context, req *curddemo.MaxSortReq) (res *curddemo.MaxSortRes, err error) { + data, err := service.SysCurdDemo().MaxSort(ctx, sysin.CurdDemoMaxSortInp{}) + if err != nil { + return nil, err + } + + res = new(curddemo.MaxSortRes) + res.CurdDemoMaxSortModel = data + return res, nil +} + +// View 获取指定生成演示信息 +func (c *cCurdDemo) View(ctx context.Context, req *curddemo.ViewReq) (res *curddemo.ViewRes, err error) { + var in sysin.CurdDemoViewInp + if err = gconv.Scan(req, &in); err != nil { + return nil, err + } + + if err = validate.PreFilter(ctx, &in); err != nil { + return nil, err + } + + data, err := service.SysCurdDemo().View(ctx, in) + if err != nil { + return nil, err + } + + res = new(curddemo.ViewRes) + res.CurdDemoViewModel = data + return res, nil +} + +// Delete 删除生成演示 +func (c *cCurdDemo) Delete(ctx context.Context, req *curddemo.DeleteReq) (res *curddemo.DeleteRes, err error) { + var in sysin.CurdDemoDeleteInp + if err = gconv.Scan(req, &in); err != nil { + return nil, err + } + + if err = validate.PreFilter(ctx, &in); err != nil { + return nil, err + } + + if err = service.SysCurdDemo().Delete(ctx, in); err != nil { + return nil, err + } + return res, nil +} + +// Status 更新生成演示状态 +func (c *cCurdDemo) Status(ctx context.Context, req *curddemo.StatusReq) (res *curddemo.StatusRes, err error) { + var in sysin.CurdDemoStatusInp + if err = gconv.Scan(req, &in); err != nil { + return nil, err + } + + if err = validate.PreFilter(ctx, &in); err != nil { + return nil, err + } + + if err = service.SysCurdDemo().Status(ctx, in); err != nil { + return nil, err + } + return res, nil +} + +// Switch 更新生成演示开关状态 +func (c *cCurdDemo) Switch(ctx context.Context, req *curddemo.SwitchReq) (res *curddemo.SwitchRes, err error) { + var in sysin.CurdDemoSwitchInp + if err = gconv.Scan(req, &in); err != nil { + return nil, err + } + + if err = validate.PreFilter(ctx, &in); err != nil { + return nil, err + } + + if err = service.SysCurdDemo().Switch(ctx, in); err != nil { + return nil, err + } + + return res, nil +} diff --git a/server/internal/controller/backend/sys/dict_data.go b/server/internal/controller/backend/sys/dict_data.go index b3df804..bf89527 100644 --- a/server/internal/controller/backend/sys/dict_data.go +++ b/server/internal/controller/backend/sys/dict_data.go @@ -49,7 +49,6 @@ func (c *cDictData) Edit(ctx context.Context, req *dict.DataEditReq) (res *dict. // List 查看列表 func (c *cDictData) List(ctx context.Context, req *dict.DataListReq) (*dict.DataListRes, error) { - var ( in sysin.DictDataListInp res dict.DataListRes @@ -71,3 +70,37 @@ func (c *cDictData) List(ctx context.Context, req *dict.DataListReq) (*dict.Data return &res, nil } + +// Select 指定选项 +func (c *cDictData) Select(ctx context.Context, req *dict.DataSelectReq) (*dict.DataSelectRes, error) { + var ( + in sysin.DataSelectInp + res dict.DataSelectRes + ) + + if err := gconv.Scan(req, &in); err != nil { + return nil, err + } + + list, err := service.SysDictData().Select(ctx, in) + if err != nil { + return nil, err + } + + res = dict.DataSelectRes(list) + return &res, nil +} + +// Selects 多个选项 +func (c *cDictData) Selects(ctx context.Context, req *dict.DataSelectsReq) (*dict.DataSelectsRes, error) { + res := make(dict.DataSelectsRes) + for _, v := range req.Types { + option, err := service.SysDictData().Select(ctx, sysin.DataSelectInp{Type: v}) + if err != nil { + return nil, err + } + res[v] = option + } + + return &res, nil +} diff --git a/server/internal/controller/backend/sys/gen_codes.go b/server/internal/controller/backend/sys/gen_codes.go new file mode 100644 index 0000000..cb7fda4 --- /dev/null +++ b/server/internal/controller/backend/sys/gen_codes.go @@ -0,0 +1,208 @@ +// Package sys +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2022 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package sys + +import ( + "context" + "github.com/gogf/gf/v2/util/gconv" + "hotgo/api/backend/gencodes" + "hotgo/internal/model/input/form" + "hotgo/internal/model/input/sysin" + "hotgo/internal/service" +) + +var ( + GenCodes = cGenCodes{} +) + +type cGenCodes struct{} + +// Delete 删除 +func (c *cGenCodes) Delete(ctx context.Context, req *gencodes.DeleteReq) (res *gencodes.DeleteRes, err error) { + var in sysin.GenCodesDeleteInp + if err = gconv.Scan(req, &in); err != nil { + return nil, err + } + if err = service.SysGenCodes().Delete(ctx, in); err != nil { + return nil, err + } + return res, nil +} + +// Edit 更新 +func (c *cGenCodes) Edit(ctx context.Context, req *gencodes.EditReq) (res *gencodes.EditRes, err error) { + + var in sysin.GenCodesEditInp + if err = gconv.Scan(req, &in); err != nil { + return nil, err + } + data, err := service.SysGenCodes().Edit(ctx, in) + if err != nil { + return nil, err + } + res = new(gencodes.EditRes) + res.GenCodesEditModel = data + return res, nil +} + +// MaxSort 最大排序 +func (c *cGenCodes) MaxSort(ctx context.Context, req *gencodes.MaxSortReq) (*gencodes.MaxSortRes, error) { + + data, err := service.SysGenCodes().MaxSort(ctx, sysin.GenCodesMaxSortInp{Id: req.Id}) + if err != nil { + return nil, err + } + + var res gencodes.MaxSortRes + res.Sort = data.Sort + return &res, nil +} + +// View 获取指定信息 +func (c *cGenCodes) View(ctx context.Context, req *gencodes.ViewReq) (*gencodes.ViewRes, error) { + + data, err := service.SysGenCodes().View(ctx, sysin.GenCodesViewInp{Id: req.Id}) + if err != nil { + return nil, err + } + + var res gencodes.ViewRes + res.GenCodesViewModel = data + return &res, nil +} + +// List 查看列表 +func (c *cGenCodes) List(ctx context.Context, req *gencodes.ListReq) (*gencodes.ListRes, error) { + + var ( + in sysin.GenCodesListInp + res gencodes.ListRes + ) + + if err := gconv.Scan(req, &in); err != nil { + return nil, err + } + + list, totalCount, err := service.SysGenCodes().List(ctx, in) + if err != nil { + return nil, err + } + + res.List = list + res.PageCount = form.CalPageCount(totalCount, req.PerPage) + res.Page = req.Page + res.PerPage = req.PerPage + + return &res, nil +} + +// Status 更新部门状态 +func (c *cGenCodes) Status(ctx context.Context, req *gencodes.StatusReq) (res *gencodes.StatusRes, err error) { + + var in sysin.GenCodesStatusInp + if err = gconv.Scan(req, &in); err != nil { + return nil, err + } + if err = service.SysGenCodes().Status(ctx, in); err != nil { + return nil, err + } + + return res, nil +} + +// Selects 获取指定信息 +func (c *cGenCodes) Selects(ctx context.Context, req *gencodes.SelectsReq) (*gencodes.SelectsRes, error) { + data, err := service.SysGenCodes().Selects(ctx, sysin.GenCodesSelectsInp{}) + if err != nil { + return nil, err + } + + var res gencodes.SelectsRes + res.GenCodesSelectsModel = data + return &res, nil +} + +// TableSelect 数据库表选项 +func (c *cGenCodes) TableSelect(ctx context.Context, req *gencodes.TableSelectReq) (*gencodes.TableSelectRes, error) { + data, err := service.SysGenCodes().TableSelect(ctx, sysin.GenCodesTableSelectInp{Name: req.Name}) + if err != nil { + return nil, err + } + + var res gencodes.TableSelectRes + res = data + return &res, nil +} + +// ColumnSelect 表字段选项 +func (c *cGenCodes) ColumnSelect(ctx context.Context, req *gencodes.ColumnSelectReq) (*gencodes.ColumnSelectRes, error) { + data, err := service.SysGenCodes().ColumnSelect(ctx, sysin.GenCodesColumnSelectInp{Name: req.Name, Table: req.Table}) + if err != nil { + return nil, err + } + + var res gencodes.ColumnSelectRes + res = data + return &res, nil +} + +// ColumnList 表字段列表 +func (c *cGenCodes) ColumnList(ctx context.Context, req *gencodes.ColumnListReq) (*gencodes.ColumnListRes, error) { + var ( + in sysin.GenCodesColumnListInp + err error + ) + if err = gconv.Scan(req, &in); err != nil { + return nil, err + } + + data, err := service.SysGenCodes().ColumnList(ctx, in) + if err != nil { + return nil, err + } + + var res gencodes.ColumnListRes + res = data + return &res, nil +} + +// Preview 生成预览 +func (c *cGenCodes) Preview(ctx context.Context, req *gencodes.PreviewReq) (*gencodes.PreviewRes, error) { + var ( + in sysin.GenCodesPreviewInp + err error + ) + if err = gconv.Scan(req, &in); err != nil { + return nil, err + } + + data, err := service.SysGenCodes().Preview(ctx, in) + if err != nil { + return nil, err + } + + res := new(gencodes.PreviewRes) + res.GenCodesPreviewModel = data + return res, nil +} + +// Build 生成预览 +func (c *cGenCodes) Build(ctx context.Context, req *gencodes.BuildReq) (*gencodes.BuildRes, error) { + var ( + in sysin.GenCodesBuildInp + err error + ) + if err = gconv.Scan(req, &in); err != nil { + return nil, err + } + + if err = service.SysGenCodes().Build(ctx, in); err != nil { + return nil, err + } + + return nil, nil +} diff --git a/server/internal/controller/home/base/site.go b/server/internal/controller/home/base/site.go index 98cd63c..4eebb2c 100644 --- a/server/internal/controller/home/base/site.go +++ b/server/internal/controller/home/base/site.go @@ -24,6 +24,7 @@ func (a *cSite) Index(ctx context.Context, req *base.SiteIndexReq) (res *base.Si service.View().Render(ctx, model.View{Data: g.Map{ "name": "HotGo", "version": consts.VersionApp, + "debug": g.Cfg().MustGet(ctx, "hotgo.debug", true), }}) return } diff --git a/server/internal/controller/websocket/handler/admin/monitor.go b/server/internal/controller/websocket/handler/admin/monitor.go index 6829ce3..3068721 100644 --- a/server/internal/controller/websocket/handler/admin/monitor.go +++ b/server/internal/controller/websocket/handler/admin/monitor.go @@ -78,7 +78,7 @@ func (c *cMonitor) RunInfo(client *websocket.Client, req *websocket.WRequest) { "goSize": file.DirSize(pwd), } - isDemo, _ := g.Cfg().Get(client.Context(), "hotgo.isDemo", false) + isDemo := g.Cfg().MustGet(client.Context(), "hotgo.isDemo", false) if isDemo.Bool() { data["rootPath"] = consts.DemoTips data["pwd"] = consts.DemoTips diff --git a/server/internal/crons/init.go b/server/internal/crons/init.go index d18c517..870012a 100644 --- a/server/internal/crons/init.go +++ b/server/internal/crons/init.go @@ -130,7 +130,7 @@ func StartALL(sysCron []*entity.SysCron) error { } } - g.Log().Info(ct, "定时任务启动完毕...") + g.Log().Debug(ct, "load scheduled task complete..") return nil } diff --git a/server/internal/dao/admin_member_post.go b/server/internal/dao/admin_member_post.go index d683aa5..263820c 100644 --- a/server/internal/dao/admin_member_post.go +++ b/server/internal/dao/admin_member_post.go @@ -29,15 +29,9 @@ var ( } ) -// UpdatePostIds -// @Description: -// @receiver dao -// @param ctx -// @param memberId -// @param postIds -// @return err -// +// UpdatePostIds 更新管理员岗位 func (dao *adminMemberPostDao) UpdatePostIds(ctx context.Context, memberId int64, postIds []int64) (err error) { + g.DumpWithType(postIds) _, err = dao.Ctx(ctx). Where("member_id", memberId). Delete() @@ -61,16 +55,8 @@ func (dao *adminMemberPostDao) UpdatePostIds(ctx context.Context, memberId int64 return nil } -// GetMemberByIds 获取指定会员的岗位ids -// @Description: -// @receiver dao -// @param ctx -// @param memberId -// @return postIds -// @return err -// +// GetMemberByIds 获取指定关联员的岗位ids func (dao *adminMemberPostDao) GetMemberByIds(ctx context.Context, memberId int64) (postIds []int64, err error) { - var list []*entity.AdminMemberPost err = dao.Ctx(ctx). Fields("post_id"). @@ -85,6 +71,5 @@ func (dao *adminMemberPostDao) GetMemberByIds(ctx context.Context, memberId int6 postIds = append(postIds, list[i].PostId) } - g.Log().Print(ctx, "post_ids:", postIds) return postIds, nil } diff --git a/server/internal/dao/admin_role_dept.go b/server/internal/dao/admin_role_dept.go deleted file mode 100644 index e543353..0000000 --- a/server/internal/dao/admin_role_dept.go +++ /dev/null @@ -1,27 +0,0 @@ -// ================================================================================= -// This is auto-generated by GoFrame CLI tool only once. Fill this file as you wish. -// ================================================================================= - -package dao - -import ( - "hotgo/internal/dao/internal" -) - -// internalAdminRoleDeptDao is internal type for wrapping internal DAO implements. -type internalAdminRoleDeptDao = *internal.AdminRoleDeptDao - -// adminRoleDeptDao is the data access object for table hg_admin_role_dept. -// You can define custom methods on it to extend its functionality as you wish. -type adminRoleDeptDao struct { - internalAdminRoleDeptDao -} - -var ( - // AdminRoleDept is globally common accessible object for table hg_admin_role_dept operations. - AdminRoleDept = adminRoleDeptDao{ - internal.NewAdminRoleDeptDao(), - } -) - -// Fill with you ideas below. diff --git a/server/internal/dao/demo.go b/server/internal/dao/demo.go new file mode 100644 index 0000000..79b7dc8 --- /dev/null +++ b/server/internal/dao/demo.go @@ -0,0 +1,27 @@ +// ================================================================================= +// This is auto-generated by GoFrame CLI tool only once. Fill this file as you wish. +// ================================================================================= + +package dao + +import ( + "hotgo/internal/dao/internal" +) + +// internalDemoDao is internal type for wrapping internal DAO implements. +type internalDemoDao = *internal.DemoDao + +// demoDao is the data access object for table hg_demo. +// You can define custom methods on it to extend its functionality as you wish. +type demoDao struct { + internalDemoDao +} + +var ( + // Demo is globally public accessible object for table hg_demo operations. + Demo = demoDao{ + internal.NewDemoDao(), + } +) + +// Fill with you ideas below. diff --git a/server/internal/dao/internal/admin_dept.go b/server/internal/dao/internal/admin_dept.go index 35a336d..5259449 100644 --- a/server/internal/dao/internal/admin_dept.go +++ b/server/internal/dao/internal/admin_dept.go @@ -20,8 +20,8 @@ type AdminDeptDao struct { // AdminDeptColumns defines and stores column names for table hg_admin_dept. type AdminDeptColumns struct { - Id string // 部门id - Pid string // 父部门id + Id string // 部门ID + Pid string // 父部门ID Name string // 部门名称 Code string // 部门编码 Type string // 部门类型 @@ -34,7 +34,7 @@ type AdminDeptColumns struct { UpdatedAt string // 更新时间 } -// adminDeptColumns holds the columns for table hg_admin_dept. +// adminDeptColumns holds the columns for table hg_admin_dept. var adminDeptColumns = AdminDeptColumns{ Id: "id", Pid: "pid", @@ -90,6 +90,6 @@ func (dao *AdminDeptDao) Ctx(ctx context.Context) *gdb.Model { // // Note that, you should not Commit or Rollback the transaction in function f // as it is automatically handled by this function. -func (dao *AdminDeptDao) Transaction(ctx context.Context, f func(ctx context.Context, tx *gdb.TX) error) (err error) { +func (dao *AdminDeptDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) { return dao.Ctx(ctx).Transaction(ctx, f) } diff --git a/server/internal/dao/internal/admin_member.go b/server/internal/dao/internal/admin_member.go index 185a7ad..d0f2103 100644 --- a/server/internal/dao/internal/admin_member.go +++ b/server/internal/dao/internal/admin_member.go @@ -20,64 +20,64 @@ type AdminMemberDao struct { // AdminMemberColumns defines and stores column names for table hg_admin_member. type AdminMemberColumns struct { - Id string // + Id string // 管理员ID DeptId string // 部门ID + RoleId string // 角色ID + RealName string // 真实姓名 Username string // 帐号 PasswordHash string // 密码 Salt string // 密码盐 AuthKey string // 授权令牌 PasswordResetToken string // 密码重置令牌 - Type string // 1:普通管理员;10超级管理员 - Realname string // 真实姓名 Avatar string // 头像 - Sex string // 性别[1:男;2:女;3:未知] + Sex string // 性别 Qq string // qq Email string // 邮箱 - Birthday string // 生日 - ProvinceId string // 省 - CityId string // 城市 - AreaId string // 地区 - Address string // 默认地址 Mobile string // 手机号码 - HomePhone string // 家庭号码 - DingtalkRobotToken string // 钉钉机器人token + Birthday string // 生日 + ProvinceId string // 省编码 + CityId string // 城市编码 + CountyId string // 区域编码 + Address string // 联系地址 VisitCount string // 访问次数 LastTime string // 最后一次登录时间 LastIp string // 最后一次登录ip - Role string // 权限 + Pid string // 上级管理员ID + Level string // 关系树等级 + Tree string // 关系树 Remark string // 备注 Status string // 状态 CreatedAt string // 创建时间 UpdatedAt string // 修改时间 } -// adminMemberColumns holds the columns for table hg_admin_member. +// adminMemberColumns holds the columns for table hg_admin_member. var adminMemberColumns = AdminMemberColumns{ Id: "id", DeptId: "dept_id", + RoleId: "role_id", + RealName: "real_name", Username: "username", PasswordHash: "password_hash", Salt: "salt", AuthKey: "auth_key", PasswordResetToken: "password_reset_token", - Type: "type", - Realname: "realname", Avatar: "avatar", Sex: "sex", Qq: "qq", Email: "email", + Mobile: "mobile", Birthday: "birthday", ProvinceId: "province_id", CityId: "city_id", - AreaId: "area_id", + CountyId: "county_id", Address: "address", - Mobile: "mobile", - HomePhone: "home_phone", - DingtalkRobotToken: "dingtalk_robot_token", VisitCount: "visit_count", LastTime: "last_time", LastIp: "last_ip", - Role: "role", + Pid: "pid", + Level: "level", + Tree: "tree", Remark: "remark", Status: "status", CreatedAt: "created_at", @@ -124,6 +124,6 @@ func (dao *AdminMemberDao) Ctx(ctx context.Context) *gdb.Model { // // Note that, you should not Commit or Rollback the transaction in function f // as it is automatically handled by this function. -func (dao *AdminMemberDao) Transaction(ctx context.Context, f func(ctx context.Context, tx *gdb.TX) error) (err error) { +func (dao *AdminMemberDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) { return dao.Ctx(ctx).Transaction(ctx, f) } diff --git a/server/internal/dao/internal/admin_member_post.go b/server/internal/dao/internal/admin_member_post.go index 26d5879..e5c2f95 100644 --- a/server/internal/dao/internal/admin_member_post.go +++ b/server/internal/dao/internal/admin_member_post.go @@ -20,11 +20,11 @@ type AdminMemberPostDao struct { // AdminMemberPostColumns defines and stores column names for table hg_admin_member_post. type AdminMemberPostColumns struct { - MemberId string // 用户ID + MemberId string // 管理员ID PostId string // 岗位ID } -// adminMemberPostColumns holds the columns for table hg_admin_member_post. +// adminMemberPostColumns holds the columns for table hg_admin_member_post. var adminMemberPostColumns = AdminMemberPostColumns{ MemberId: "member_id", PostId: "post_id", @@ -70,6 +70,6 @@ func (dao *AdminMemberPostDao) Ctx(ctx context.Context) *gdb.Model { // // Note that, you should not Commit or Rollback the transaction in function f // as it is automatically handled by this function. -func (dao *AdminMemberPostDao) Transaction(ctx context.Context, f func(ctx context.Context, tx *gdb.TX) error) (err error) { +func (dao *AdminMemberPostDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) { return dao.Ctx(ctx).Transaction(ctx, f) } diff --git a/server/internal/dao/internal/admin_member_role.go b/server/internal/dao/internal/admin_member_role.go index 20c69a0..093b895 100644 --- a/server/internal/dao/internal/admin_member_role.go +++ b/server/internal/dao/internal/admin_member_role.go @@ -20,11 +20,11 @@ type AdminMemberRoleDao struct { // AdminMemberRoleColumns defines and stores column names for table hg_admin_member_role. type AdminMemberRoleColumns struct { - MemberId string // 用户ID + MemberId string // 管理员ID RoleId string // 角色ID } -// adminMemberRoleColumns holds the columns for table hg_admin_member_role. +// adminMemberRoleColumns holds the columns for table hg_admin_member_role. var adminMemberRoleColumns = AdminMemberRoleColumns{ MemberId: "member_id", RoleId: "role_id", @@ -70,6 +70,6 @@ func (dao *AdminMemberRoleDao) Ctx(ctx context.Context) *gdb.Model { // // Note that, you should not Commit or Rollback the transaction in function f // as it is automatically handled by this function. -func (dao *AdminMemberRoleDao) Transaction(ctx context.Context, f func(ctx context.Context, tx *gdb.TX) error) (err error) { +func (dao *AdminMemberRoleDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) { return dao.Ctx(ctx).Transaction(ctx, f) } diff --git a/server/internal/dao/internal/admin_menu.go b/server/internal/dao/internal/admin_menu.go index 2efd57a..9628803 100644 --- a/server/internal/dao/internal/admin_menu.go +++ b/server/internal/dao/internal/admin_menu.go @@ -39,8 +39,8 @@ type AdminMenuColumns struct { KeepAlive string // 缓存该路由 Hidden string // 是否隐藏 Affix string // 是否固定 - Level string // 级别 - Tree string // 树 + Level string // 关系树等级 + Tree string // 关系树 Sort string // 排序 Remark string // 备注 Status string // 菜单状态 @@ -48,7 +48,7 @@ type AdminMenuColumns struct { UpdatedAt string // 更新时间 } -// adminMenuColumns holds the columns for table hg_admin_menu. +// adminMenuColumns holds the columns for table hg_admin_menu. var adminMenuColumns = AdminMenuColumns{ Id: "id", Pid: "pid", @@ -118,6 +118,6 @@ func (dao *AdminMenuDao) Ctx(ctx context.Context) *gdb.Model { // // Note that, you should not Commit or Rollback the transaction in function f // as it is automatically handled by this function. -func (dao *AdminMenuDao) Transaction(ctx context.Context, f func(ctx context.Context, tx *gdb.TX) error) (err error) { +func (dao *AdminMenuDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) { return dao.Ctx(ctx).Transaction(ctx, f) } diff --git a/server/internal/dao/internal/admin_notice.go b/server/internal/dao/internal/admin_notice.go index 18b1699..19da724 100644 --- a/server/internal/dao/internal/admin_notice.go +++ b/server/internal/dao/internal/admin_notice.go @@ -22,7 +22,7 @@ type AdminNoticeDao struct { type AdminNoticeColumns struct { Id string // 公告ID Title string // 公告标题 - Type string // 公告类型(1通知 2公告) + Type string // 公告类型 Content string // 公告内容 Receiver string // 接收者 Reader string // 已读人 @@ -33,7 +33,7 @@ type AdminNoticeColumns struct { UpdatedAt string // 更新时间 } -// adminNoticeColumns holds the columns for table hg_admin_notice. +// adminNoticeColumns holds the columns for table hg_admin_notice. var adminNoticeColumns = AdminNoticeColumns{ Id: "id", Title: "title", @@ -88,6 +88,6 @@ func (dao *AdminNoticeDao) Ctx(ctx context.Context) *gdb.Model { // // Note that, you should not Commit or Rollback the transaction in function f // as it is automatically handled by this function. -func (dao *AdminNoticeDao) Transaction(ctx context.Context, f func(ctx context.Context, tx *gdb.TX) error) (err error) { +func (dao *AdminNoticeDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) { return dao.Ctx(ctx).Transaction(ctx, f) } diff --git a/server/internal/dao/internal/admin_post.go b/server/internal/dao/internal/admin_post.go index 2f01ad9..23c4389 100644 --- a/server/internal/dao/internal/admin_post.go +++ b/server/internal/dao/internal/admin_post.go @@ -30,7 +30,7 @@ type AdminPostColumns struct { UpdatedAt string // 更新时间 } -// adminPostColumns holds the columns for table hg_admin_post. +// adminPostColumns holds the columns for table hg_admin_post. var adminPostColumns = AdminPostColumns{ Id: "id", Code: "code", @@ -82,6 +82,6 @@ func (dao *AdminPostDao) Ctx(ctx context.Context) *gdb.Model { // // Note that, you should not Commit or Rollback the transaction in function f // as it is automatically handled by this function. -func (dao *AdminPostDao) Transaction(ctx context.Context, f func(ctx context.Context, tx *gdb.TX) error) (err error) { +func (dao *AdminPostDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) { return dao.Ctx(ctx).Transaction(ctx, f) } diff --git a/server/internal/dao/internal/admin_role.go b/server/internal/dao/internal/admin_role.go index 0297e58..3e263c9 100644 --- a/server/internal/dao/internal/admin_role.go +++ b/server/internal/dao/internal/admin_role.go @@ -20,32 +20,36 @@ type AdminRoleDao struct { // AdminRoleColumns defines and stores column names for table hg_admin_role. type AdminRoleColumns struct { - Id string // 角色ID - Name string // 角色名称 - Key string // 角色权限字符串 - DataScope string // 数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限) - MenuCheckStrictly string // 菜单树选择项是否关联显示 - DeptCheckStrictly string // 部门树选择项是否关联显示 - Remark string // 备注 - Sort string // 排序 - Status string // 角色状态 - CreatedAt string // 创建时间 - UpdatedAt string // 更新时间 + Id string // 角色ID + Name string // 角色名称 + Key string // 角色权限字符串 + DataScope string // 数据范围 + CustomDept string // 自定义部门权限 + Pid string // 上级角色ID + Level string // 关系树等级 + Tree string // 关系树 + Remark string // 备注 + Sort string // 排序 + Status string // 角色状态 + CreatedAt string // 创建时间 + UpdatedAt string // 更新时间 } -// adminRoleColumns holds the columns for table hg_admin_role. +// adminRoleColumns holds the columns for table hg_admin_role. var adminRoleColumns = AdminRoleColumns{ - Id: "id", - Name: "name", - Key: "key", - DataScope: "data_scope", - MenuCheckStrictly: "menu_check_strictly", - DeptCheckStrictly: "dept_check_strictly", - Remark: "remark", - Sort: "sort", - Status: "status", - CreatedAt: "created_at", - UpdatedAt: "updated_at", + Id: "id", + Name: "name", + Key: "key", + DataScope: "data_scope", + CustomDept: "custom_dept", + Pid: "pid", + Level: "level", + Tree: "tree", + Remark: "remark", + Sort: "sort", + Status: "status", + CreatedAt: "created_at", + UpdatedAt: "updated_at", } // NewAdminRoleDao creates and returns a new DAO object for table data access. @@ -88,6 +92,6 @@ func (dao *AdminRoleDao) Ctx(ctx context.Context) *gdb.Model { // // Note that, you should not Commit or Rollback the transaction in function f // as it is automatically handled by this function. -func (dao *AdminRoleDao) Transaction(ctx context.Context, f func(ctx context.Context, tx *gdb.TX) error) (err error) { +func (dao *AdminRoleDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) { return dao.Ctx(ctx).Transaction(ctx, f) } diff --git a/server/internal/dao/internal/admin_role_casbin.go b/server/internal/dao/internal/admin_role_casbin.go index 266527c..2dd2d9c 100644 --- a/server/internal/dao/internal/admin_role_casbin.go +++ b/server/internal/dao/internal/admin_role_casbin.go @@ -30,7 +30,7 @@ type AdminRoleCasbinColumns struct { V5 string // } -// adminRoleCasbinColumns holds the columns for table hg_admin_role_casbin. +// adminRoleCasbinColumns holds the columns for table hg_admin_role_casbin. var adminRoleCasbinColumns = AdminRoleCasbinColumns{ Id: "id", PType: "p_type", @@ -82,6 +82,6 @@ func (dao *AdminRoleCasbinDao) Ctx(ctx context.Context) *gdb.Model { // // Note that, you should not Commit or Rollback the transaction in function f // as it is automatically handled by this function. -func (dao *AdminRoleCasbinDao) Transaction(ctx context.Context, f func(ctx context.Context, tx *gdb.TX) error) (err error) { +func (dao *AdminRoleCasbinDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) { return dao.Ctx(ctx).Transaction(ctx, f) } diff --git a/server/internal/dao/internal/admin_role_dept.go b/server/internal/dao/internal/admin_role_dept.go deleted file mode 100644 index a440a01..0000000 --- a/server/internal/dao/internal/admin_role_dept.go +++ /dev/null @@ -1,75 +0,0 @@ -// ========================================================================== -// Code generated by GoFrame CLI tool. DO NOT EDIT. -// ========================================================================== - -package internal - -import ( - "context" - - "github.com/gogf/gf/v2/database/gdb" - "github.com/gogf/gf/v2/frame/g" -) - -// AdminRoleDeptDao is the data access object for table hg_admin_role_dept. -type AdminRoleDeptDao struct { - table string // table is the underlying table name of the DAO. - group string // group is the database configuration group name of current DAO. - columns AdminRoleDeptColumns // columns contains all the column names of Table for convenient usage. -} - -// AdminRoleDeptColumns defines and stores column names for table hg_admin_role_dept. -type AdminRoleDeptColumns struct { - RoleId string // 角色ID - DeptId string // 部门ID -} - -// adminRoleDeptColumns holds the columns for table hg_admin_role_dept. -var adminRoleDeptColumns = AdminRoleDeptColumns{ - RoleId: "role_id", - DeptId: "dept_id", -} - -// NewAdminRoleDeptDao creates and returns a new DAO object for table data access. -func NewAdminRoleDeptDao() *AdminRoleDeptDao { - return &AdminRoleDeptDao{ - group: "default", - table: "hg_admin_role_dept", - columns: adminRoleDeptColumns, - } -} - -// DB retrieves and returns the underlying raw database management object of current DAO. -func (dao *AdminRoleDeptDao) DB() gdb.DB { - return g.DB(dao.group) -} - -// Table returns the table name of current dao. -func (dao *AdminRoleDeptDao) Table() string { - return dao.table -} - -// Columns returns all column names of current dao. -func (dao *AdminRoleDeptDao) Columns() AdminRoleDeptColumns { - return dao.columns -} - -// Group returns the configuration group name of database of current dao. -func (dao *AdminRoleDeptDao) Group() string { - return dao.group -} - -// Ctx creates and returns the Model for current DAO, It automatically sets the context for current operation. -func (dao *AdminRoleDeptDao) Ctx(ctx context.Context) *gdb.Model { - return dao.DB().Model(dao.table).Safe().Ctx(ctx) -} - -// Transaction wraps the transaction logic using function f. -// It rollbacks the transaction and returns the error from function f if it returns non-nil error. -// It commits the transaction and returns nil if function f returns nil. -// -// Note that, you should not Commit or Rollback the transaction in function f -// as it is automatically handled by this function. -func (dao *AdminRoleDeptDao) Transaction(ctx context.Context, f func(ctx context.Context, tx *gdb.TX) error) (err error) { - return dao.Ctx(ctx).Transaction(ctx, f) -} diff --git a/server/internal/dao/internal/admin_role_menu.go b/server/internal/dao/internal/admin_role_menu.go index 2529a45..021a241 100644 --- a/server/internal/dao/internal/admin_role_menu.go +++ b/server/internal/dao/internal/admin_role_menu.go @@ -24,7 +24,7 @@ type AdminRoleMenuColumns struct { MenuId string // 菜单ID } -// adminRoleMenuColumns holds the columns for table hg_admin_role_menu. +// adminRoleMenuColumns holds the columns for table hg_admin_role_menu. var adminRoleMenuColumns = AdminRoleMenuColumns{ RoleId: "role_id", MenuId: "menu_id", @@ -70,6 +70,6 @@ func (dao *AdminRoleMenuDao) Ctx(ctx context.Context) *gdb.Model { // // Note that, you should not Commit or Rollback the transaction in function f // as it is automatically handled by this function. -func (dao *AdminRoleMenuDao) Transaction(ctx context.Context, f func(ctx context.Context, tx *gdb.TX) error) (err error) { +func (dao *AdminRoleMenuDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) { return dao.Ctx(ctx).Transaction(ctx, f) } diff --git a/server/internal/dao/internal/demo.go b/server/internal/dao/internal/demo.go new file mode 100644 index 0000000..be30d05 --- /dev/null +++ b/server/internal/dao/internal/demo.go @@ -0,0 +1,143 @@ +// ========================================================================== +// Code generated by GoFrame CLI tool. DO NOT EDIT. +// ========================================================================== + +package internal + +import ( + "context" + + "github.com/gogf/gf/v2/database/gdb" + "github.com/gogf/gf/v2/frame/g" +) + +// DemoDao is the data access object for table hg_demo. +type DemoDao struct { + table string // table is the underlying table name of the DAO. + group string // group is the database configuration group name of current DAO. + columns DemoColumns // columns contains all the column names of Table for convenient usage. +} + +// DemoColumns defines and stores column names for table hg_demo. +type DemoColumns struct { + Id string // ID + CategoryId string // 分类ID + Flag string // 标签 + Title string // 标题 + Description string // 描述 + Content string // 内容 + Image string // 单图 + Images string // 多图 + Attachfile string // 附件 + Attachfiles string // 多附件 + Map string // 动态键值对 + Star string // 推荐星 + Price string // 价格 + Views string // 浏览次数 + ActivityAt string // 活动时间 + StartAt string // 开启时间 + EndAt string // 结束时间 + Switch string // 开关 + Sort string // 排序 + Avatar string // 头像 + Sex string // 性别 + Qq string // qq + Email string // 邮箱 + Mobile string // 手机号码 + Hobby string // 爱好 + Channel string // 渠道 + Pid string // 上级ID + Level string // 树等级 + Tree string // 关系树 + Remark string // 备注 + Status string // 状态 + CreatedBy string // 创建者 + UpdatedBy string // 更新者 + CreatedAt string // 创建时间 + UpdatedAt string // 修改时间 + DeletedAt string // 删除时间 +} + +// demoColumns holds the columns for table hg_demo. +var demoColumns = DemoColumns{ + Id: "id", + CategoryId: "category_id", + Flag: "flag", + Title: "title", + Description: "description", + Content: "content", + Image: "image", + Images: "images", + Attachfile: "attachfile", + Attachfiles: "attachfiles", + Map: "map", + Star: "star", + Price: "price", + Views: "views", + ActivityAt: "activity_at", + StartAt: "start_at", + EndAt: "end_at", + Switch: "switch", + Sort: "sort", + Avatar: "avatar", + Sex: "sex", + Qq: "qq", + Email: "email", + Mobile: "mobile", + Hobby: "hobby", + Channel: "channel", + Pid: "pid", + Level: "level", + Tree: "tree", + Remark: "remark", + Status: "status", + CreatedBy: "created_by", + UpdatedBy: "updated_by", + CreatedAt: "created_at", + UpdatedAt: "updated_at", + DeletedAt: "deleted_at", +} + +// NewDemoDao creates and returns a new DAO object for table data access. +func NewDemoDao() *DemoDao { + return &DemoDao{ + group: "default", + table: "hg_demo", + columns: demoColumns, + } +} + +// DB retrieves and returns the underlying raw database management object of current DAO. +func (dao *DemoDao) DB() gdb.DB { + return g.DB(dao.group) +} + +// Table returns the table name of current dao. +func (dao *DemoDao) Table() string { + return dao.table +} + +// Columns returns all column names of current dao. +func (dao *DemoDao) Columns() DemoColumns { + return dao.columns +} + +// Group returns the configuration group name of database of current dao. +func (dao *DemoDao) Group() string { + return dao.group +} + +// Ctx creates and returns the Model for current DAO, It automatically sets the context for current operation. +func (dao *DemoDao) Ctx(ctx context.Context) *gdb.Model { + return dao.DB().Model(dao.table).Safe().Ctx(ctx) +} + +// Transaction wraps the transaction logic using function f. +// It rollbacks the transaction and returns the error from function f if it returns non-nil error. +// It commits the transaction and returns nil if function f returns nil. +// +// Note that, you should not Commit or Rollback the transaction in function f +// as it is automatically handled by this function. +func (dao *DemoDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) { + return dao.Ctx(ctx).Transaction(ctx, f) +} diff --git a/server/internal/dao/internal/sys_attachment.go b/server/internal/dao/internal/sys_attachment.go index 52cb33f..c8e4435 100644 --- a/server/internal/dao/internal/sys_attachment.go +++ b/server/internal/dao/internal/sys_attachment.go @@ -20,18 +20,18 @@ type SysAttachmentDao struct { // SysAttachmentColumns defines and stores column names for table hg_sys_attachment. type SysAttachmentColumns struct { - Id string // + Id string // 文件ID AppId string // 应用ID - MemberId string // 用户 - CateId string // 分类 - Drive string // 驱动 + MemberId string // 管理员ID + CateId string // 上传分类 + Drive string // 上传驱动 Name string // 文件原始名 Kind string // 上传类型 - MetaType string // 类别 + MetaType string // 文件类型 NaiveType string // NaiveUI类型 Path string // 本地路径 FileUrl string // url - Size string // 长度 + Size string // 文件大小 Ext string // 扩展名 Md5 string // md5校验码 Status string // 状态 @@ -39,7 +39,7 @@ type SysAttachmentColumns struct { UpdatedAt string // 修改时间 } -// sysAttachmentColumns holds the columns for table hg_sys_attachment. +// sysAttachmentColumns holds the columns for table hg_sys_attachment. var sysAttachmentColumns = SysAttachmentColumns{ Id: "id", AppId: "app_id", @@ -100,6 +100,6 @@ func (dao *SysAttachmentDao) Ctx(ctx context.Context) *gdb.Model { // // Note that, you should not Commit or Rollback the transaction in function f // as it is automatically handled by this function. -func (dao *SysAttachmentDao) Transaction(ctx context.Context, f func(ctx context.Context, tx *gdb.TX) error) (err error) { +func (dao *SysAttachmentDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) { return dao.Ctx(ctx).Transaction(ctx, f) } diff --git a/server/internal/dao/internal/sys_blacklist.go b/server/internal/dao/internal/sys_blacklist.go index 1b84db1..49bac2a 100644 --- a/server/internal/dao/internal/sys_blacklist.go +++ b/server/internal/dao/internal/sys_blacklist.go @@ -20,15 +20,15 @@ type SysBlacklistDao struct { // SysBlacklistColumns defines and stores column names for table hg_sys_blacklist. type SysBlacklistColumns struct { - Id string // 主键 - Ip string // ip地址 + Id string // 黑名单ID + Ip string // IP地址 Remark string // 备注 Status string // 状态 CreatedAt string // 创建时间 UpdatedAt string // 更新时间 } -// sysBlacklistColumns holds the columns for table hg_sys_blacklist. +// sysBlacklistColumns holds the columns for table hg_sys_blacklist. var sysBlacklistColumns = SysBlacklistColumns{ Id: "id", Ip: "ip", @@ -78,6 +78,6 @@ func (dao *SysBlacklistDao) Ctx(ctx context.Context) *gdb.Model { // // Note that, you should not Commit or Rollback the transaction in function f // as it is automatically handled by this function. -func (dao *SysBlacklistDao) Transaction(ctx context.Context, f func(ctx context.Context, tx *gdb.TX) error) (err error) { +func (dao *SysBlacklistDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) { return dao.Ctx(ctx).Transaction(ctx, f) } diff --git a/server/internal/dao/internal/sys_config.go b/server/internal/dao/internal/sys_config.go index 7f89a21..669d15f 100644 --- a/server/internal/dao/internal/sys_config.go +++ b/server/internal/dao/internal/sys_config.go @@ -21,21 +21,21 @@ type SysConfigDao struct { // SysConfigColumns defines and stores column names for table hg_sys_config. type SysConfigColumns struct { Id string // 配置ID - Group string // 分组 + Group string // 配置分组 Name string // 参数名称 - Type string // 类型:string,text,int,bool,array,datetime,date,file + Type string // 键值类型:string,int,uint,bool,datetime,date Key string // 参数键名 Value string // 参数键值 DefaultValue string // 默认值 Sort string // 排序 Tip string // 变量描述 - IsDefault string // 是否默认 + IsDefault string // 是否为系统默认 Status string // 状态 CreatedAt string // 创建时间 UpdatedAt string // 更新时间 } -// sysConfigColumns holds the columns for table hg_sys_config. +// sysConfigColumns holds the columns for table hg_sys_config. var sysConfigColumns = SysConfigColumns{ Id: "id", Group: "group", @@ -92,6 +92,6 @@ func (dao *SysConfigDao) Ctx(ctx context.Context) *gdb.Model { // // Note that, you should not Commit or Rollback the transaction in function f // as it is automatically handled by this function. -func (dao *SysConfigDao) Transaction(ctx context.Context, f func(ctx context.Context, tx *gdb.TX) error) (err error) { +func (dao *SysConfigDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) { return dao.Ctx(ctx).Transaction(ctx, f) } diff --git a/server/internal/dao/internal/sys_cron.go b/server/internal/dao/internal/sys_cron.go index 8e83880..42cfb0b 100644 --- a/server/internal/dao/internal/sys_cron.go +++ b/server/internal/dao/internal/sys_cron.go @@ -20,7 +20,7 @@ type SysCronDao struct { // SysCronColumns defines and stores column names for table hg_sys_cron. type SysCronColumns struct { - Id string // 主键 + Id string // 任务ID GroupId string // 分组ID Name string // 任务名称 Params string // 函数参数 @@ -29,12 +29,12 @@ type SysCronColumns struct { Count string // 执行次数 Sort string // 排序 Remark string // 备注 - Status string // 状态 + Status string // 任务状态 CreatedAt string // 创建时间 UpdatedAt string // 更新时间 } -// sysCronColumns holds the columns for table hg_sys_cron. +// sysCronColumns holds the columns for table hg_sys_cron. var sysCronColumns = SysCronColumns{ Id: "id", GroupId: "group_id", @@ -90,6 +90,6 @@ func (dao *SysCronDao) Ctx(ctx context.Context) *gdb.Model { // // Note that, you should not Commit or Rollback the transaction in function f // as it is automatically handled by this function. -func (dao *SysCronDao) Transaction(ctx context.Context, f func(ctx context.Context, tx *gdb.TX) error) (err error) { +func (dao *SysCronDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) { return dao.Ctx(ctx).Transaction(ctx, f) } diff --git a/server/internal/dao/internal/sys_cron_group.go b/server/internal/dao/internal/sys_cron_group.go index 6e2fa28..34b4955 100644 --- a/server/internal/dao/internal/sys_cron_group.go +++ b/server/internal/dao/internal/sys_cron_group.go @@ -20,18 +20,18 @@ type SysCronGroupDao struct { // SysCronGroupColumns defines and stores column names for table hg_sys_cron_group. type SysCronGroupColumns struct { - Id string // 主键 - Pid string // 父类ID + Id string // 任务分组ID + Pid string // 父类任务分组ID Name string // 分组名称 IsDefault string // 是否默认 Sort string // 排序 Remark string // 备注 - Status string // 状态 + Status string // 分组状态 CreatedAt string // 创建时间 UpdatedAt string // 更新时间 } -// sysCronGroupColumns holds the columns for table hg_sys_cron_group. +// sysCronGroupColumns holds the columns for table hg_sys_cron_group. var sysCronGroupColumns = SysCronGroupColumns{ Id: "id", Pid: "pid", @@ -84,6 +84,6 @@ func (dao *SysCronGroupDao) Ctx(ctx context.Context) *gdb.Model { // // Note that, you should not Commit or Rollback the transaction in function f // as it is automatically handled by this function. -func (dao *SysCronGroupDao) Transaction(ctx context.Context, f func(ctx context.Context, tx *gdb.TX) error) (err error) { +func (dao *SysCronGroupDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) { return dao.Ctx(ctx).Transaction(ctx, f) } diff --git a/server/internal/dao/internal/sys_dict_data.go b/server/internal/dao/internal/sys_dict_data.go index b2aa613..ce2e3b4 100644 --- a/server/internal/dao/internal/sys_dict_data.go +++ b/server/internal/dao/internal/sys_dict_data.go @@ -20,12 +20,13 @@ type SysDictDataDao struct { // SysDictDataColumns defines and stores column names for table hg_sys_dict_data. type SysDictDataColumns struct { - Id string // 字典编码 + Id string // 字典数据ID Label string // 字典标签 Value string // 字典键值 + ValueType string // 键值数据类型:string,int,uint,bool,datetime,date Type string // 字典类型 ListClass string // 表格回显样式 - IsDefault string // 是否默认 + IsDefault string // 是否为系统默认 Sort string // 字典排序 Remark string // 备注 Status string // 状态 @@ -33,11 +34,12 @@ type SysDictDataColumns struct { UpdatedAt string // 更新时间 } -// sysDictDataColumns holds the columns for table hg_sys_dict_data. +// sysDictDataColumns holds the columns for table hg_sys_dict_data. var sysDictDataColumns = SysDictDataColumns{ Id: "id", Label: "label", Value: "value", + ValueType: "value_type", Type: "type", ListClass: "list_class", IsDefault: "is_default", @@ -88,6 +90,6 @@ func (dao *SysDictDataDao) Ctx(ctx context.Context) *gdb.Model { // // Note that, you should not Commit or Rollback the transaction in function f // as it is automatically handled by this function. -func (dao *SysDictDataDao) Transaction(ctx context.Context, f func(ctx context.Context, tx *gdb.TX) error) (err error) { +func (dao *SysDictDataDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) { return dao.Ctx(ctx).Transaction(ctx, f) } diff --git a/server/internal/dao/internal/sys_dict_type.go b/server/internal/dao/internal/sys_dict_type.go index 3eca0c7..ca076ee 100644 --- a/server/internal/dao/internal/sys_dict_type.go +++ b/server/internal/dao/internal/sys_dict_type.go @@ -20,18 +20,18 @@ type SysDictTypeDao struct { // SysDictTypeColumns defines and stores column names for table hg_sys_dict_type. type SysDictTypeColumns struct { - Id string // 字典主键 - Pid string // 父类ID - Name string // 字典名称 + Id string // 字典类型ID + Pid string // 父类字典类型ID + Name string // 字典类型名称 Type string // 字典类型 Sort string // 排序 Remark string // 备注 - Status string // 状态 + Status string // 字典类型状态 CreatedAt string // 创建时间 UpdatedAt string // 更新时间 } -// sysDictTypeColumns holds the columns for table hg_sys_dict_type. +// sysDictTypeColumns holds the columns for table hg_sys_dict_type. var sysDictTypeColumns = SysDictTypeColumns{ Id: "id", Pid: "pid", @@ -84,6 +84,6 @@ func (dao *SysDictTypeDao) Ctx(ctx context.Context) *gdb.Model { // // Note that, you should not Commit or Rollback the transaction in function f // as it is automatically handled by this function. -func (dao *SysDictTypeDao) Transaction(ctx context.Context, f func(ctx context.Context, tx *gdb.TX) error) (err error) { +func (dao *SysDictTypeDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) { return dao.Ctx(ctx).Transaction(ctx, f) } diff --git a/server/internal/dao/internal/sys_gen_codes.go b/server/internal/dao/internal/sys_gen_codes.go new file mode 100644 index 0000000..22f5e5c --- /dev/null +++ b/server/internal/dao/internal/sys_gen_codes.go @@ -0,0 +1,95 @@ +// ========================================================================== +// Code generated by GoFrame CLI tool. DO NOT EDIT. +// ========================================================================== + +package internal + +import ( + "context" + + "github.com/gogf/gf/v2/database/gdb" + "github.com/gogf/gf/v2/frame/g" +) + +// SysGenCodesDao is the data access object for table hg_sys_gen_codes. +type SysGenCodesDao struct { + table string // table is the underlying table name of the DAO. + group string // group is the database configuration group name of current DAO. + columns SysGenCodesColumns // columns contains all the column names of Table for convenient usage. +} + +// SysGenCodesColumns defines and stores column names for table hg_sys_gen_codes. +type SysGenCodesColumns struct { + Id string // 生成ID + GenType string // 生成类型 + VarName string // 实体命名 + Options string // 配置选项 + DbName string // 数据库名称 + TableName string // 主表名称 + TableComment string // 主表注释 + DaoName string // 主表dao模型 + MasterColumns string // 主表字段 + Status string // 生成状态 + CreatedAt string // 创建时间 + UpdatedAt string // 更新时间 +} + +// sysGenCodesColumns holds the columns for table hg_sys_gen_codes. +var sysGenCodesColumns = SysGenCodesColumns{ + Id: "id", + GenType: "gen_type", + VarName: "var_name", + Options: "options", + DbName: "db_name", + TableName: "table_name", + TableComment: "table_comment", + DaoName: "dao_name", + MasterColumns: "master_columns", + Status: "status", + CreatedAt: "created_at", + UpdatedAt: "updated_at", +} + +// NewSysGenCodesDao creates and returns a new DAO object for table data access. +func NewSysGenCodesDao() *SysGenCodesDao { + return &SysGenCodesDao{ + group: "default", + table: "hg_sys_gen_codes", + columns: sysGenCodesColumns, + } +} + +// DB retrieves and returns the underlying raw database management object of current DAO. +func (dao *SysGenCodesDao) DB() gdb.DB { + return g.DB(dao.group) +} + +// Table returns the table name of current dao. +func (dao *SysGenCodesDao) Table() string { + return dao.table +} + +// Columns returns all column names of current dao. +func (dao *SysGenCodesDao) Columns() SysGenCodesColumns { + return dao.columns +} + +// Group returns the configuration group name of database of current dao. +func (dao *SysGenCodesDao) Group() string { + return dao.group +} + +// Ctx creates and returns the Model for current DAO, It automatically sets the context for current operation. +func (dao *SysGenCodesDao) Ctx(ctx context.Context) *gdb.Model { + return dao.DB().Model(dao.table).Safe().Ctx(ctx) +} + +// Transaction wraps the transaction logic using function f. +// It rollbacks the transaction and returns the error from function f if it returns non-nil error. +// It commits the transaction and returns nil if function f returns nil. +// +// Note that, you should not Commit or Rollback the transaction in function f +// as it is automatically handled by this function. +func (dao *SysGenCodesDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) { + return dao.Ctx(ctx).Transaction(ctx, f) +} diff --git a/server/internal/dao/internal/sys_gen_curd_demo.go b/server/internal/dao/internal/sys_gen_curd_demo.go new file mode 100644 index 0000000..71fc5dc --- /dev/null +++ b/server/internal/dao/internal/sys_gen_curd_demo.go @@ -0,0 +1,101 @@ +// ========================================================================== +// Code generated by GoFrame CLI tool. DO NOT EDIT. +// ========================================================================== + +package internal + +import ( + "context" + + "github.com/gogf/gf/v2/database/gdb" + "github.com/gogf/gf/v2/frame/g" +) + +// SysGenCurdDemoDao is the data access object for table hg_sys_gen_curd_demo. +type SysGenCurdDemoDao struct { + table string // table is the underlying table name of the DAO. + group string // group is the database configuration group name of current DAO. + columns SysGenCurdDemoColumns // columns contains all the column names of Table for convenient usage. +} + +// SysGenCurdDemoColumns defines and stores column names for table hg_sys_gen_curd_demo. +type SysGenCurdDemoColumns struct { + Id string // ID + CategoryId string // 分类ID + Title string // 标题 + Description string // 描述 + Content string // 内容 + Image string // 单图 + Attachfile string // 附件 + Switch string // 显示开关 + Sort string // 排序 + Status string // 状态 + CreatedBy string // 创建者 + UpdatedBy string // 更新者 + CreatedAt string // 创建时间 + UpdatedAt string // 修改时间 + DeletedAt string // 删除时间 +} + +// sysGenCurdDemoColumns holds the columns for table hg_sys_gen_curd_demo. +var sysGenCurdDemoColumns = SysGenCurdDemoColumns{ + Id: "id", + CategoryId: "category_id", + Title: "title", + Description: "description", + Content: "content", + Image: "image", + Attachfile: "attachfile", + Switch: "switch", + Sort: "sort", + Status: "status", + CreatedBy: "created_by", + UpdatedBy: "updated_by", + CreatedAt: "created_at", + UpdatedAt: "updated_at", + DeletedAt: "deleted_at", +} + +// NewSysGenCurdDemoDao creates and returns a new DAO object for table data access. +func NewSysGenCurdDemoDao() *SysGenCurdDemoDao { + return &SysGenCurdDemoDao{ + group: "default", + table: "hg_sys_gen_curd_demo", + columns: sysGenCurdDemoColumns, + } +} + +// DB retrieves and returns the underlying raw database management object of current DAO. +func (dao *SysGenCurdDemoDao) DB() gdb.DB { + return g.DB(dao.group) +} + +// Table returns the table name of current dao. +func (dao *SysGenCurdDemoDao) Table() string { + return dao.table +} + +// Columns returns all column names of current dao. +func (dao *SysGenCurdDemoDao) Columns() SysGenCurdDemoColumns { + return dao.columns +} + +// Group returns the configuration group name of database of current dao. +func (dao *SysGenCurdDemoDao) Group() string { + return dao.group +} + +// Ctx creates and returns the Model for current DAO, It automatically sets the context for current operation. +func (dao *SysGenCurdDemoDao) Ctx(ctx context.Context) *gdb.Model { + return dao.DB().Model(dao.table).Safe().Ctx(ctx) +} + +// Transaction wraps the transaction logic using function f. +// It rollbacks the transaction and returns the error from function f if it returns non-nil error. +// It commits the transaction and returns nil if function f returns nil. +// +// Note that, you should not Commit or Rollback the transaction in function f +// as it is automatically handled by this function. +func (dao *SysGenCurdDemoDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) { + return dao.Ctx(ctx).Transaction(ctx, f) +} diff --git a/server/internal/dao/internal/sys_log.go b/server/internal/dao/internal/sys_log.go index 8f33a61..39fa451 100644 --- a/server/internal/dao/internal/sys_log.go +++ b/server/internal/dao/internal/sys_log.go @@ -20,23 +20,23 @@ type SysLogDao struct { // SysLogColumns defines and stores column names for table hg_sys_log. type SysLogColumns struct { - Id string // - AppId string // 应用id - MerchantId string // 商户id - MemberId string // 用户id + Id string // 日志ID + AppId string // 应用ID + MerchantId string // 商户ID + MemberId string // 用户ID Method string // 提交类型 - Module string // 模块 + Module string // 访问模块 Url string // 提交url GetData string // get数据 PostData string // post数据 HeaderData string // header数据 - Ip string // ip地址 + Ip string // IP地址 ProvinceId string // 省编码 CityId string // 市编码 ErrorCode string // 报错code ErrorMsg string // 报错信息 ErrorData string // 报错日志 - ReqId string // 对外id + ReqId string // 对外ID Timestamp string // 响应时间 UserAgent string // UA信息 TakeUpTime string // 请求耗时 @@ -45,7 +45,7 @@ type SysLogColumns struct { UpdatedAt string // 修改时间 } -// sysLogColumns holds the columns for table hg_sys_log. +// sysLogColumns holds the columns for table hg_sys_log. var sysLogColumns = SysLogColumns{ Id: "id", AppId: "app_id", @@ -112,6 +112,6 @@ func (dao *SysLogDao) Ctx(ctx context.Context) *gdb.Model { // // Note that, you should not Commit or Rollback the transaction in function f // as it is automatically handled by this function. -func (dao *SysLogDao) Transaction(ctx context.Context, f func(ctx context.Context, tx *gdb.TX) error) (err error) { +func (dao *SysLogDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) { return dao.Ctx(ctx).Transaction(ctx, f) } diff --git a/server/internal/dao/internal/sys_provinces.go b/server/internal/dao/internal/sys_provinces.go index a862e11..b246f74 100644 --- a/server/internal/dao/internal/sys_provinces.go +++ b/server/internal/dao/internal/sys_provinces.go @@ -20,34 +20,34 @@ type SysProvincesDao struct { // SysProvincesColumns defines and stores column names for table hg_sys_provinces. type SysProvincesColumns struct { - Id string // ID - Title string // 栏目名 - Pid string // 父栏目 + Id string // 省市区ID + Title string // 栏目名称 ShortTitle string // 缩写 Areacode string // 区域编码 Zipcode string // 邮政编码 Pinyin string // 拼音 Lng string // 经度 Lat string // 纬度 - Level string // 级别 - Tree string // + Pid string // 父栏目 + Level string // 关系树等级 + Tree string // 关系 Sort string // 排序 Status string // 状态 CreatedAt string // 创建时间 UpdatedAt string // 更新时间 } -// sysProvincesColumns holds the columns for table hg_sys_provinces. +// sysProvincesColumns holds the columns for table hg_sys_provinces. var sysProvincesColumns = SysProvincesColumns{ Id: "id", Title: "title", - Pid: "pid", ShortTitle: "short_title", Areacode: "areacode", Zipcode: "zipcode", Pinyin: "pinyin", Lng: "lng", Lat: "lat", + Pid: "pid", Level: "level", Tree: "tree", Sort: "sort", @@ -96,6 +96,6 @@ func (dao *SysProvincesDao) Ctx(ctx context.Context) *gdb.Model { // // Note that, you should not Commit or Rollback the transaction in function f // as it is automatically handled by this function. -func (dao *SysProvincesDao) Transaction(ctx context.Context, f func(ctx context.Context, tx *gdb.TX) error) (err error) { +func (dao *SysProvincesDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) { return dao.Ctx(ctx).Transaction(ctx, f) } diff --git a/server/internal/dao/internal/test.go b/server/internal/dao/internal/test.go new file mode 100644 index 0000000..91dc642 --- /dev/null +++ b/server/internal/dao/internal/test.go @@ -0,0 +1,143 @@ +// ========================================================================== +// Code generated by GoFrame CLI tool. DO NOT EDIT. +// ========================================================================== + +package internal + +import ( + "context" + + "github.com/gogf/gf/v2/database/gdb" + "github.com/gogf/gf/v2/frame/g" +) + +// TestDao is the data access object for table hg_test. +type TestDao struct { + table string // table is the underlying table name of the DAO. + group string // group is the database configuration group name of current DAO. + columns TestColumns // columns contains all the column names of Table for convenient usage. +} + +// TestColumns defines and stores column names for table hg_test. +type TestColumns struct { + Id string // ID + CategoryId string // 分类ID + Flag string // 标签 + Title string // 标题 + Description string // 描述 + Content string // 内容 + Image string // 单图 + Images string // 多图 + Attachfile string // 附件 + Attachfiles string // 多附件 + Map string // 动态键值对 + Star string // 推荐星 + Price string // 价格 + Views string // 浏览次数 + ActivityAt string // 活动时间 + StartAt string // 开启时间 + EndAt string // 结束时间 + Switch string // 开关 + Sort string // 排序 + Avatar string // 头像 + Sex string // 性别 + Qq string // qq + Email string // 邮箱 + Mobile string // 手机号码 + Hobby string // 爱好 + Channel string // 渠道 + Pid string // 上级ID + Level string // 树等级 + Tree string // 关系树 + Remark string // 备注 + Status string // 状态 + CreatedBy string // 创建者 + UpdatedBy string // 更新者 + CreatedAt string // 创建时间 + UpdatedAt string // 修改时间 + DeletedAt string // 删除时间 +} + +// testColumns holds the columns for table hg_test. +var testColumns = TestColumns{ + Id: "id", + CategoryId: "category_id", + Flag: "flag", + Title: "title", + Description: "description", + Content: "content", + Image: "image", + Images: "images", + Attachfile: "attachfile", + Attachfiles: "attachfiles", + Map: "map", + Star: "star", + Price: "price", + Views: "views", + ActivityAt: "activity_at", + StartAt: "start_at", + EndAt: "end_at", + Switch: "switch", + Sort: "sort", + Avatar: "avatar", + Sex: "sex", + Qq: "qq", + Email: "email", + Mobile: "mobile", + Hobby: "hobby", + Channel: "channel", + Pid: "pid", + Level: "level", + Tree: "tree", + Remark: "remark", + Status: "status", + CreatedBy: "created_by", + UpdatedBy: "updated_by", + CreatedAt: "created_at", + UpdatedAt: "updated_at", + DeletedAt: "deleted_at", +} + +// NewTestDao creates and returns a new DAO object for table data access. +func NewTestDao() *TestDao { + return &TestDao{ + group: "default", + table: "hg_test", + columns: testColumns, + } +} + +// DB retrieves and returns the underlying raw database management object of current DAO. +func (dao *TestDao) DB() gdb.DB { + return g.DB(dao.group) +} + +// Table returns the table name of current dao. +func (dao *TestDao) Table() string { + return dao.table +} + +// Columns returns all column names of current dao. +func (dao *TestDao) Columns() TestColumns { + return dao.columns +} + +// Group returns the configuration group name of database of current dao. +func (dao *TestDao) Group() string { + return dao.group +} + +// Ctx creates and returns the Model for current DAO, It automatically sets the context for current operation. +func (dao *TestDao) Ctx(ctx context.Context) *gdb.Model { + return dao.DB().Model(dao.table).Safe().Ctx(ctx) +} + +// Transaction wraps the transaction logic using function f. +// It rollbacks the transaction and returns the error from function f if it returns non-nil error. +// It commits the transaction and returns nil if function f returns nil. +// +// Note that, you should not Commit or Rollback the transaction in function f +// as it is automatically handled by this function. +func (dao *TestDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) { + return dao.Ctx(ctx).Transaction(ctx, f) +} diff --git a/server/internal/dao/internal/test_category.go b/server/internal/dao/internal/test_category.go new file mode 100644 index 0000000..e779599 --- /dev/null +++ b/server/internal/dao/internal/test_category.go @@ -0,0 +1,89 @@ +// ========================================================================== +// Code generated by GoFrame CLI tool. DO NOT EDIT. +// ========================================================================== + +package internal + +import ( + "context" + + "github.com/gogf/gf/v2/database/gdb" + "github.com/gogf/gf/v2/frame/g" +) + +// TestCategoryDao is the data access object for table hg_test_category. +type TestCategoryDao struct { + table string // table is the underlying table name of the DAO. + group string // group is the database configuration group name of current DAO. + columns TestCategoryColumns // columns contains all the column names of Table for convenient usage. +} + +// TestCategoryColumns defines and stores column names for table hg_test_category. +type TestCategoryColumns struct { + Id string // 分类ID + Name string // 分类名称 + Description string // 描述 + Sort string // 排序 + Remark string // 备注 + Status string // 状态 + CreatedAt string // 创建时间 + UpdatedAt string // 修改时间 + DeletedAt string // 删除时间 +} + +// testCategoryColumns holds the columns for table hg_test_category. +var testCategoryColumns = TestCategoryColumns{ + Id: "id", + Name: "name", + Description: "description", + Sort: "sort", + Remark: "remark", + Status: "status", + CreatedAt: "created_at", + UpdatedAt: "updated_at", + DeletedAt: "deleted_at", +} + +// NewTestCategoryDao creates and returns a new DAO object for table data access. +func NewTestCategoryDao() *TestCategoryDao { + return &TestCategoryDao{ + group: "default", + table: "hg_test_category", + columns: testCategoryColumns, + } +} + +// DB retrieves and returns the underlying raw database management object of current DAO. +func (dao *TestCategoryDao) DB() gdb.DB { + return g.DB(dao.group) +} + +// Table returns the table name of current dao. +func (dao *TestCategoryDao) Table() string { + return dao.table +} + +// Columns returns all column names of current dao. +func (dao *TestCategoryDao) Columns() TestCategoryColumns { + return dao.columns +} + +// Group returns the configuration group name of database of current dao. +func (dao *TestCategoryDao) Group() string { + return dao.group +} + +// Ctx creates and returns the Model for current DAO, It automatically sets the context for current operation. +func (dao *TestCategoryDao) Ctx(ctx context.Context) *gdb.Model { + return dao.DB().Model(dao.table).Safe().Ctx(ctx) +} + +// Transaction wraps the transaction logic using function f. +// It rollbacks the transaction and returns the error from function f if it returns non-nil error. +// It commits the transaction and returns nil if function f returns nil. +// +// Note that, you should not Commit or Rollback the transaction in function f +// as it is automatically handled by this function. +func (dao *TestCategoryDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) { + return dao.Ctx(ctx).Transaction(ctx, f) +} diff --git a/server/internal/dao/sys_attachment.go b/server/internal/dao/sys_attachment.go index c40b010..9507083 100644 --- a/server/internal/dao/sys_attachment.go +++ b/server/internal/dao/sys_attachment.go @@ -7,6 +7,8 @@ package dao import ( "context" "github.com/gogf/gf/v2/errors/gerror" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gtime" "hotgo/internal/consts" "hotgo/internal/dao/internal" "hotgo/internal/model/input/sysin" @@ -31,10 +33,8 @@ var ( ) func (dao *sysAttachmentDao) GetMd5File(ctx context.Context, md5 string) (data *sysin.AttachmentListModel, err error) { - if err = dao.Ctx(ctx). Where("md5", md5). - Where("status", consts.StatusEnabled). Scan(&data); err != nil { err = gerror.Wrap(err, consts.ErrorORM) return nil, err @@ -44,8 +44,21 @@ func (dao *sysAttachmentDao) GetMd5File(ctx context.Context, md5 string) (data * return nil, nil } + conf, err := service.SysConfig().GetUpload(ctx) + if err != nil { + return nil, nil + } + data.SizeFormat = format.FileSize(data.Size) - data.FileUrl = service.CommonUpload().LastUrl(ctx, data.FileUrl, data.Drive) + data.FileUrl = service.CommonUpload().LastUrl(ctx, conf, data.FileUrl, data.Drive) + + // 只有在上传时才会检查md5值,如果文件存在则更新最后上传时间,保证上传列表更新显示在最前面 + if data.Id > 0 { + _, _ = dao.Ctx(ctx).Where("id", data.Id).Data(g.Map{ + "status": consts.StatusEnabled, + "updated_at": gtime.Now(), + }).Update() + } return data, nil } diff --git a/server/internal/dao/sys_gen_codes.go b/server/internal/dao/sys_gen_codes.go new file mode 100644 index 0000000..8c8d17a --- /dev/null +++ b/server/internal/dao/sys_gen_codes.go @@ -0,0 +1,27 @@ +// ================================================================================= +// This is auto-generated by GoFrame CLI tool only once. Fill this file as you wish. +// ================================================================================= + +package dao + +import ( + "hotgo/internal/dao/internal" +) + +// internalSysGenCodesDao is internal type for wrapping internal DAO implements. +type internalSysGenCodesDao = *internal.SysGenCodesDao + +// sysGenCodesDao is the data access object for table hg_sys_gen_codes. +// You can define custom methods on it to extend its functionality as you wish. +type sysGenCodesDao struct { + internalSysGenCodesDao +} + +var ( + // SysGenCodes is globally public accessible object for table hg_sys_gen_codes operations. + SysGenCodes = sysGenCodesDao{ + internal.NewSysGenCodesDao(), + } +) + +// Fill with you ideas below. diff --git a/server/internal/dao/sys_gen_curd_demo.go b/server/internal/dao/sys_gen_curd_demo.go new file mode 100644 index 0000000..061417e --- /dev/null +++ b/server/internal/dao/sys_gen_curd_demo.go @@ -0,0 +1,27 @@ +// ================================================================================= +// This is auto-generated by GoFrame CLI tool only once. Fill this file as you wish. +// ================================================================================= + +package dao + +import ( + "hotgo/internal/dao/internal" +) + +// internalSysGenCurdDemoDao is internal type for wrapping internal DAO implements. +type internalSysGenCurdDemoDao = *internal.SysGenCurdDemoDao + +// sysGenCurdDemoDao is the data access object for table hg_sys_gen_curd_demo. +// You can define custom methods on it to extend its functionality as you wish. +type sysGenCurdDemoDao struct { + internalSysGenCurdDemoDao +} + +var ( + // SysGenCurdDemo is globally public accessible object for table hg_sys_gen_curd_demo operations. + SysGenCurdDemo = sysGenCurdDemoDao{ + internal.NewSysGenCurdDemoDao(), + } +) + +// Fill with you ideas below. diff --git a/server/internal/dao/test.go b/server/internal/dao/test.go new file mode 100644 index 0000000..93f607f --- /dev/null +++ b/server/internal/dao/test.go @@ -0,0 +1,27 @@ +// ================================================================================= +// This is auto-generated by GoFrame CLI tool only once. Fill this file as you wish. +// ================================================================================= + +package dao + +import ( + "hotgo/internal/dao/internal" +) + +// internalTestDao is internal type for wrapping internal DAO implements. +type internalTestDao = *internal.TestDao + +// testDao is the data access object for table hg_test. +// You can define custom methods on it to extend its functionality as you wish. +type testDao struct { + internalTestDao +} + +var ( + // Test is globally public accessible object for table hg_test operations. + Test = testDao{ + internal.NewTestDao(), + } +) + +// Fill with you ideas below. diff --git a/server/internal/dao/test_category.go b/server/internal/dao/test_category.go new file mode 100644 index 0000000..ee1b90b --- /dev/null +++ b/server/internal/dao/test_category.go @@ -0,0 +1,27 @@ +// ================================================================================= +// This is auto-generated by GoFrame CLI tool only once. Fill this file as you wish. +// ================================================================================= + +package dao + +import ( + "hotgo/internal/dao/internal" +) + +// internalTestCategoryDao is internal type for wrapping internal DAO implements. +type internalTestCategoryDao = *internal.TestCategoryDao + +// testCategoryDao is the data access object for table hg_test_category. +// You can define custom methods on it to extend its functionality as you wish. +type testCategoryDao struct { + internalTestCategoryDao +} + +var ( + // TestCategory is globally public accessible object for table hg_test_category operations. + TestCategory = testCategoryDao{ + internal.NewTestCategoryDao(), + } +) + +// Fill with you ideas below. diff --git a/server/internal/global/init.go b/server/internal/global/init.go index bdc07e5..2cccf22 100644 --- a/server/internal/global/init.go +++ b/server/internal/global/init.go @@ -10,29 +10,55 @@ import ( "context" "fmt" "github.com/gogf/gf/v2" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gcache" "github.com/gogf/gf/v2/os/gtime" "hotgo/internal/consts" + "hotgo/internal/library/hggen" "hotgo/internal/library/location" "hotgo/utility/simple" "os" ) func Init(ctx context.Context) { + if _, err := g.Cfg().Get(ctx, "hotgo.debug"); err != nil { + g.Log().Fatal(ctx, "配置读取异常:", err, "\r\n你确定 config/config.yaml 文件存在且格式正确吗?\r\n") + } // 默认上海时区 if err := gtime.SetTimeZone("Asia/Shanghai"); err != nil { - fmt.Printf("时区设置异常err:%v \r\n", err) + g.Log().Fatalf(ctx, "时区设置异常err:%+v", err) return } RootPtah, _ = os.Getwd() fmt.Printf("欢迎使用HotGo!\r\n当前运行环境:%v, 运行根路径为:%v \r\nHotGo版本:v%v, gf版本:%v \n", SysType, RootPtah, consts.VersionApp, gf.VERSION) - loadMonitor(ctx) + + setOrmCacheAdapter() + + startMonitor(ctx) + + hggen.InIt(ctx) + } -func loadMonitor(ctx context.Context) { +func startMonitor(ctx context.Context) { simple.SafeGo(ctx, func(ctx context.Context) { MonitorData.STartTime = gtime.Now() - MonitorData.IntranetIP, _ = location.GetLocalIP() - MonitorData.PublicIP, _ = location.GetPublicIP() + intranetIP, err := location.GetLocalIP() + if err != nil { + g.Log().Warningf(ctx, "parse intranetIP err:%+v", err) + } + MonitorData.IntranetIP = intranetIP + + publicIP, err := location.GetPublicIP(ctx) + if err != nil { + g.Log().Warningf(ctx, "parse publicIP err:%+v", err) + } + MonitorData.PublicIP = publicIP }) } + +func setOrmCacheAdapter() { + redisCache := gcache.NewAdapterRedis(g.Redis()) + g.DB().GetCache().SetAdapter(redisCache) +} diff --git a/server/internal/library/casbin/adapter.go b/server/internal/library/casbin/adapter.go index 182a36d..ea46498 100644 --- a/server/internal/library/casbin/adapter.go +++ b/server/internal/library/casbin/adapter.go @@ -13,7 +13,6 @@ import ( "github.com/casbin/casbin/v2/model" "github.com/casbin/casbin/v2/persist" "github.com/gogf/gf/v2/database/gdb" - "log" "math" "strings" ) @@ -119,7 +118,6 @@ func (a *adapter) dropPolicyTable() (err error) { // LoadPolicy loads all policy rules from the storage. func (a *adapter) LoadPolicy(model model.Model) (err error) { - log.Println("LoadPolicy...") var rules []policyRule if err = a.model().Scan(&rules); err != nil { @@ -248,7 +246,7 @@ func (a *adapter) UpdatePolicies(sec string, ptype string, oldRules, newRules [] return } - err = a.db.Transaction(context.TODO(), func(ctx context.Context, tx *gdb.TX) error { + err = a.db.Transaction(context.TODO(), func(ctx context.Context, tx gdb.TX) error { for i := 0; i < int(math.Min(float64(len(oldRules)), float64(len(newRules)))); i++ { if _, err = tx.Model(a.table).Update(a.buildPolicyRule(ptype, newRules[i]), a.buildPolicyRule(ptype, oldRules[i])); err != nil { return err diff --git a/server/internal/library/casbin/enforcer.go b/server/internal/library/casbin/enforcer.go index 8dec04f..2213977 100644 --- a/server/internal/library/casbin/enforcer.go +++ b/server/internal/library/casbin/enforcer.go @@ -29,8 +29,8 @@ var Enforcer *casbin.Enforcer // InitEnforcer 初始化 func InitEnforcer(ctx context.Context) { var ( - link, _ = g.Cfg().Get(ctx, "database.default.link") - a, err = NewAdapter(link.String()) + link = g.Cfg().MustGet(ctx, "database.default.link") + a, err = NewAdapter(link.String()) ) if err != nil { @@ -53,10 +53,10 @@ func loadPermissions(ctx context.Context) { Permissions string `json:"permissions"` } var ( - rules [][]string - polices []*Policy - err error - superRoleKey, _ = g.Cfg().Get(ctx, "hotgo.admin.superRoleKey") + rules [][]string + polices []*Policy + err error + superRoleKey = g.Cfg().MustGet(ctx, "hotgo.admin.superRoleKey") ) err = g.Model("hg_admin_role r"). diff --git a/server/internal/library/contexts/context.go b/server/internal/library/contexts/context.go index df6cb30..3993db9 100644 --- a/server/internal/library/contexts/context.go +++ b/server/internal/library/contexts/context.go @@ -67,7 +67,7 @@ func GetRoleId(ctx context.Context) int64 { return 0 } - return user.Role + return user.RoleId } // GetRoleKey 获取用户角色唯一编码 diff --git a/server/internal/library/debris/debris.go b/server/internal/library/debris/debris.go new file mode 100644 index 0000000..3503885 --- /dev/null +++ b/server/internal/library/debris/debris.go @@ -0,0 +1,13 @@ +// Package debris +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2023 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package debris + +// 碎片 + +func Test() { + +} diff --git a/server/internal/library/hggen/hggen.go b/server/internal/library/hggen/hggen.go new file mode 100644 index 0000000..ae4f953 --- /dev/null +++ b/server/internal/library/hggen/hggen.go @@ -0,0 +1,192 @@ +// Package hggen +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2022 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package hggen + +import ( + "context" + "github.com/gogf/gf/v2/errors/gerror" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/util/gconv" + "hotgo/internal/consts" + "hotgo/internal/library/hggen/internal/cmd" + "hotgo/internal/library/hggen/internal/cmd/gendao" + "hotgo/internal/library/hggen/views" + "hotgo/internal/model/input/form" + "hotgo/internal/model/input/sysin" + "hotgo/internal/service" + "sort" +) + +// Dao 生成数据库实体 +func Dao(ctx context.Context) (err error) { + for _, v := range daoConfig { + inp := defaultGenDaoInput + err = gconv.Scan(v, &inp) + if err != nil { + return + } + gendao.DoGenDaoForArray(ctx, inp) + } + + return +} + +// Service 生成业务接口 +func Service(ctx context.Context) (err error) { + _, err = cmd.Gen.Service(ctx, GetServiceConfig()) + return +} + +// TableColumns 获取指定表生成字段列表 +func TableColumns(ctx context.Context, in sysin.GenCodesColumnListInp) (fields []*sysin.GenCodesColumnListModel, err error) { + return views.DoTableColumns(ctx, in, GetDaoConfig(in.Name)) +} + +func TableSelects(ctx context.Context, in sysin.GenCodesSelectsInp) (res *sysin.GenCodesSelectsModel, err error) { + res = new(sysin.GenCodesSelectsModel) + for k, v := range consts.GenCodesTypeNameMap { + res.GenType = append(res.GenType, &form.Select{ + Value: k, + Name: v, + Label: v, + }) + } + sort.Sort(res.GenType) + res.Db = DbSelect(ctx) + + for k, v := range consts.GenCodesStatusNameMap { + res.Status = append(res.Status, &form.Select{ + Value: k, + Name: v, + Label: v, + }) + } + sort.Sort(res.Status) + + for k, v := range consts.GenCodesJoinNameMap { + res.LinkMode = append(res.LinkMode, &form.Select{ + Value: k, + Name: v, + Label: v, + }) + } + sort.Sort(res.LinkMode) + + for k, v := range consts.GenCodesBuildMethNameMap { + res.BuildMeth = append(res.BuildMeth, &form.Select{ + Value: k, + Name: v, + Label: v, + }) + } + sort.Sort(res.BuildMeth) + + for _, v := range views.FormModes { + res.FormMode = append(res.FormMode, &form.Select{ + Value: v, + Name: views.FormModeMap[v], + Label: views.FormModeMap[v], + }) + } + sort.Sort(res.FormMode) + + for k, v := range views.FormRoleMap { + res.FormRole = append(res.FormRole, &form.Select{ + Value: k, + Name: v, + Label: v, + }) + } + sort.Sort(res.FormRole) + + dictMode, _ := service.SysDictType().TreeSelect(ctx, sysin.DictTreeSelectInp{}) + + res.DictMode = dictMode + for _, v := range views.WhereModes { + res.WhereMode = append(res.WhereMode, &form.Select{ + Value: v, + Name: v, + Label: v, + }) + } + + return +} + +// DbSelect db选项 +func DbSelect(ctx context.Context) (res form.Selects) { + dbs := g.Cfg().MustGet(ctx, "hggen.selectDbs") + if len(dbs.Strings()) == 0 { + res = make(form.Selects, 0) + return res + } + + for _, v := range dbs.Strings() { + res = append(res, &form.Select{ + Value: v, + Label: v, + Name: v, + }) + } + return res +} + +// Preview 生成预览 +func Preview(ctx context.Context, in sysin.GenCodesPreviewInp) (res *sysin.GenCodesPreviewModel, err error) { + genConfig, err := service.SysConfig().GetLoadGenerate(ctx) + if err != nil { + return nil, err + } + + switch in.GenType { + case consts.GenCodesTypeCurd: + return views.Curd.DoPreview(ctx, &views.CurdPreviewInput{ + In: in, + DaoConfig: GetDaoConfig(in.DbName), + Config: genConfig, + }) + case consts.GenCodesTypeTree: + err = gerror.Newf("生成类型开发中!") + return + case consts.GenCodesTypeQueue: + err = gerror.Newf("生成类型开发中!") + return + default: + err = gerror.Newf("生成类型暂不支持!") + return + } +} + +// Build 提交生成 +func Build(ctx context.Context, in sysin.GenCodesBuildInp) (err error) { + genConfig, err := service.SysConfig().GetLoadGenerate(ctx) + if err != nil { + return err + } + + switch in.GenType { + case consts.GenCodesTypeCurd: + return views.Curd.DoBuild(ctx, &views.CurdBuildInput{ + PreviewIn: &views.CurdPreviewInput{ + In: sysin.GenCodesPreviewInp(in), + DaoConfig: GetDaoConfig(in.DbName), + Config: genConfig, + }, + BeforeEvent: views.CurdBuildEvent{"runDao": Dao}, + AfterEvent: views.CurdBuildEvent{"runService": Service}, + }) + case consts.GenCodesTypeTree: + err = gerror.Newf("生成类型开发中!") + return + case consts.GenCodesTypeQueue: + err = gerror.Newf("生成类型开发中!") + return + default: + err = gerror.Newf("生成类型暂不支持!") + return + } +} diff --git a/server/internal/library/hggen/init.go b/server/internal/library/hggen/init.go new file mode 100644 index 0000000..8dd031a --- /dev/null +++ b/server/internal/library/hggen/init.go @@ -0,0 +1,133 @@ +// Package hggen +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2022 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package hggen + +import ( + "context" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gfile" + "github.com/gogf/gf/v2/util/gconv" + "gopkg.in/yaml.v3" + "hotgo/internal/library/hggen/internal/cmd/gendao" + "hotgo/internal/library/hggen/internal/cmd/genservice" +) + +const ( + cliFolderName = `hack/config.yaml` + RequiredErrorTag = `the cli configuration file must be configured %s` +) + +var ( + config g.Map + daoConfig []interface{} + serviceConfig g.Map + + // 生成service默认参数,请不要直接修改以下配置,如需调整请到/hack/config.yaml,可参考:https://goframe.org/pages/viewpage.action?pageId=49770772 + defaultGenServiceInput = genservice.CGenServiceInput{ + SrcFolder: "internal/logic", + DstFolder: "internal/service", + DstFileNameCase: "Snake", + StPattern: `s([A-Z]\w+)`, + Clear: false, + } + + // 生成dao默认参数,请不要直接修改以下配置,如需调整请到/hack/config.yaml,可参考:https://goframe.org/pages/viewpage.action?pageId=3673173 + defaultGenDaoInput = gendao.CGenDaoInput{ + Path: "internal", + Group: "default", + JsonCase: "CamelLower", + DaoPath: "dao", + DoPath: "model/do", + EntityPath: "model/entity", + StdTime: false, + WithTime: false, + GJsonSupport: false, + OverwriteDao: false, + DescriptionTag: true, + NoJsonTag: false, + NoModelComment: false, + Clear: false, + } +) + +func GetServiceConfig() genservice.CGenServiceInput { + inp := defaultGenServiceInput + _ = gconv.Scan(serviceConfig, &inp) + return inp +} + +func GetDaoConfig(group string) gendao.CGenDaoInput { + inp := defaultGenDaoInput + find := func(group string) g.Map { + for _, v := range daoConfig { + if v.(g.Map)["group"].(string) == group { + return v.(g.Map) + } + } + return nil + } + + v := find(group) + if v != nil { + err := gconv.Scan(v, &inp) + if err != nil { + panic(err) + } + } + + return inp +} + +func InIt(ctx context.Context) { + path, err := gfile.Search(cliFolderName) + if err != nil { + g.Log().Fatalf(ctx, "get cli configuration file:%v, err:%+v", cliFolderName, err) + } + if path == "" { + g.Log().Fatalf(ctx, "get cli configuration file:%v fail", cliFolderName) + } + if config == nil { + config = make(g.Map) + } + err = yaml.Unmarshal(gfile.GetBytes(path), &config) + if err != nil { + g.Log().Fatalf(ctx, "load cli configuration file:%v, yaml err:%+v", cliFolderName, err) + } + loadConfig(ctx) +} + +func loadConfig(ctx context.Context) { + if _, ok := config["gfcli"]; !ok { + g.Log().Fatalf(ctx, RequiredErrorTag, "gfcli") + } + + if _, ok := config["gfcli"].(g.Map)["gen"]; !ok { + g.Log().Fatalf(ctx, RequiredErrorTag, "gfcli.gen") + } + + dao, ok := config["gfcli"].(g.Map)["gen"].(map[string]interface{})["dao"] + if !ok { + g.Log().Fatalf(ctx, RequiredErrorTag, "gfcli.gen.dao") + } + daoConf, ok := dao.([]interface{}) + if !ok { + g.Log().Fatalf(ctx, RequiredErrorTag, "gfcli.gen.dao format error") + } + daoConfig = daoConf + for _, v := range daoConfig { + if _, ok := v.(g.Map)["group"].(string); !ok { + g.Log().Fatalf(ctx, "group must be configured in %s: `gfcli.gen.dao` and must be the same as the database group", cliFolderName) + } + } + + if serviceConf, ok := config["gfcli"].(g.Map)["gen"].(map[string]interface{})["service"]; ok { + if serviceConfig == nil { + serviceConfig = make(g.Map) + } + serviceConfig = serviceConf.(g.Map) + } +} diff --git a/server/internal/library/hggen/internal/cmd/cmd.go b/server/internal/library/hggen/internal/cmd/cmd.go new file mode 100644 index 0000000..3a7e9c9 --- /dev/null +++ b/server/internal/library/hggen/internal/cmd/cmd.go @@ -0,0 +1,66 @@ +package cmd + +import ( + "context" + "strings" + + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gcmd" + "github.com/gogf/gf/v2/util/gtag" + + "hotgo/internal/library/hggen/internal/service" + "hotgo/internal/library/hggen/internal/utility/mlog" +) + +var ( + GF = cGF{} +) + +type cGF struct { + g.Meta `name:"gf" ad:"{cGFAd}"` +} + +const ( + cGFAd = ` +ADDITIONAL + Use "gf COMMAND -h" for details about a command. +` +) + +func init() { + gtag.Sets(g.MapStrStr{ + `cGFAd`: cGFAd, + }) +} + +type cGFInput struct { + g.Meta `name:"gf"` + Yes bool `short:"y" name:"yes" brief:"all yes for all command without prompt ask" orphan:"true"` + Version bool `short:"v" name:"version" brief:"show version information of current binary" orphan:"true"` + Debug bool `short:"d" name:"debug" brief:"show internal detailed debugging information" orphan:"true"` +} + +type cGFOutput struct{} + +func (c cGF) Index(ctx context.Context, in cGFInput) (out *cGFOutput, err error) { + // Version. + if in.Version { + _, err = Version.Index(ctx, cVersionInput{}) + return + } + // No argument or option, do installation checks. + if !service.Install.IsInstalled() { + mlog.Print("hi, it seams it's the first time you installing gf cli.") + s := gcmd.Scanf("do you want to install gf binary to your system? [y/n]: ") + if strings.EqualFold(s, "y") { + if err = service.Install.Run(ctx); err != nil { + return + } + gcmd.Scan("press `Enter` to exit...") + return + } + } + // Print help content. + gcmd.CommandFromCtx(ctx).Print() + return +} diff --git a/server/internal/library/hggen/internal/cmd/cmd_build.go b/server/internal/library/hggen/internal/cmd/cmd_build.go new file mode 100644 index 0000000..a62b8fc --- /dev/null +++ b/server/internal/library/hggen/internal/cmd/cmd_build.go @@ -0,0 +1,327 @@ +package cmd + +import ( + "context" + "encoding/json" + "fmt" + "os" + "regexp" + "runtime" + "strings" + + "github.com/gogf/gf/v2/encoding/gbase64" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gcmd" + "github.com/gogf/gf/v2/os/genv" + "github.com/gogf/gf/v2/os/gfile" + "github.com/gogf/gf/v2/os/gproc" + "github.com/gogf/gf/v2/os/gtime" + "github.com/gogf/gf/v2/text/gregex" + "github.com/gogf/gf/v2/text/gstr" + "github.com/gogf/gf/v2/util/gtag" + + "hotgo/internal/library/hggen/internal/utility/mlog" +) + +var ( + Build = cBuild{ + nodeNameInConfigFile: "gfcli.build", + packedGoFileName: "internal/packed/build_pack_data.go", + } +) + +type cBuild struct { + g.Meta `name:"build" brief:"{cBuildBrief}" dc:"{cBuildDc}" eg:"{cBuildEg}" ad:"{cBuildAd}"` + nodeNameInConfigFile string // nodeNameInConfigFile is the node name for compiler configurations in configuration file. + packedGoFileName string // packedGoFileName specifies the file name for packing common folders into one single go file. +} + +const ( + cBuildBrief = `cross-building go project for lots of platforms` + cBuildEg = ` +gf build main.go +gf build main.go --pack public,template +gf build main.go --cgo +gf build main.go -m none +gf build main.go -n my-app -a all -s all +gf build main.go -n my-app -a amd64,386 -s linux -p . +gf build main.go -n my-app -v 1.0 -a amd64,386 -s linux,windows,darwin -p ./docker/bin +` + cBuildDc = ` +The "build" command is most commonly used command, which is designed as a powerful wrapper for +"go build" command for convenience cross-compiling usage. +It provides much more features for building binary: +1. Cross-Compiling for many platforms and architectures. +2. Configuration file support for compiling. +3. Build-In Variables. +` + cBuildAd = ` +PLATFORMS + darwin amd64,arm64 + freebsd 386,amd64,arm + linux 386,amd64,arm,arm64,ppc64,ppc64le,mips,mipsle,mips64,mips64le + netbsd 386,amd64,arm + openbsd 386,amd64,arm + windows 386,amd64 +` + // https://golang.google.cn/doc/install/source + cBuildPlatforms = ` +darwin amd64 +darwin arm64 +ios amd64 +ios arm64 +freebsd 386 +freebsd amd64 +freebsd arm +linux 386 +linux amd64 +linux arm +linux arm64 +linux ppc64 +linux ppc64le +linux mips +linux mipsle +linux mips64 +linux mips64le +netbsd 386 +netbsd amd64 +netbsd arm +openbsd 386 +openbsd amd64 +openbsd arm +windows 386 +windows amd64 +android arm +dragonfly amd64 +plan9 386 +plan9 amd64 +solaris amd64 +` +) + +func init() { + gtag.Sets(g.MapStrStr{ + `cBuildBrief`: cBuildBrief, + `cBuildDc`: cBuildDc, + `cBuildEg`: cBuildEg, + `cBuildAd`: cBuildAd, + }) +} + +type cBuildInput struct { + g.Meta `name:"build" config:"gfcli.build"` + File string `name:"FILE" arg:"true" brief:"building file path"` + Name string `short:"n" name:"name" brief:"output binary name"` + Version string `short:"v" name:"version" brief:"output binary version"` + Arch string `short:"a" name:"arch" brief:"output binary architecture, multiple arch separated with ','"` + System string `short:"s" name:"system" brief:"output binary system, multiple os separated with ','"` + Output string `short:"o" name:"output" brief:"output binary path, used when building single binary file"` + Path string `short:"p" name:"path" brief:"output binary directory path, default is './temp'" d:"./temp"` + Extra string `short:"e" name:"extra" brief:"extra custom \"go build\" options"` + Mod string `short:"m" name:"mod" brief:"like \"-mod\" option of \"go build\", use \"-m none\" to disable go module"` + Cgo bool `short:"c" name:"cgo" brief:"enable or disable cgo feature, it's disabled in default" orphan:"true"` + VarMap g.Map `short:"r" name:"varMap" brief:"custom built embedded variable into binary"` + PackSrc string `short:"ps" name:"packSrc" brief:"pack one or more folders into one go file before building"` + PackDst string `short:"pd" name:"packDst" brief:"temporary go file path for pack, this go file will be automatically removed after built" d:"internal/packed/build_pack_data.go"` + ExitWhenError bool `short:"ew" name:"exitWhenError" brief:"exit building when any error occurs, default is false" orphan:"true"` +} + +type cBuildOutput struct{} + +func (c cBuild) Index(ctx context.Context, in cBuildInput) (out *cBuildOutput, err error) { + mlog.SetHeaderPrint(true) + + mlog.Debugf(`build input: %+v`, in) + // Necessary check. + if gproc.SearchBinary("go") == "" { + mlog.Fatalf(`command "go" not found in your environment, please install golang first to proceed this command`) + } + + var ( + parser = gcmd.ParserFromCtx(ctx) + file = parser.GetArg(2).String() + ) + if len(file) < 1 { + // Check and use the main.go file. + if gfile.Exists("main.go") { + file = "main.go" + } else { + mlog.Fatal("build file path cannot be empty") + } + } + if in.Name == "" { + in.Name = gfile.Name(file) + } + if len(in.Name) < 1 || in.Name == "*" { + mlog.Fatal("name cannot be empty") + } + if in.Mod != "" && in.Mod != "none" { + mlog.Debugf(`mod is %s`, in.Mod) + if in.Extra == "" { + in.Extra = fmt.Sprintf(`-mod=%s`, in.Mod) + } else { + in.Extra = fmt.Sprintf(`-mod=%s %s`, in.Mod, in.Extra) + } + } + if in.Extra != "" { + in.Extra += " " + } + var ( + customSystems = gstr.SplitAndTrim(in.System, ",") + customArches = gstr.SplitAndTrim(in.Arch, ",") + ) + if len(in.Version) > 0 { + in.Path += "/" + in.Version + } + // System and arch checks. + var ( + spaceRegex = regexp.MustCompile(`\s+`) + platformMap = make(map[string]map[string]bool) + ) + for _, line := range strings.Split(strings.TrimSpace(cBuildPlatforms), "\n") { + line = gstr.Trim(line) + line = spaceRegex.ReplaceAllString(line, " ") + var ( + array = strings.Split(line, " ") + system = strings.TrimSpace(array[0]) + arch = strings.TrimSpace(array[1]) + ) + if platformMap[system] == nil { + platformMap[system] = make(map[string]bool) + } + platformMap[system][arch] = true + } + // Auto packing. + if in.PackSrc != "" { + if in.PackDst == "" { + mlog.Fatal(`parameter "packDst" should not be empty when "packSrc" is used`) + } + if gfile.Exists(in.PackDst) && !gfile.IsFile(in.PackDst) { + mlog.Fatalf(`parameter "packDst" path "%s" should be type of file not directory`, in.PackDst) + } + if !gfile.Exists(in.PackDst) { + // Remove the go file that is automatically packed resource. + defer func() { + _ = gfile.Remove(in.PackDst) + mlog.Printf(`remove the automatically generated resource go file: %s`, in.PackDst) + }() + } + // remove black space in separator. + in.PackSrc, _ = gregex.ReplaceString(`,\s+`, `,`, in.PackSrc) + packCmd := fmt.Sprintf(`gf pack %s %s --keepPath=true`, in.PackSrc, in.PackDst) + mlog.Print(packCmd) + gproc.MustShellRun(ctx, packCmd) + } + + // Injected information by building flags. + ldFlags := fmt.Sprintf( + `-X 'github.com/gogf/gf/v2/os/gbuild.builtInVarStr=%v'`, + c.getBuildInVarStr(ctx, in), + ) + + // start building + mlog.Print("start building...") + if in.Cgo { + genv.MustSet("CGO_ENABLED", "1") + } else { + genv.MustSet("CGO_ENABLED", "0") + } + var ( + cmd = "" + ext = "" + ) + for system, item := range platformMap { + cmd = "" + ext = "" + if len(customSystems) > 0 && customSystems[0] != "all" && !gstr.InArray(customSystems, system) { + continue + } + for arch, _ := range item { + if len(customArches) > 0 && customArches[0] != "all" && !gstr.InArray(customArches, arch) { + continue + } + if len(customSystems) == 0 && len(customArches) == 0 { + if runtime.GOOS == "windows" { + ext = ".exe" + } + // Single binary building, output the binary to current working folder. + output := "" + if len(in.Output) > 0 { + output = "-o " + in.Output + ext + } else { + output = "-o " + in.Name + ext + } + cmd = fmt.Sprintf(`go build %s -ldflags "%s" %s %s`, output, ldFlags, in.Extra, file) + } else { + // Cross-building, output the compiled binary to specified path. + if system == "windows" { + ext = ".exe" + } + genv.MustSet("GOOS", system) + genv.MustSet("GOARCH", arch) + cmd = fmt.Sprintf( + `go build -o %s/%s/%s%s -ldflags "%s" %s%s`, + in.Path, system+"_"+arch, in.Name, ext, ldFlags, in.Extra, file, + ) + } + mlog.Debug(cmd) + // It's not necessary printing the complete command string. + cmdShow, _ := gregex.ReplaceString(`\s+(-ldflags ".+?")\s+`, " ", cmd) + mlog.Print(cmdShow) + if result, err := gproc.ShellExec(ctx, cmd); err != nil { + mlog.Printf( + "failed to build, os:%s, arch:%s, error:\n%s\n\n%s\n", + system, arch, gstr.Trim(result), + `you may use command option "--debug" to enable debug info and check the details`, + ) + if in.ExitWhenError { + os.Exit(1) + } + } else { + mlog.Debug(gstr.Trim(result)) + } + // single binary building. + if len(customSystems) == 0 && len(customArches) == 0 { + goto buildDone + } + } + } + +buildDone: + mlog.Print("done!") + return +} + +// getBuildInVarMapJson retrieves and returns the custom build-in variables in configuration +// file as json. +func (c cBuild) getBuildInVarStr(ctx context.Context, in cBuildInput) string { + buildInVarMap := in.VarMap + if buildInVarMap == nil { + buildInVarMap = make(g.Map) + } + buildInVarMap["builtGit"] = c.getGitCommit(ctx) + buildInVarMap["builtTime"] = gtime.Now().String() + b, err := json.Marshal(buildInVarMap) + if err != nil { + mlog.Fatal(err) + } + return gbase64.EncodeToString(b) +} + +// getGitCommit retrieves and returns the latest git commit hash string if present. +func (c cBuild) getGitCommit(ctx context.Context) string { + if gproc.SearchBinary("git") == "" { + return "" + } + var ( + cmd = `git log -1 --format="%cd %H" --date=format:"%Y-%m-%d %H:%M:%S"` + s, _ = gproc.ShellExec(ctx, cmd) + ) + mlog.Debug(cmd) + if s != "" { + if !gstr.Contains(s, "fatal") { + return gstr.Trim(s) + } + } + return "" +} diff --git a/server/internal/library/hggen/internal/cmd/cmd_docker.go b/server/internal/library/hggen/internal/cmd/cmd_docker.go new file mode 100644 index 0000000..1160b63 --- /dev/null +++ b/server/internal/library/hggen/internal/cmd/cmd_docker.go @@ -0,0 +1,163 @@ +package cmd + +import ( + "context" + "fmt" + "runtime" + + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gfile" + "github.com/gogf/gf/v2/os/gproc" + "github.com/gogf/gf/v2/text/gstr" + "github.com/gogf/gf/v2/util/gtag" + + "hotgo/internal/library/hggen/internal/utility/mlog" +) + +var ( + Docker = cDocker{} +) + +type cDocker struct { + g.Meta `name:"docker" usage:"{cDockerUsage}" brief:"{cDockerBrief}" eg:"{cDockerEg}" dc:"{cDockerDc}"` +} + +const ( + cDockerUsage = `gf docker [MAIN] [OPTION]` + cDockerBrief = `build docker image for current GoFrame project` + cDockerEg = ` +gf docker +gf docker -t hub.docker.com/john/image:tag +gf docker -p -t hub.docker.com/john/image:tag +gf docker main.go +gf docker main.go -t hub.docker.com/john/image:tag +gf docker main.go -t hub.docker.com/john/image:tag +gf docker main.go -p -t hub.docker.com/john/image:tag +` + cDockerDc = ` +The "docker" command builds the GF project to a docker images. +It runs "gf build" firstly to compile the project to binary file. +It then runs "docker build" command automatically to generate the docker image. +You should have docker installed, and there must be a Dockerfile in the root of the project. +` + cDockerMainBrief = `main file path for "gf build", it's "main.go" in default. empty string for no binary build` + cDockerBuildBrief = `binary build options before docker image build, it's "-a amd64 -s linux" in default` + cDockerFileBrief = `file path of the Dockerfile. it's "manifest/docker/Dockerfile" in default` + cDockerShellBrief = `path of the shell file which is executed before docker build` + cDockerPushBrief = `auto push the docker image to docker registry if "-t" option passed` + cDockerTagNameBrief = `tag name for this docker, pattern like "image:tag". this option is required with TagPrefixes` + cDockerTagPrefixesBrief = `tag prefixes for this docker, which are used for docker push. this option is required with TagName` + cDockerExtraBrief = `extra build options passed to "docker image"` +) + +func init() { + gtag.Sets(g.MapStrStr{ + `cDockerUsage`: cDockerUsage, + `cDockerBrief`: cDockerBrief, + `cDockerEg`: cDockerEg, + `cDockerDc`: cDockerDc, + `cDockerMainBrief`: cDockerMainBrief, + `cDockerFileBrief`: cDockerFileBrief, + `cDockerShellBrief`: cDockerShellBrief, + `cDockerBuildBrief`: cDockerBuildBrief, + `cDockerPushBrief`: cDockerPushBrief, + `cDockerTagNameBrief`: cDockerTagNameBrief, + `cDockerTagPrefixesBrief`: cDockerTagPrefixesBrief, + `cDockerExtraBrief`: cDockerExtraBrief, + }) +} + +type cDockerInput struct { + g.Meta `name:"docker" config:"gfcli.docker"` + Main string `name:"MAIN" arg:"true" brief:"{cDockerMainBrief}" d:"main.go"` + File string `name:"file" short:"f" brief:"{cDockerFileBrief}" d:"manifest/docker/Dockerfile"` + Shell string `name:"shell" short:"s" brief:"{cDockerShellBrief}" d:"manifest/docker/docker.sh"` + Build string `name:"build" short:"b" brief:"{cDockerBuildBrief}" d:"-a amd64 -s linux"` + TagName string `name:"tagName" short:"tn" brief:"{cDockerTagNameBrief}" v:"required-with:TagPrefixes"` + TagPrefixes []string `name:"tagPrefixes" short:"tp" brief:"{cDockerTagPrefixesBrief}" v:"required-with:TagName"` + Push bool `name:"push" short:"p" brief:"{cDockerPushBrief}" orphan:"true"` + Extra string `name:"extra" short:"e" brief:"{cDockerExtraBrief}"` +} + +type cDockerOutput struct{} + +func (c cDocker) Index(ctx context.Context, in cDockerInput) (out *cDockerOutput, err error) { + // Necessary check. + if gproc.SearchBinary("docker") == "" { + mlog.Fatalf(`command "docker" not found in your environment, please install docker first to proceed this command`) + } + + // Binary build. + in.Build += " --exit" + if in.Main != "" { + if err = gproc.ShellRun(ctx, fmt.Sprintf(`gf build %s %s`, in.Main, in.Build)); err != nil { + return + } + } + + // Shell executing. + if in.Shell != "" && gfile.Exists(in.Shell) { + if err = c.exeDockerShell(ctx, in.Shell); err != nil { + return + } + } + // Docker build. + var ( + dockerBuildOptions string + dockerTags []string + dockerTagBase string + ) + if len(in.TagPrefixes) > 0 { + for _, tagPrefix := range in.TagPrefixes { + tagPrefix = gstr.TrimRight(tagPrefix, "/") + dockerTags = append(dockerTags, fmt.Sprintf(`%s/%s`, tagPrefix, in.TagName)) + } + } + if len(dockerTags) == 0 { + dockerTags = []string{""} + } + for i, dockerTag := range dockerTags { + if i > 0 { + err = gproc.ShellRun(ctx, fmt.Sprintf(`docker tag %s %s`, dockerTagBase, dockerTag)) + if err != nil { + return + } + continue + } + dockerTagBase = dockerTag + dockerBuildOptions = "" + if dockerTag != "" { + dockerBuildOptions = fmt.Sprintf(`-t %s`, dockerTag) + } + if in.Extra != "" { + dockerBuildOptions = fmt.Sprintf(`%s %s`, dockerBuildOptions, in.Extra) + } + err = gproc.ShellRun(ctx, fmt.Sprintf(`docker build -f %s . %s`, in.File, dockerBuildOptions)) + if err != nil { + return + } + } + + // Docker push. + if !in.Push { + return + } + for _, dockerTag := range dockerTags { + if dockerTag == "" { + continue + } + err = gproc.ShellRun(ctx, fmt.Sprintf(`docker push %s`, dockerTag)) + if err != nil { + return + } + } + return +} + +func (c cDocker) exeDockerShell(ctx context.Context, shellFilePath string) error { + if gfile.ExtName(shellFilePath) == "sh" && runtime.GOOS == "windows" { + mlog.Debugf(`ignore shell file "%s", as it cannot be run on windows system`, shellFilePath) + return nil + } + return gproc.ShellRun(ctx, gfile.GetContents(shellFilePath)) +} diff --git a/server/internal/library/hggen/internal/cmd/cmd_env.go b/server/internal/library/hggen/internal/cmd/cmd_env.go new file mode 100644 index 0000000..581dd35 --- /dev/null +++ b/server/internal/library/hggen/internal/cmd/cmd_env.go @@ -0,0 +1,63 @@ +package cmd + +import ( + "bytes" + "context" + + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gproc" + "github.com/gogf/gf/v2/text/gregex" + "github.com/gogf/gf/v2/text/gstr" + "github.com/olekukonko/tablewriter" + + "hotgo/internal/library/hggen/internal/utility/mlog" +) + +var ( + Env = cEnv{} +) + +type cEnv struct { + g.Meta `name:"env" brief:"show current Golang environment variables"` +} + +type cEnvInput struct { + g.Meta `name:"env"` +} + +type cEnvOutput struct{} + +func (c cEnv) Index(ctx context.Context, in cEnvInput) (out *cEnvOutput, err error) { + result, err := gproc.ShellExec(ctx, "go env") + if err != nil { + mlog.Fatal(err) + } + if result == "" { + mlog.Fatal(`retrieving Golang environment variables failed, did you install Golang?`) + } + var ( + lines = gstr.Split(result, "\n") + buffer = bytes.NewBuffer(nil) + ) + array := make([][]string, 0) + for _, line := range lines { + line = gstr.Trim(line) + if line == "" { + continue + } + if gstr.Pos(line, "set ") == 0 { + line = line[4:] + } + match, _ := gregex.MatchString(`(.+?)=(.*)`, line) + if len(match) < 3 { + mlog.Fatalf(`invalid Golang environment variable: "%s"`, line) + } + array = append(array, []string{gstr.Trim(match[1]), gstr.Trim(match[2])}) + } + tw := tablewriter.NewWriter(buffer) + tw.SetColumnAlignment([]int{tablewriter.ALIGN_LEFT, tablewriter.ALIGN_LEFT}) + tw.AppendBulk(array) + tw.Render() + mlog.Print(buffer.String()) + return +} diff --git a/server/internal/library/hggen/internal/cmd/cmd_fix.go b/server/internal/library/hggen/internal/cmd/cmd_fix.go new file mode 100644 index 0000000..c9e6cba --- /dev/null +++ b/server/internal/library/hggen/internal/cmd/cmd_fix.go @@ -0,0 +1,99 @@ +package cmd + +import ( + "context" + + "github.com/gogf/gf/v2/errors/gerror" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gfile" + "github.com/gogf/gf/v2/text/gstr" + "hotgo/internal/library/hggen/internal/utility/mlog" +) + +var ( + Fix = cFix{} +) + +type cFix struct { + g.Meta `name:"fix" brief:"auto fixing codes after upgrading to new GoFrame version" usage:"gf fix" ` +} + +type cFixInput struct { + g.Meta `name:"fix"` +} + +type cFixOutput struct{} + +type cFixItem struct { + Version string + Func func(version string) error +} + +func (c cFix) Index(ctx context.Context, in cFixInput) (out *cFixOutput, err error) { + mlog.Print(`start auto fixing...`) + defer mlog.Print(`done!`) + err = c.doFix() + return +} + +func (c cFix) doFix() (err error) { + version, err := c.getVersion() + if err != nil { + mlog.Fatal(err) + } + if version == "" { + mlog.Print(`no GoFrame usage found, exit fixing`) + return + } + mlog.Debugf(`current GoFrame version found "%s"`, version) + + var items = []cFixItem{ + {Version: "v2.3", Func: c.doFixV23}, + } + for _, item := range items { + if gstr.CompareVersionGo(version, item.Version) < 0 { + mlog.Debugf( + `current GoFrame version "%s" is lesser than "%s", nothing to do`, + version, item.Version, + ) + continue + } + if err = item.Func(version); err != nil { + return + } + } + return +} + +// doFixV23 fixes code when upgrading to GoFrame v2.3. +func (c cFix) doFixV23(version string) error { + replaceFunc := func(path, content string) string { + content = gstr.Replace(content, "*gdb.TX", "gdb.TX") + return content + } + return gfile.ReplaceDirFunc(replaceFunc, ".", "*.go", true) +} + +func (c cFix) getVersion() (string, error) { + var ( + err error + path = "go.mod" + version string + ) + if !gfile.Exists(path) { + return "", gerror.Newf(`"%s" not found in current working directory`, path) + } + err = gfile.ReadLines(path, func(line string) error { + array := gstr.SplitAndTrim(line, " ") + if len(array) > 0 { + if array[0] == gfPackage { + version = array[1] + } + } + return nil + }) + if err != nil { + mlog.Fatal(err) + } + return version, nil +} diff --git a/server/internal/library/hggen/internal/cmd/cmd_gen.go b/server/internal/library/hggen/internal/cmd/cmd_gen.go new file mode 100644 index 0000000..3cc2f0e --- /dev/null +++ b/server/internal/library/hggen/internal/cmd/cmd_gen.go @@ -0,0 +1,34 @@ +package cmd + +import ( + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/util/gtag" +) + +var ( + Gen = cGen{} +) + +type cGen struct { + g.Meta `name:"hggen" brief:"{cGenBrief}" dc:"{cGenDc}"` + cGenDao + cGenPb + cGenPbEntity + cGenService +} + +const ( + cGenBrief = `automatically generate go files for dao/do/entity/pb/pbentity` + cGenDc = ` +The "hggen" command is designed for multiple generating purposes. +It's currently supporting generating go files for ORM models, protobuf and protobuf entity files. +Please use "gf hggen dao -h" for specified type help. +` +) + +func init() { + gtag.Sets(g.MapStrStr{ + `cGenBrief`: cGenBrief, + `cGenDc`: cGenDc, + }) +} diff --git a/server/internal/library/hggen/internal/cmd/cmd_gen_dao.go b/server/internal/library/hggen/internal/cmd/cmd_gen_dao.go new file mode 100644 index 0000000..8d44406 --- /dev/null +++ b/server/internal/library/hggen/internal/cmd/cmd_gen_dao.go @@ -0,0 +1,15 @@ +package cmd + +import ( + //_ "github.com/gogf/gf/contrib/drivers/mssql/v2" + //_ "github.com/gogf/gf/contrib/drivers/mysql/v2" + //_ "github.com/gogf/gf/contrib/drivers/oracle/v2" + //_ "github.com/gogf/gf/contrib/drivers/pgsql/v2" + //_ "github.com/gogf/gf/contrib/drivers/sqlite/v2" + + "hotgo/internal/library/hggen/internal/cmd/gendao" +) + +type ( + cGenDao = gendao.CGenDao +) diff --git a/server/internal/library/hggen/internal/cmd/cmd_gen_pb.go b/server/internal/library/hggen/internal/cmd/cmd_gen_pb.go new file mode 100644 index 0000000..6fc28e8 --- /dev/null +++ b/server/internal/library/hggen/internal/cmd/cmd_gen_pb.go @@ -0,0 +1,79 @@ +package cmd + +import ( + "context" + "fmt" + + "github.com/gogf/gf/v2/container/gset" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/genv" + "github.com/gogf/gf/v2/os/gfile" + "github.com/gogf/gf/v2/os/gproc" + "hotgo/internal/library/hggen/internal/utility/mlog" +) + +type ( + cGenPb struct{} + cGenPbInput struct { + g.Meta `name:"pb" brief:"parse proto files and generate protobuf go files"` + } + cGenPbOutput struct{} +) + +func (c cGenPb) Pb(ctx context.Context, in cGenPbInput) (out *cGenPbOutput, err error) { + // Necessary check. + if gproc.SearchBinary("protoc") == "" { + mlog.Fatalf(`command "protoc" not found in your environment, please install protoc first to proceed this command`) + } + + // protocol fold checks. + protoFolder := "protocol" + if !gfile.Exists(protoFolder) { + mlog.Fatalf(`proto files folder "%s" does not exist`, protoFolder) + } + // folder scanning. + files, err := gfile.ScanDirFile(protoFolder, "*.proto", true) + if err != nil { + mlog.Fatal(err) + } + if len(files) == 0 { + mlog.Fatalf(`no proto files found in folder "%s"`, protoFolder) + } + dirSet := gset.NewStrSet() + for _, file := range files { + dirSet.Add(gfile.Dir(file)) + } + var ( + servicePath = gfile.RealPath(".") + goPathSrc = gfile.RealPath(gfile.Join(genv.Get("GOPATH").String(), "src")) + ) + dirSet.Iterator(func(protoDirPath string) bool { + parsingCommand := fmt.Sprintf( + "protoc --gofast_out=plugins=grpc:. %s/*.proto -I%s", + protoDirPath, + servicePath, + ) + if goPathSrc != "" { + parsingCommand += " -I" + goPathSrc + } + mlog.Print(parsingCommand) + if output, err := gproc.ShellExec(ctx, parsingCommand); err != nil { + mlog.Print(output) + mlog.Fatal(err) + } + return true + }) + // Custom replacement. + //pbFolder := "protobuf" + //_, _ = gfile.ScanDirFileFunc(pbFolder, "*.go", true, func(path string) string { + // content := gfile.GetContents(path) + // content = gstr.ReplaceByArray(content, g.SliceStr{ + // `gtime "gtime"`, `gtime "github.com/gogf/gf/v2/os/gtime"`, + // }) + // _ = gfile.PutContents(path, content) + // utils.GoFmt(path) + // return path + //}) + mlog.Print("done!") + return +} diff --git a/server/internal/library/hggen/internal/cmd/cmd_gen_pbentity.go b/server/internal/library/hggen/internal/cmd/cmd_gen_pbentity.go new file mode 100644 index 0000000..e65425e --- /dev/null +++ b/server/internal/library/hggen/internal/cmd/cmd_gen_pbentity.go @@ -0,0 +1,411 @@ +package cmd + +import ( + "bytes" + "context" + "fmt" + "strings" + + "github.com/gogf/gf/v2/database/gdb" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gfile" + "github.com/gogf/gf/v2/os/gtime" + "github.com/gogf/gf/v2/text/gregex" + "github.com/gogf/gf/v2/text/gstr" + "github.com/gogf/gf/v2/util/gconv" + "github.com/gogf/gf/v2/util/gtag" + "github.com/olekukonko/tablewriter" + + "hotgo/internal/library/hggen/internal/consts" + "hotgo/internal/library/hggen/internal/utility/mlog" +) + +type ( + cGenPbEntity struct{} + cGenPbEntityInput struct { + g.Meta `name:"pbentity" config:"{cGenPbEntityConfig}" brief:"{cGenPbEntityBrief}" eg:"{cGenPbEntityEg}" ad:"{cGenPbEntityAd}"` + Path string `name:"path" short:"p" brief:"{cGenPbEntityBriefPath}"` + Package string `name:"package" short:"k" brief:"{cGenPbEntityBriefPackage}"` + Link string `name:"link" short:"l" brief:"{cGenPbEntityBriefLink}"` + Tables string `name:"tables" short:"t" brief:"{cGenPbEntityBriefTables}"` + Prefix string `name:"prefix" short:"f" brief:"{cGenPbEntityBriefPrefix}"` + RemovePrefix string `name:"removePrefix" short:"r" brief:"{cGenPbEntityBriefRemovePrefix}"` + NameCase string `name:"nameCase" short:"n" brief:"{cGenPbEntityBriefNameCase}" d:"Camel"` + JsonCase string `name:"jsonCase" short:"j" brief:"{cGenPbEntityBriefJsonCase}" d:"CamelLower"` + Option string `name:"option" short:"o" brief:"{cGenPbEntityBriefOption}"` + } + cGenPbEntityOutput struct{} + + cGenPbEntityInternalInput struct { + cGenPbEntityInput + TableName string // TableName specifies the table name of the table. + NewTableName string // NewTableName specifies the prefix-stripped name of the table. + } +) + +const ( + cGenPbEntityConfig = `gfcli.hggen.pbentity` + cGenPbEntityBrief = `generate entity message files in protobuf3 format` + cGenPbEntityEg = ` +gf hggen pbentity +gf hggen pbentity -l "mysql:root:12345678@tcp(127.0.0.1:3306)/test" +gf hggen pbentity -p ./protocol/demos/entity -t user,user_detail,user_login +gf hggen pbentity -r user_ +` + + cGenPbEntityAd = ` +CONFIGURATION SUPPORT + Options are also supported by configuration file. + It's suggested using configuration file instead of command line arguments making producing. + The configuration node name is "gf.hggen.pbentity", which also supports multiple databases, for example(config.yaml): + gfcli: + hggen: + - pbentity: + link: "mysql:root:12345678@tcp(127.0.0.1:3306)/test" + path: "protocol/demos/entity" + tables: "order,products" + package: "demos" + - pbentity: + link: "mysql:root:12345678@tcp(127.0.0.1:3306)/primary" + path: "protocol/demos/entity" + prefix: "primary_" + tables: "user, userDetail" + package: "demos" + option: | + option go_package = "protobuf/demos"; + option java_package = "protobuf/demos"; + option php_namespace = "protobuf/demos"; +` + cGenPbEntityBriefPath = `directory path for generated files` + cGenPbEntityBriefPackage = `package name for all entity proto files` + cGenPbEntityBriefLink = `database configuration, the same as the ORM configuration of GoFrame` + cGenPbEntityBriefTables = `generate models only for given tables, multiple table names separated with ','` + cGenPbEntityBriefPrefix = `add specified prefix for all entity names and entity proto files` + cGenPbEntityBriefRemovePrefix = `remove specified prefix of the table, multiple prefix separated with ','` + cGenPbEntityBriefOption = `extra protobuf options` + cGenPbEntityBriefGroup = ` +specifying the configuration group name of database for generated ORM instance, +it's not necessary and the default value is "default" +` + + cGenPbEntityBriefNameCase = ` +case for message attribute names, default is "Camel": +| Case | Example | +|---------------- |--------------------| +| Camel | AnyKindOfString | +| CamelLower | anyKindOfString | default +| Snake | any_kind_of_string | +| SnakeScreaming | ANY_KIND_OF_STRING | +| SnakeFirstUpper | rgb_code_md5 | +| Kebab | any-kind-of-string | +| KebabScreaming | ANY-KIND-OF-STRING | +` + + cGenPbEntityBriefJsonCase = ` +case for message json tag, cases are the same as "nameCase", default "CamelLower". +set it to "none" to ignore json tag generating. +` +) + +func init() { + gtag.Sets(g.MapStrStr{ + `cGenPbEntityConfig`: cGenPbEntityConfig, + `cGenPbEntityBrief`: cGenPbEntityBrief, + `cGenPbEntityEg`: cGenPbEntityEg, + `cGenPbEntityAd`: cGenPbEntityAd, + `cGenPbEntityBriefPath`: cGenPbEntityBriefPath, + `cGenPbEntityBriefPackage`: cGenPbEntityBriefPackage, + `cGenPbEntityBriefLink`: cGenPbEntityBriefLink, + `cGenPbEntityBriefTables`: cGenPbEntityBriefTables, + `cGenPbEntityBriefPrefix`: cGenPbEntityBriefPrefix, + `cGenPbEntityBriefRemovePrefix`: cGenPbEntityBriefRemovePrefix, + `cGenPbEntityBriefGroup`: cGenPbEntityBriefGroup, + `cGenPbEntityBriefNameCase`: cGenPbEntityBriefNameCase, + `cGenPbEntityBriefJsonCase`: cGenPbEntityBriefJsonCase, + `cGenPbEntityBriefOption`: cGenPbEntityBriefOption, + }) +} + +func (c cGenPbEntity) PbEntity(ctx context.Context, in cGenPbEntityInput) (out *cGenPbEntityOutput, err error) { + var ( + config = g.Cfg() + ) + if config.Available(ctx) { + v := config.MustGet(ctx, cGenPbEntityConfig) + if v.IsSlice() { + for i := 0; i < len(v.Interfaces()); i++ { + doGenPbEntityForArray(ctx, i, in) + } + } else { + doGenPbEntityForArray(ctx, -1, in) + } + } else { + doGenPbEntityForArray(ctx, -1, in) + } + mlog.Print("done!") + return +} + +func doGenPbEntityForArray(ctx context.Context, index int, in cGenPbEntityInput) { + var ( + err error + db gdb.DB + ) + if index >= 0 { + err = g.Cfg().MustGet( + ctx, + fmt.Sprintf(`%s.%d`, cGenPbEntityConfig, index), + ).Scan(&in) + if err != nil { + mlog.Fatalf(`invalid configuration of "%s": %+v`, cGenPbEntityConfig, err) + } + } + if in.Package == "" { + mlog.Fatal("package name should not be empty") + } + removePrefixArray := gstr.SplitAndTrim(in.RemovePrefix, ",") + // It uses user passed database configuration. + if in.Link != "" { + var ( + tempGroup = gtime.TimestampNanoStr() + match, _ = gregex.MatchString(`([a-z]+):(.+)`, in.Link) + ) + if len(match) == 3 { + gdb.AddConfigNode(tempGroup, gdb.ConfigNode{ + Type: gstr.Trim(match[1]), + Link: gstr.Trim(match[2]), + }) + db, _ = gdb.Instance(tempGroup) + } + } else { + db = g.DB() + } + if db == nil { + mlog.Fatal("database initialization failed") + } + + tableNames := ([]string)(nil) + if in.Tables != "" { + tableNames = gstr.SplitAndTrim(in.Tables, ",") + } else { + tableNames, err = db.Tables(context.TODO()) + if err != nil { + mlog.Fatalf("fetching tables failed: \n %v", err) + } + } + + for _, tableName := range tableNames { + newTableName := tableName + for _, v := range removePrefixArray { + newTableName = gstr.TrimLeftStr(newTableName, v, 1) + } + generatePbEntityContentFile(ctx, db, cGenPbEntityInternalInput{ + cGenPbEntityInput: in, + TableName: tableName, + NewTableName: newTableName, + }) + } +} + +// generatePbEntityContentFile generates the protobuf files for given table. +func generatePbEntityContentFile(ctx context.Context, db gdb.DB, in cGenPbEntityInternalInput) { + fieldMap, err := db.TableFields(ctx, in.TableName) + if err != nil { + mlog.Fatalf("fetching tables fields failed for table '%s':\n%v", in.TableName, err) + } + // Change the `newTableName` if `Prefix` is given. + newTableName := "Entity_" + in.Prefix + in.NewTableName + var ( + tableNameCamelCase = gstr.CaseCamel(newTableName) + tableNameSnakeCase = gstr.CaseSnake(newTableName) + entityMessageDefine = generateEntityMessageDefinition(tableNameCamelCase, fieldMap, in) + fileName = gstr.Trim(tableNameSnakeCase, "-_.") + path = gfile.Join(in.Path, fileName+".proto") + ) + entityContent := gstr.ReplaceByMap(getTplPbEntityContent(""), g.MapStrStr{ + "{PackageName}": in.Package, + "{OptionContent}": in.Option, + "{EntityMessage}": entityMessageDefine, + }) + if err := gfile.PutContents(path, strings.TrimSpace(entityContent)); err != nil { + mlog.Fatalf("writing content to '%s' failed: %v", path, err) + } else { + mlog.Print("generated:", path) + } +} + +// generateEntityMessageDefinition generates and returns the message definition for specified table. +func generateEntityMessageDefinition(entityName string, fieldMap map[string]*gdb.TableField, in cGenPbEntityInternalInput) string { + var ( + buffer = bytes.NewBuffer(nil) + array = make([][]string, len(fieldMap)) + names = sortFieldKeyForPbEntity(fieldMap) + ) + for index, name := range names { + array[index] = generateMessageFieldForPbEntity(index+1, fieldMap[name], in) + } + tw := tablewriter.NewWriter(buffer) + tw.SetBorder(false) + tw.SetRowLine(false) + tw.SetAutoWrapText(false) + tw.SetColumnSeparator("") + tw.AppendBulk(array) + tw.Render() + stContent := buffer.String() + // Let's do this hack of table writer for indent! + stContent = gstr.Replace(stContent, " #", "") + buffer.Reset() + buffer.WriteString(fmt.Sprintf("message %s {\n", entityName)) + buffer.WriteString(stContent) + buffer.WriteString("}") + return buffer.String() +} + +// generateMessageFieldForPbEntity generates and returns the message definition for specified field. +func generateMessageFieldForPbEntity(index int, field *gdb.TableField, in cGenPbEntityInternalInput) []string { + var ( + typeName string + comment string + jsonTagStr string + ) + t, _ := gregex.ReplaceString(`\(.+\)`, "", field.Type) + t = gstr.Split(gstr.Trim(t), " ")[0] + t = gstr.ToLower(t) + switch t { + case "binary", "varbinary", "blob", "tinyblob", "mediumblob", "longblob": + typeName = "bytes" + + case "bit", "int", "tinyint", "small_int", "smallint", "medium_int", "mediumint", "serial": + if gstr.ContainsI(field.Type, "unsigned") { + typeName = "uint32" + } else { + typeName = "int32" + } + + case "int8", "big_int", "bigint", "bigserial": + if gstr.ContainsI(field.Type, "unsigned") { + typeName = "uint64" + } else { + typeName = "int64" + } + + case "real": + typeName = "float" + + case "float", "double", "decimal", "smallmoney": + typeName = "double" + + case "bool": + typeName = "bool" + + case "datetime", "timestamp", "date", "time": + typeName = "int64" + + default: + // Auto detecting type. + switch { + case strings.Contains(t, "int"): + typeName = "int" + case strings.Contains(t, "text") || strings.Contains(t, "char"): + typeName = "string" + case strings.Contains(t, "float") || strings.Contains(t, "double"): + typeName = "double" + case strings.Contains(t, "bool"): + typeName = "bool" + case strings.Contains(t, "binary") || strings.Contains(t, "blob"): + typeName = "bytes" + case strings.Contains(t, "date") || strings.Contains(t, "time"): + typeName = "int64" + default: + typeName = "string" + } + } + comment = gstr.ReplaceByArray(field.Comment, g.SliceStr{ + "\n", " ", + "\r", " ", + }) + comment = gstr.Trim(comment) + comment = gstr.Replace(comment, `\n`, " ") + comment, _ = gregex.ReplaceString(`\s{2,}`, ` `, comment) + if jsonTagName := formatCase(field.Name, in.JsonCase); jsonTagName != "" { + jsonTagStr = fmt.Sprintf(`[(gogoproto.jsontag) = "%s"]`, jsonTagName) + // beautiful indent. + if index < 10 { + // 3 spaces + jsonTagStr = " " + jsonTagStr + } else if index < 100 { + // 2 spaces + jsonTagStr = " " + jsonTagStr + } else { + // 1 spaces + jsonTagStr = " " + jsonTagStr + } + } + return []string{ + " #" + typeName, + " #" + formatCase(field.Name, in.NameCase), + " #= " + gconv.String(index) + jsonTagStr + ";", + " #" + fmt.Sprintf(`// %s`, comment), + } +} + +func getTplPbEntityContent(tplEntityPath string) string { + if tplEntityPath != "" { + return gfile.GetContents(tplEntityPath) + } + return consts.TemplatePbEntityMessageContent +} + +// formatCase call gstr.Case* function to convert the s to specified case. +func formatCase(str, caseStr string) string { + switch gstr.ToLower(caseStr) { + case gstr.ToLower("Camel"): + return gstr.CaseCamel(str) + + case gstr.ToLower("CamelLower"): + return gstr.CaseCamelLower(str) + + case gstr.ToLower("Kebab"): + return gstr.CaseKebab(str) + + case gstr.ToLower("KebabScreaming"): + return gstr.CaseKebabScreaming(str) + + case gstr.ToLower("Snake"): + return gstr.CaseSnake(str) + + case gstr.ToLower("SnakeFirstUpper"): + return gstr.CaseSnakeFirstUpper(str) + + case gstr.ToLower("SnakeScreaming"): + return gstr.CaseSnakeScreaming(str) + + case "none": + return "" + } + return str +} + +func sortFieldKeyForPbEntity(fieldMap map[string]*gdb.TableField) []string { + names := make(map[int]string) + for _, field := range fieldMap { + names[field.Index] = field.Name + } + var ( + result = make([]string, len(names)) + i = 0 + j = 0 + ) + for { + if len(names) == 0 { + break + } + if val, ok := names[i]; ok { + result[j] = val + j++ + delete(names, i) + } + i++ + } + return result +} diff --git a/server/internal/library/hggen/internal/cmd/cmd_gen_service.go b/server/internal/library/hggen/internal/cmd/cmd_gen_service.go new file mode 100644 index 0000000..2eaced2 --- /dev/null +++ b/server/internal/library/hggen/internal/cmd/cmd_gen_service.go @@ -0,0 +1,9 @@ +package cmd + +import ( + "hotgo/internal/library/hggen/internal/cmd/genservice" +) + +type ( + cGenService = genservice.CGenService +) diff --git a/server/internal/library/hggen/internal/cmd/cmd_init.go b/server/internal/library/hggen/internal/cmd/cmd_init.go new file mode 100644 index 0000000..07bc71d --- /dev/null +++ b/server/internal/library/hggen/internal/cmd/cmd_init.go @@ -0,0 +1,126 @@ +package cmd + +import ( + "context" + "fmt" + "strings" + + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gcmd" + "github.com/gogf/gf/v2/os/gfile" + "github.com/gogf/gf/v2/os/gproc" + "github.com/gogf/gf/v2/os/gres" + "github.com/gogf/gf/v2/util/gtag" + + "hotgo/internal/library/hggen/internal/utility/allyes" + "hotgo/internal/library/hggen/internal/utility/mlog" +) + +var ( + Init = cInit{} +) + +type cInit struct { + g.Meta `name:"init" brief:"{cInitBrief}" eg:"{cInitEg}"` +} + +const ( + cInitRepoPrefix = `github.com/gogf/` + cInitMonoRepo = `template-mono` + cInitSingleRepo = `template-single` + cInitBrief = `create and initialize an empty GoFrame project` + cInitEg = ` +gf init my-project +gf init my-mono-repo -m +` + cInitNameBrief = ` +name for the project. It will create a folder with NAME in current directory. +The NAME will also be the module name for the project. +` +) + +func init() { + gtag.Sets(g.MapStrStr{ + `cInitBrief`: cInitBrief, + `cInitEg`: cInitEg, + `cInitNameBrief`: cInitNameBrief, + }) +} + +type cInitInput struct { + g.Meta `name:"init"` + Name string `name:"NAME" arg:"true" v:"required" brief:"{cInitNameBrief}"` + Mono bool `name:"mono" short:"m" brief:"initialize a mono-repo instead a single-repo" orphan:"true"` + Update bool `name:"update" short:"u" brief:"update to the latest goframe version" orphan:"true"` +} + +type cInitOutput struct{} + +func (c cInit) Index(ctx context.Context, in cInitInput) (out *cInitOutput, err error) { + if !gfile.IsEmpty(in.Name) && !allyes.Check() { + s := gcmd.Scanf(`the folder "%s" is not empty, files might be overwrote, continue? [y/n]: `, in.Name) + if strings.EqualFold(s, "n") { + return + } + } + mlog.Print("initializing...") + + // Create project folder and files. + var ( + templateRepoName string + ) + if in.Mono { + templateRepoName = cInitMonoRepo + } else { + templateRepoName = cInitSingleRepo + } + err = gres.Export(templateRepoName, in.Name, gres.ExportOption{ + RemovePrefix: templateRepoName, + }) + if err != nil { + return + } + + // Replace template name to project name. + err = gfile.ReplaceDir( + cInitRepoPrefix+templateRepoName, + gfile.Basename(gfile.RealPath(in.Name)), + in.Name, + "*", + true, + ) + if err != nil { + return + } + + // Update the GoFrame version. + if in.Update { + mlog.Print("update goframe...") + // go get -u github.com/gogf/gf/v2@latest + updateCommand := `go get -u github.com/gogf/gf/v2@latest` + if in.Name != "." { + updateCommand = fmt.Sprintf(`cd %s && %s`, in.Name, updateCommand) + } + if err = gproc.ShellRun(ctx, updateCommand); err != nil { + mlog.Fatal(err) + } + // go mod tidy + gomModTidyCommand := `go mod tidy` + if in.Name != "." { + gomModTidyCommand = fmt.Sprintf(`cd %s && %s`, in.Name, gomModTidyCommand) + } + if err = gproc.ShellRun(ctx, gomModTidyCommand); err != nil { + mlog.Fatal(err) + } + } + + mlog.Print("initialization done! ") + if !in.Mono { + enjoyCommand := `gf run main.go` + if in.Name != "." { + enjoyCommand = fmt.Sprintf(`cd %s && %s`, in.Name, enjoyCommand) + } + mlog.Printf(`you can now run "%s" to start your journey, enjoy!`, enjoyCommand) + } + return +} diff --git a/server/internal/library/hggen/internal/cmd/cmd_install.go b/server/internal/library/hggen/internal/cmd/cmd_install.go new file mode 100644 index 0000000..24377ca --- /dev/null +++ b/server/internal/library/hggen/internal/cmd/cmd_install.go @@ -0,0 +1,28 @@ +package cmd + +import ( + "context" + + "github.com/gogf/gf/v2/frame/g" + + "hotgo/internal/library/hggen/internal/service" +) + +var ( + Install = cInstall{} +) + +type cInstall struct { + g.Meta `name:"install" brief:"install gf binary to system (might need root/admin permission)"` +} + +type cInstallInput struct { + g.Meta `name:"install"` +} + +type cInstallOutput struct{} + +func (c cInstall) Index(ctx context.Context, in cInstallInput) (out *cInstallOutput, err error) { + err = service.Install.Run(ctx) + return +} diff --git a/server/internal/library/hggen/internal/cmd/cmd_pack.go b/server/internal/library/hggen/internal/cmd/cmd_pack.go new file mode 100644 index 0000000..f185c8d --- /dev/null +++ b/server/internal/library/hggen/internal/cmd/cmd_pack.go @@ -0,0 +1,98 @@ +package cmd + +import ( + "context" + "strings" + + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gcmd" + "github.com/gogf/gf/v2/os/gfile" + "github.com/gogf/gf/v2/os/gres" + "github.com/gogf/gf/v2/util/gtag" + + "hotgo/internal/library/hggen/internal/utility/allyes" + "hotgo/internal/library/hggen/internal/utility/mlog" +) + +var ( + Pack = cPack{} +) + +type cPack struct { + g.Meta `name:"pack" usage:"{cPackUsage}" brief:"{cPackBrief}" eg:"{cPackEg}"` +} + +const ( + cPackUsage = `gf pack SRC DST` + cPackBrief = `packing any file/directory to a resource file, or a go file` + cPackEg = ` +gf pack public data.bin +gf pack public,template data.bin +gf pack public,template packed/data.go +gf pack public,template,config packed/data.go +gf pack public,template,config packed/data.go -n=packed -p=/var/www/my-app +gf pack /var/www/public packed/data.go -n=packed +` + cPackSrcBrief = `source path for packing, which can be multiple source paths.` + cPackDstBrief = ` +destination file path for packed file. if extension of the filename is ".go" and "-n" option is given, +it enables packing SRC to go file, or else it packs SRC into a binary file. +` + cPackNameBrief = `package name for output go file, it's set as its directory name if no name passed` + cPackPrefixBrief = `prefix for each file packed into the resource file` + cPackKeepPathBrief = `keep the source path from system to resource file, usually for relative path` +) + +func init() { + gtag.Sets(g.MapStrStr{ + `cPackUsage`: cPackUsage, + `cPackBrief`: cPackBrief, + `cPackEg`: cPackEg, + `cPackSrcBrief`: cPackSrcBrief, + `cPackDstBrief`: cPackDstBrief, + `cPackNameBrief`: cPackNameBrief, + `cPackPrefixBrief`: cPackPrefixBrief, + `cPackKeepPathBrief`: cPackKeepPathBrief, + }) +} + +type cPackInput struct { + g.Meta `name:"pack"` + Src string `name:"SRC" arg:"true" v:"required" brief:"{cPackSrcBrief}"` + Dst string `name:"DST" arg:"true" v:"required" brief:"{cPackDstBrief}"` + Name string `name:"name" short:"n" brief:"{cPackNameBrief}"` + Prefix string `name:"prefix" short:"p" brief:"{cPackPrefixBrief}"` + KeepPath bool `name:"keepPath" short:"k" brief:"{cPackKeepPathBrief}" orphan:"true"` +} + +type cPackOutput struct{} + +func (c cPack) Index(ctx context.Context, in cPackInput) (out *cPackOutput, err error) { + if gfile.Exists(in.Dst) && gfile.IsDir(in.Dst) { + mlog.Fatalf("DST path '%s' cannot be a directory", in.Dst) + } + if !gfile.IsEmpty(in.Dst) && !allyes.Check() { + s := gcmd.Scanf("path '%s' is not empty, files might be overwrote, continue? [y/n]: ", in.Dst) + if strings.EqualFold(s, "n") { + return + } + } + if in.Name == "" && gfile.ExtName(in.Dst) == "go" { + in.Name = gfile.Basename(gfile.Dir(in.Dst)) + } + var option = gres.Option{ + Prefix: in.Prefix, + KeepPath: in.KeepPath, + } + if in.Name != "" { + if err = gres.PackToGoFileWithOption(in.Src, in.Dst, in.Name, option); err != nil { + mlog.Fatalf("pack failed: %v", err) + } + } else { + if err = gres.PackToFileWithOption(in.Src, in.Dst, option); err != nil { + mlog.Fatalf("pack failed: %v", err) + } + } + mlog.Print("done!") + return +} diff --git a/server/internal/library/hggen/internal/cmd/cmd_run.go b/server/internal/library/hggen/internal/cmd/cmd_run.go new file mode 100644 index 0000000..6e3d3ee --- /dev/null +++ b/server/internal/library/hggen/internal/cmd/cmd_run.go @@ -0,0 +1,166 @@ +package cmd + +import ( + "context" + "fmt" + "runtime" + + "github.com/gogf/gf/v2/container/gtype" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gfile" + "github.com/gogf/gf/v2/os/gfsnotify" + "github.com/gogf/gf/v2/os/gproc" + "github.com/gogf/gf/v2/os/gtime" + "github.com/gogf/gf/v2/os/gtimer" + "github.com/gogf/gf/v2/util/gtag" + + "hotgo/internal/library/hggen/internal/utility/mlog" +) + +var ( + Run = cRun{} +) + +type cRun struct { + g.Meta `name:"run" usage:"{cRunUsage}" brief:"{cRunBrief}" eg:"{cRunEg}" dc:"{cRunDc}"` +} + +type cRunApp struct { + File string // Go run file name. + Path string // Directory storing built binary. + Options string // Extra "go run" options. + Args string // Custom arguments. +} + +const ( + cRunUsage = `gf run FILE [OPTION]` + cRunBrief = `running go codes with hot-compiled-like feature` + cRunEg = ` +gf run main.go +gf run main.go --args "server -p 8080" +gf run main.go -mod=vendor +` + cRunDc = ` +The "run" command is used for running go codes with hot-compiled-like feature, +which compiles and runs the go codes asynchronously when codes change. +` + cRunFileBrief = `building file path.` + cRunPathBrief = `output directory path for built binary file. it's "manifest/output" in default` + cRunExtraBrief = `the same options as "go run"/"go build" except some options as follows defined` + cRunArgsBrief = `custom arguments for your process` +) + +var ( + process *gproc.Process +) + +func init() { + gtag.Sets(g.MapStrStr{ + `cRunUsage`: cRunUsage, + `cRunBrief`: cRunBrief, + `cRunEg`: cRunEg, + `cRunDc`: cRunDc, + `cRunFileBrief`: cRunFileBrief, + `cRunPathBrief`: cRunPathBrief, + `cRunExtraBrief`: cRunExtraBrief, + `cRunArgsBrief`: cRunArgsBrief, + }) +} + +type ( + cRunInput struct { + g.Meta `name:"run"` + File string `name:"FILE" arg:"true" brief:"{cRunFileBrief}" v:"required"` + Path string `name:"path" short:"p" brief:"{cRunPathBrief}" d:"./"` + Extra string `name:"extra" short:"e" brief:"{cRunExtraBrief}"` + Args string `name:"args" short:"a" brief:"{cRunArgsBrief}"` + } + cRunOutput struct{} +) + +func (c cRun) Index(ctx context.Context, in cRunInput) (out *cRunOutput, err error) { + // Necessary check. + if gproc.SearchBinary("go") == "" { + mlog.Fatalf(`command "go" not found in your environment, please install golang first to proceed this command`) + } + + app := &cRunApp{ + File: in.File, + Path: in.Path, + Options: in.Extra, + Args: in.Args, + } + dirty := gtype.NewBool() + _, err = gfsnotify.Add(gfile.RealPath("."), func(event *gfsnotify.Event) { + if gfile.ExtName(event.Path) != "go" { + return + } + // Variable `dirty` is used for running the changes only one in one second. + if !dirty.Cas(false, true) { + return + } + // With some delay in case of multiple code changes in very short interval. + gtimer.SetTimeout(ctx, 1500*gtime.MS, func(ctx context.Context) { + defer dirty.Set(false) + mlog.Printf(`go file changes: %s`, event.String()) + app.Run(ctx) + }) + }) + if err != nil { + mlog.Fatal(err) + } + go app.Run(ctx) + select {} +} + +func (app *cRunApp) Run(ctx context.Context) { + // Rebuild and run the codes. + renamePath := "" + mlog.Printf("build: %s", app.File) + outputPath := gfile.Join(app.Path, gfile.Name(app.File)) + if runtime.GOOS == "windows" { + outputPath += ".exe" + if gfile.Exists(outputPath) { + renamePath = outputPath + "~" + if err := gfile.Rename(outputPath, renamePath); err != nil { + mlog.Print(err) + } + } + } + // In case of `pipe: too many open files` error. + // Build the app. + buildCommand := fmt.Sprintf( + `go build -o %s %s %s`, + outputPath, + app.Options, + app.File, + ) + mlog.Print(buildCommand) + result, err := gproc.ShellExec(ctx, buildCommand) + if err != nil { + mlog.Printf("build error: \n%s%s", result, err.Error()) + return + } + // Kill the old process if build successfully. + if process != nil { + if err := process.Kill(); err != nil { + mlog.Debugf("kill process error: %s", err.Error()) + //return + } + } + // Run the binary file. + runCommand := fmt.Sprintf(`%s %s`, outputPath, app.Args) + mlog.Print(runCommand) + if runtime.GOOS == "windows" { + // Special handling for windows platform. + // DO NOT USE "cmd /c" command. + process = gproc.NewProcess(runCommand, nil) + } else { + process = gproc.NewProcessCmd(runCommand, nil) + } + if pid, err := process.Start(ctx); err != nil { + mlog.Printf("build running error: %s", err.Error()) + } else { + mlog.Printf("build running pid: %d", pid) + } +} diff --git a/server/internal/library/hggen/internal/cmd/cmd_tpl.go b/server/internal/library/hggen/internal/cmd/cmd_tpl.go new file mode 100644 index 0000000..9d01b46 --- /dev/null +++ b/server/internal/library/hggen/internal/cmd/cmd_tpl.go @@ -0,0 +1,168 @@ +package cmd + +import ( + "context" + + "github.com/gogf/gf/v2/encoding/gjson" + "github.com/gogf/gf/v2/errors/gerror" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gfile" + "github.com/gogf/gf/v2/text/gstr" + "github.com/gogf/gf/v2/util/gtag" + "github.com/gogf/gf/v2/util/gutil" + + "hotgo/internal/library/hggen/internal/utility/mlog" +) + +var ( + Tpl = cTpl{} +) + +type cTpl struct { + g.Meta `name:"tpl" brief:"{cTplBrief}" dc:"{cTplDc}"` +} + +const ( + cTplBrief = `template parsing and building commands` + cTplDc = ` +The "tpl" command is used for template parsing and building purpose. +It can parse either template file or folder with multiple types of values support, +like json/xml/yaml/toml/ini. +` + cTplParseBrief = `parse either template file or folder with multiple types of values` + cTplParseEg = ` +gf tpl parse -p ./template -v values.json -r +gf tpl parse -p ./template -v values.json -n *.tpl -r +gf tpl parse -p ./template -v values.json -d '${,}}' -r +gf tpl parse -p ./template -v values.json -o ./template.parsed +` + cTplSupportValuesFilePattern = `*.json,*.xml,*.yaml,*.yml,*.toml,*.ini` +) + +type ( + cTplParseInput struct { + g.Meta `name:"parse" brief:"{cTplParseBrief}" eg:"{cTplParseEg}"` + Path string `name:"path" short:"p" brief:"template file or folder path" v:"required"` + Pattern string `name:"pattern" short:"n" brief:"template file pattern when path is a folder, default is:*" d:"*"` + Recursive bool `name:"recursive" short:"c" brief:"recursively parsing files if path is folder, default is:true" d:"true"` + Values string `name:"values" short:"v" brief:"template values file/folder, support file types like: json/xml/yaml/toml/ini" v:"required"` + Output string `name:"output" short:"o" brief:"output file/folder path"` + Delimiters string `name:"delimiters" short:"d" brief:"delimiters for template content parsing, default is:{{,}}" d:"{{,}}"` + Replace bool `name:"replace" short:"r" brief:"replace original files" orphan:"true"` + } + cTplParseOutput struct{} +) + +func init() { + gtag.Sets(g.MapStrStr{ + `cTplBrief`: cTplBrief, + `cTplDc`: cTplDc, + `cTplParseEg`: cTplParseEg, + `cTplParseBrief`: cTplParseBrief, + }) +} + +func (c *cTpl) Parse(ctx context.Context, in cTplParseInput) (out *cTplParseOutput, err error) { + if in.Output == "" && in.Replace == false { + return nil, gerror.New(`parameter output and replace should not be both empty`) + } + delimiters := gstr.SplitAndTrim(in.Delimiters, ",") + mlog.Debugf("delimiters input:%s, parsed:%#v", in.Delimiters, delimiters) + if len(delimiters) != 2 { + return nil, gerror.Newf(`invalid delimiters: %s`, in.Delimiters) + } + g.View().SetDelimiters(delimiters[0], delimiters[1]) + valuesMap, err := c.loadValues(ctx, in.Values) + if err != nil { + return nil, err + } + if len(valuesMap) == 0 { + return nil, gerror.Newf(`empty values loaded from values file/folder "%s"`, in.Values) + } + err = c.parsePath(ctx, valuesMap, in) + if err == nil { + mlog.Print("done!") + } + return +} + +func (c *cTpl) parsePath(ctx context.Context, values g.Map, in cTplParseInput) (err error) { + if !gfile.Exists(in.Path) { + return gerror.Newf(`path "%s" does not exist`, in.Path) + } + var ( + path string + files []string + relativePath string + outputPath string + ) + path = gfile.RealPath(in.Path) + if gfile.IsDir(path) { + files, err = gfile.ScanDirFile(path, in.Pattern, in.Recursive) + if err != nil { + return err + } + for _, file := range files { + relativePath = gstr.Replace(file, path, "") + if in.Output != "" { + outputPath = gfile.Join(in.Output, relativePath) + } + if err = c.parseFile(ctx, file, outputPath, values, in); err != nil { + return + } + } + return + } + if in.Output != "" { + outputPath = in.Output + } + err = c.parseFile(ctx, path, outputPath, values, in) + return +} + +func (c *cTpl) parseFile(ctx context.Context, file string, output string, values g.Map, in cTplParseInput) (err error) { + output = gstr.ReplaceByMap(output, g.MapStrStr{ + `\\`: `\`, + `//`: `/`, + }) + content, err := g.View().Parse(ctx, file, values) + if err != nil { + return err + } + if output != "" { + mlog.Printf(`parse file "%s" to "%s"`, file, output) + return gfile.PutContents(output, content) + } + if in.Replace { + mlog.Printf(`parse and replace file "%s"`, file) + return gfile.PutContents(file, content) + } + return nil +} + +func (c *cTpl) loadValues(ctx context.Context, valuesPath string) (data g.Map, err error) { + if !gfile.Exists(valuesPath) { + return nil, gerror.Newf(`values file/folder "%s" does not exist`, valuesPath) + } + var j *gjson.Json + if gfile.IsDir(valuesPath) { + var valueFiles []string + valueFiles, err = gfile.ScanDirFile(valuesPath, cTplSupportValuesFilePattern, true) + if err != nil { + return nil, err + } + data = make(g.Map) + for _, file := range valueFiles { + if j, err = gjson.Load(file); err != nil { + return nil, err + } + gutil.MapMerge(data, j.Map()) + } + return + } + if j, err = gjson.Load(valuesPath); err != nil { + return nil, err + } + data = j.Map() + return +} diff --git a/server/internal/library/hggen/internal/cmd/cmd_up.go b/server/internal/library/hggen/internal/cmd/cmd_up.go new file mode 100644 index 0000000..9bce070 --- /dev/null +++ b/server/internal/library/hggen/internal/cmd/cmd_up.go @@ -0,0 +1,121 @@ +package cmd + +import ( + "context" + "fmt" + + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gfile" + "github.com/gogf/gf/v2/os/gproc" + "github.com/gogf/gf/v2/text/gstr" + "github.com/gogf/gf/v2/util/gtag" + "hotgo/internal/library/hggen/internal/utility/mlog" +) + +var ( + Up = cUp{} +) + +type cUp struct { + g.Meta `name:"up" brief:"upgrade GoFrame version/tool to latest one in current project" eg:"{cUpEg}" ` +} + +const ( + gfPackage = `github.com/gogf/gf/v2` + cUpEg = ` +gf up +gf up -a +gf up -c +gf up -f -c +` +) + +func init() { + gtag.Sets(g.MapStrStr{ + `cUpEg`: cUpEg, + }) +} + +type cUpInput struct { + g.Meta `name:"up" config:"gfcli.up"` + All bool `name:"all" short:"a" brief:"upgrade both version and cli, auto fix codes" orphan:"true"` + Fix bool `name:"fix" short:"f" brief:"auto fix codes" orphan:"true"` + Cli bool `name:"cli" short:"c" brief:"also upgrade CLI tool (not supported yet)" orphan:"true"` +} + +type cUpOutput struct{} + +func (c cUp) Index(ctx context.Context, in cUpInput) (out *cUpOutput, err error) { + defer mlog.Print(`done!`) + + if in.All { + in.Cli = true + in.Fix = true + } + if err = c.doUpgradeVersion(ctx); err != nil { + return nil, err + } + if in.Fix { + if err = c.doAutoFixing(ctx); err != nil { + return nil, err + } + } + //if in.Cli { + // if err = c.doUpgradeCLI(ctx); err != nil { + // return nil, err + // } + //} + return +} + +func (c cUp) doUpgradeVersion(ctx context.Context) (err error) { + mlog.Print(`start upgrading version...`) + + var ( + dir = gfile.Pwd() + temp string + path = gfile.Join(dir, "go.mod") + ) + for { + if gfile.Exists(path) { + var packages []string + err = gfile.ReadLines(path, func(line string) error { + line = gstr.Trim(line) + if gstr.HasPrefix(line, gfPackage) { + pkg := gstr.Explode(" ", line)[0] + packages = append(packages, pkg) + } + return nil + }) + if err != nil { + return + } + for _, pkg := range packages { + mlog.Printf(`upgrading %s`, pkg) + command := fmt.Sprintf(`go get -u %s@latest`, pkg) + if err = gproc.ShellRun(ctx, command); err != nil { + return + } + } + return + } + temp = gfile.Dir(dir) + if temp == "" || temp == dir { + return + } + dir = temp + path = gfile.Join(dir, "go.mod") + } +} + +func (c cUp) doUpgradeCLI(ctx context.Context) (err error) { + mlog.Print(`start upgrading cli...`) + + return +} + +func (c cUp) doAutoFixing(ctx context.Context) (err error) { + mlog.Print(`start auto fixing...`) + err = cFix{}.doFix() + return +} diff --git a/server/internal/library/hggen/internal/cmd/cmd_version.go b/server/internal/library/hggen/internal/cmd/cmd_version.go new file mode 100644 index 0000000..c4127e3 --- /dev/null +++ b/server/internal/library/hggen/internal/cmd/cmd_version.go @@ -0,0 +1,89 @@ +package cmd + +import ( + "context" + "fmt" + + "github.com/gogf/gf/v2" + "github.com/gogf/gf/v2/errors/gerror" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gbuild" + "github.com/gogf/gf/v2/os/gfile" + "github.com/gogf/gf/v2/text/gregex" + "github.com/gogf/gf/v2/text/gstr" + + "hotgo/internal/library/hggen/internal/utility/mlog" +) + +var ( + Version = cVersion{} +) + +type cVersion struct { + g.Meta `name:"version" brief:"show version information of current binary"` +} + +type cVersionInput struct { + g.Meta `name:"version"` +} + +type cVersionOutput struct{} + +func (c cVersion) Index(ctx context.Context, in cVersionInput) (*cVersionOutput, error) { + info := gbuild.Info() + if info.Git == "" { + info.Git = "none" + } + mlog.Printf(`GoFrame CLI Tool %s, https://goframe.org`, gf.VERSION) + gfVersion, err := c.getGFVersionOfCurrentProject() + if err != nil { + gfVersion = err.Error() + } else { + gfVersion = gfVersion + " in current go.mod" + } + mlog.Printf(`GoFrame Version: %s`, gfVersion) + mlog.Printf(`CLI Installed At: %s`, gfile.SelfPath()) + if info.GoFrame == "" { + mlog.Print(`Current is a custom installed version, no installation information.`) + return nil, nil + } + + mlog.Print(gstr.Trim(fmt.Sprintf(` +CLI Built Detail: + Go Version: %s + GF Version: %s + Git Commit: %s + Build Time: %s +`, info.Golang, info.GoFrame, info.Git, info.Time))) + return nil, nil +} + +// getGFVersionOfCurrentProject checks and returns the GoFrame version current project using. +func (c cVersion) getGFVersionOfCurrentProject() (string, error) { + goModPath := gfile.Join(gfile.Pwd(), "go.mod") + if gfile.Exists(goModPath) { + lines := gstr.SplitAndTrim(gfile.GetContents(goModPath), "\n") + for _, line := range lines { + line = gstr.Trim(line) + // Version 1. + match, err := gregex.MatchString(`^github\.com/gogf/gf\s+(.+)$`, line) + if err != nil { + return "", err + } + if len(match) <= 1 { + // Version > 1. + match, err = gregex.MatchString(`^github\.com/gogf/gf/v\d\s+(.+)$`, line) + if err != nil { + return "", err + } + } + if len(match) > 1 { + return gstr.Trim(match[1]), nil + } + } + + return "", gerror.New("cannot find goframe requirement in go.mod") + } else { + return "", gerror.New("cannot find go.mod") + } +} diff --git a/server/internal/library/hggen/internal/cmd/gendao/gendao.go b/server/internal/library/hggen/internal/cmd/gendao/gendao.go new file mode 100644 index 0000000..97a7398 --- /dev/null +++ b/server/internal/library/hggen/internal/cmd/gendao/gendao.go @@ -0,0 +1,380 @@ +package gendao + +import ( + "context" + "fmt" + "strings" + + "github.com/gogf/gf/v2/container/garray" + "github.com/gogf/gf/v2/database/gdb" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gfile" + "github.com/gogf/gf/v2/os/gtime" + "github.com/gogf/gf/v2/text/gregex" + "github.com/gogf/gf/v2/text/gstr" + "github.com/gogf/gf/v2/util/gtag" + + "hotgo/internal/library/hggen/internal/utility/mlog" +) + +const ( + CGenDaoConfig = `gfcli.hggen.dao` + CGenDaoUsage = `gf hggen dao [OPTION]` + CGenDaoBrief = `automatically generate go files for dao/do/entity` + CGenDaoEg = ` +gf hggen dao +gf hggen dao -l "mysql:root:12345678@tcp(127.0.0.1:3306)/test" +gf hggen dao -p ./model -g user-center -t user,user_detail,user_login +gf hggen dao -r user_ +` + + CGenDaoAd = ` +CONFIGURATION SUPPORT + Options are also supported by configuration file. + It's suggested using configuration file instead of command line arguments making producing. + The configuration node name is "gfcli.hggen.dao", which also supports multiple databases, for example(config.yaml): + gfcli: + hggen: + dao: + - link: "mysql:root:12345678@tcp(127.0.0.1:3306)/test" + tables: "order,products" + jsonCase: "CamelLower" + - link: "mysql:root:12345678@tcp(127.0.0.1:3306)/primary" + path: "./my-app" + prefix: "primary_" + tables: "user, userDetail" +` + CGenDaoBriefPath = `directory path for generated files` + CGenDaoBriefLink = `database configuration, the same as the ORM configuration of GoFrame` + CGenDaoBriefTables = `generate models only for given tables, multiple table names separated with ','` + CGenDaoBriefTablesEx = `generate models excluding given tables, multiple table names separated with ','` + CGenDaoBriefPrefix = `add prefix for all table of specified link/database tables` + CGenDaoBriefRemovePrefix = `remove specified prefix of the table, multiple prefix separated with ','` + CGenDaoBriefStdTime = `use time.Time from stdlib instead of gtime.Time for generated time/date fields of tables` + CGenDaoBriefWithTime = `add created time for auto produced go files` + CGenDaoBriefGJsonSupport = `use gJsonSupport to use *gjson.Json instead of string for generated json fields of tables` + CGenDaoBriefImportPrefix = `custom import prefix for generated go files` + CGenDaoBriefDaoPath = `directory path for storing generated dao files under path` + CGenDaoBriefDoPath = `directory path for storing generated do files under path` + CGenDaoBriefEntityPath = `directory path for storing generated entity files under path` + CGenDaoBriefOverwriteDao = `overwrite all dao files both inside/outside internal folder` + CGenDaoBriefModelFile = `custom file name for storing generated model content` + CGenDaoBriefModelFileForDao = `custom file name generating model for DAO operations like Where/Data. It's empty in default` + CGenDaoBriefDescriptionTag = `add comment to description tag for each field` + CGenDaoBriefNoJsonTag = `no json tag will be added for each field` + CGenDaoBriefNoModelComment = `no model comment will be added for each field` + CGenDaoBriefClear = `delete all generated go files that do not exist in database` + CGenDaoBriefGroup = ` +specifying the configuration group name of database for generated ORM instance, +it's not necessary and the default value is "default" +` + CGenDaoBriefJsonCase = ` +generated json tag case for model struct, cases are as follows: +| Case | Example | +|---------------- |--------------------| +| Camel | AnyKindOfString | +| CamelLower | anyKindOfString | default +| Snake | any_kind_of_string | +| SnakeScreaming | ANY_KIND_OF_STRING | +| SnakeFirstUpper | rgb_code_md5 | +| Kebab | any-kind-of-string | +| KebabScreaming | ANY-KIND-OF-STRING | +` + CGenDaoBriefTplDaoIndexPath = `template file path for dao index file` + CGenDaoBriefTplDaoInternalPath = `template file path for dao internal file` + CGenDaoBriefTplDaoDoPathPath = `template file path for dao do file` + CGenDaoBriefTplDaoEntityPath = `template file path for dao entity file` + + tplVarTableName = `{TplTableName}` + tplVarTableNameCamelCase = `{TplTableNameCamelCase}` + tplVarTableNameCamelLowerCase = `{TplTableNameCamelLowerCase}` + tplVarPackageImports = `{TplPackageImports}` + tplVarImportPrefix = `{TplImportPrefix}` + tplVarStructDefine = `{TplStructDefine}` + tplVarColumnDefine = `{TplColumnDefine}` + tplVarColumnNames = `{TplColumnNames}` + tplVarGroupName = `{TplGroupName}` + tplVarDatetimeStr = `{TplDatetimeStr}` + tplVarCreatedAtDatetimeStr = `{TplCreatedAtDatetimeStr}` +) + +var ( + createdAt = gtime.Now() +) + +func init() { + gtag.Sets(g.MapStrStr{ + `CGenDaoConfig`: CGenDaoConfig, + `CGenDaoUsage`: CGenDaoUsage, + `CGenDaoBrief`: CGenDaoBrief, + `CGenDaoEg`: CGenDaoEg, + `CGenDaoAd`: CGenDaoAd, + `CGenDaoBriefPath`: CGenDaoBriefPath, + `CGenDaoBriefLink`: CGenDaoBriefLink, + `CGenDaoBriefTables`: CGenDaoBriefTables, + `CGenDaoBriefTablesEx`: CGenDaoBriefTablesEx, + `CGenDaoBriefPrefix`: CGenDaoBriefPrefix, + `CGenDaoBriefRemovePrefix`: CGenDaoBriefRemovePrefix, + `CGenDaoBriefStdTime`: CGenDaoBriefStdTime, + `CGenDaoBriefWithTime`: CGenDaoBriefWithTime, + `CGenDaoBriefDaoPath`: CGenDaoBriefDaoPath, + `CGenDaoBriefDoPath`: CGenDaoBriefDoPath, + `CGenDaoBriefEntityPath`: CGenDaoBriefEntityPath, + `CGenDaoBriefGJsonSupport`: CGenDaoBriefGJsonSupport, + `CGenDaoBriefImportPrefix`: CGenDaoBriefImportPrefix, + `CGenDaoBriefOverwriteDao`: CGenDaoBriefOverwriteDao, + `CGenDaoBriefModelFile`: CGenDaoBriefModelFile, + `CGenDaoBriefModelFileForDao`: CGenDaoBriefModelFileForDao, + `CGenDaoBriefDescriptionTag`: CGenDaoBriefDescriptionTag, + `CGenDaoBriefNoJsonTag`: CGenDaoBriefNoJsonTag, + `CGenDaoBriefNoModelComment`: CGenDaoBriefNoModelComment, + `CGenDaoBriefClear`: CGenDaoBriefClear, + `CGenDaoBriefGroup`: CGenDaoBriefGroup, + `CGenDaoBriefJsonCase`: CGenDaoBriefJsonCase, + `CGenDaoBriefTplDaoIndexPath`: CGenDaoBriefTplDaoIndexPath, + `CGenDaoBriefTplDaoInternalPath`: CGenDaoBriefTplDaoInternalPath, + `CGenDaoBriefTplDaoDoPathPath`: CGenDaoBriefTplDaoDoPathPath, + `CGenDaoBriefTplDaoEntityPath`: CGenDaoBriefTplDaoEntityPath, + }) +} + +type ( + CGenDao struct{} + CGenDaoInput struct { + g.Meta `name:"dao" config:"{CGenDaoConfig}" usage:"{CGenDaoUsage}" brief:"{CGenDaoBrief}" eg:"{CGenDaoEg}" ad:"{CGenDaoAd}"` + Path string `name:"path" short:"p" brief:"{CGenDaoBriefPath}" d:"internal"` + Link string `name:"link" short:"l" brief:"{CGenDaoBriefLink}"` + Tables string `name:"tables" short:"t" brief:"{CGenDaoBriefTables}"` + TablesEx string `name:"tablesEx" short:"x" brief:"{CGenDaoBriefTablesEx}"` + Group string `name:"group" short:"g" brief:"{CGenDaoBriefGroup}" d:"default"` + Prefix string `name:"prefix" short:"f" brief:"{CGenDaoBriefPrefix}"` + RemovePrefix string `name:"removePrefix" short:"r" brief:"{CGenDaoBriefRemovePrefix}"` + JsonCase string `name:"jsonCase" short:"j" brief:"{CGenDaoBriefJsonCase}" d:"CamelLower"` + ImportPrefix string `name:"importPrefix" short:"i" brief:"{CGenDaoBriefImportPrefix}"` + DaoPath string `name:"daoPath" short:"d" brief:"{CGenDaoBriefDaoPath}" d:"dao"` + DoPath string `name:"doPath" short:"o" brief:"{CGenDaoBriefDoPath}" d:"model/do"` + EntityPath string `name:"entityPath" short:"e" brief:"{CGenDaoBriefEntityPath}" d:"model/entity"` + TplDaoIndexPath string `name:"tplDaoIndexPath" short:"t1" brief:"{CGenDaoBriefTplDaoIndexPath}"` + TplDaoInternalPath string `name:"tplDaoInternalPath" short:"t2" brief:"{CGenDaoBriefTplDaoInternalPath}"` + TplDaoDoPath string `name:"tplDaoDoPath" short:"t3" brief:"{CGenDaoBriefTplDaoDoPathPath}"` + TplDaoEntityPath string `name:"tplDaoEntityPath" short:"t4" brief:"{CGenDaoBriefTplDaoEntityPath}"` + StdTime bool `name:"stdTime" short:"s" brief:"{CGenDaoBriefStdTime}" orphan:"true"` + WithTime bool `name:"withTime" short:"w" brief:"{CGenDaoBriefWithTime}" orphan:"true"` + GJsonSupport bool `name:"gJsonSupport" short:"n" brief:"{CGenDaoBriefGJsonSupport}" orphan:"true"` + OverwriteDao bool `name:"overwriteDao" short:"v" brief:"{CGenDaoBriefOverwriteDao}" orphan:"true"` + DescriptionTag bool `name:"descriptionTag" short:"c" brief:"{CGenDaoBriefDescriptionTag}" orphan:"true"` + NoJsonTag bool `name:"noJsonTag" short:"k" brief:"{CGenDaoBriefNoJsonTag}" orphan:"true"` + NoModelComment bool `name:"noModelComment" short:"m" brief:"{CGenDaoBriefNoModelComment}" orphan:"true"` + Clear bool `name:"clear" short:"a" brief:"{CGenDaoBriefClear}" orphan:"true"` + } + CGenDaoOutput struct{} + + CGenDaoInternalInput struct { + CGenDaoInput + DB gdb.DB + TableNames []string + NewTableNames []string + ModName string // Module name of current golang project, which is used for import purpose. + } +) + +func (c CGenDao) Dao(ctx context.Context, in CGenDaoInput) (out *CGenDaoOutput, err error) { + g.Log().Warningf(ctx, "g.Cfg().Available(ctx):%v", g.Cfg().Available(ctx)) + if g.Cfg().Available(ctx) { + v := g.Cfg().MustGet(ctx, CGenDaoConfig) + if v.IsSlice() { + for i := 0; i < len(v.Interfaces()); i++ { + doGenDaoForArray(ctx, i, in) + } + } else { + doGenDaoForArray(ctx, -1, in) + } + } else { + doGenDaoForArray(ctx, -1, in) + } + mlog.Print("done!") + return +} + +func DoGenDaoForArray(ctx context.Context, in CGenDaoInput) { + doGenDaoForArray(ctx, -1, in) +} + +// doGenDaoForArray implements the "hggen dao" command for configuration array. +func doGenDaoForArray(ctx context.Context, index int, in CGenDaoInput) { + var ( + err error + db gdb.DB + modName string // Go module name, eg: github.com/gogf/gf. + ) + if index >= 0 { + err = g.Cfg().MustGet( + ctx, + fmt.Sprintf(`%s.%d`, CGenDaoConfig, index), + ).Scan(&in) + if err != nil { + mlog.Fatalf(`invalid configuration of "%s": %+v`, CGenDaoConfig, err) + } + } + if dirRealPath := gfile.RealPath(in.Path); dirRealPath == "" { + mlog.Fatalf(`path "%s" does not exist`, in.Path) + } + removePrefixArray := gstr.SplitAndTrim(in.RemovePrefix, ",") + if in.ImportPrefix == "" { + if !gfile.Exists("go.mod") { + mlog.Fatal("go.mod does not exist in current working directory") + } + var ( + goModContent = gfile.GetContents("go.mod") + match, _ = gregex.MatchString(`^module\s+(.+)\s*`, goModContent) + ) + if len(match) > 1 { + modName = gstr.Trim(match[1]) + } else { + mlog.Fatal("module name does not found in go.mod") + } + } + + // It uses user passed database configuration. + if in.Link != "" { + var tempGroup = gtime.TimestampNanoStr() + gdb.AddConfigNode(tempGroup, gdb.ConfigNode{ + Link: in.Link, + }) + if db, err = gdb.Instance(tempGroup); err != nil { + mlog.Fatalf(`database initialization failed: %+v`, err) + } + } else { + db = g.DB(in.Group) + } + if db == nil { + mlog.Fatal(`database initialization failed, may be invalid database configuration`) + } + + var tableNames []string + if in.Tables != "" { + tableNames = gstr.SplitAndTrim(in.Tables, ",") + } else { + tableNames, err = db.Tables(context.TODO()) + if err != nil { + mlog.Fatalf("fetching tables failed: %+v", err) + } + } + // Table excluding. + if in.TablesEx != "" { + array := garray.NewStrArrayFrom(tableNames) + for _, v := range gstr.SplitAndTrim(in.TablesEx, ",") { + array.RemoveValue(v) + } + tableNames = array.Slice() + } + + // Generating dao & model go files one by one according to given table name. + newTableNames := make([]string, len(tableNames)) + for i, tableName := range tableNames { + newTableName := tableName + for _, v := range removePrefixArray { + newTableName = gstr.TrimLeftStr(newTableName, v, 1) + } + newTableName = in.Prefix + newTableName + newTableNames[i] = newTableName + } + // Dao: index and internal. + generateDao(ctx, CGenDaoInternalInput{ + CGenDaoInput: in, + DB: db, + TableNames: tableNames, + NewTableNames: newTableNames, + ModName: modName, + }) + // Do. + generateDo(ctx, CGenDaoInternalInput{ + CGenDaoInput: in, + DB: db, + TableNames: tableNames, + NewTableNames: newTableNames, + ModName: modName, + }) + // Entity. + generateEntity(ctx, CGenDaoInternalInput{ + CGenDaoInput: in, + DB: db, + TableNames: tableNames, + NewTableNames: newTableNames, + ModName: modName, + }) +} + +func getImportPartContent(source string, isDo bool) string { + var ( + packageImportsArray = garray.NewStrArray() + ) + + if isDo { + packageImportsArray.Append(`"github.com/gogf/gf/v2/frame/g"`) + } + + // Time package recognition. + if strings.Contains(source, "gtime.Time") { + packageImportsArray.Append(`"github.com/gogf/gf/v2/os/gtime"`) + } else if strings.Contains(source, "time.Time") { + packageImportsArray.Append(`"time"`) + } + + // Json type. + if strings.Contains(source, "gjson.Json") { + packageImportsArray.Append(`"github.com/gogf/gf/v2/encoding/gjson"`) + } + + // Generate and write content to golang file. + packageImportsStr := "" + if packageImportsArray.Len() > 0 { + packageImportsStr = fmt.Sprintf("import(\n%s\n)", packageImportsArray.Join("\n")) + } + return packageImportsStr +} + +func replaceDefaultVar(in CGenDaoInternalInput, origin string) string { + var tplCreatedAtDatetimeStr string + var tplDatetimeStr string = createdAt.String() + if in.WithTime { + tplCreatedAtDatetimeStr = fmt.Sprintf(`Created at %s`, tplDatetimeStr) + } + return gstr.ReplaceByMap(origin, g.MapStrStr{ + tplVarDatetimeStr: tplDatetimeStr, + tplVarCreatedAtDatetimeStr: tplCreatedAtDatetimeStr, + }) +} + +func sortFieldKeyForDao(fieldMap map[string]*gdb.TableField) []string { + names := make(map[int]string) + for _, field := range fieldMap { + names[field.Index] = field.Name + } + var ( + i = 0 + j = 0 + result = make([]string, len(names)) + ) + for { + if len(names) == 0 { + break + } + if val, ok := names[i]; ok { + result[j] = val + j++ + delete(names, i) + } + i++ + } + return result +} + +func getTemplateFromPathOrDefault(filePath string, def string) string { + if filePath != "" { + if contents := gfile.GetContents(filePath); contents != "" { + return contents + } + } + return def +} diff --git a/server/internal/library/hggen/internal/cmd/gendao/gendao_clear.go b/server/internal/library/hggen/internal/cmd/gendao/gendao_clear.go new file mode 100644 index 0000000..7deb1d7 --- /dev/null +++ b/server/internal/library/hggen/internal/cmd/gendao/gendao_clear.go @@ -0,0 +1,24 @@ +package gendao + +import ( + "context" + + "github.com/gogf/gf/v2/os/gfile" + + "hotgo/internal/library/hggen/internal/utility/mlog" + "hotgo/internal/library/hggen/internal/utility/utils" +) + +func doClear(ctx context.Context, dirPath string) { + files, err := gfile.ScanDirFile(dirPath, "*.go", true) + if err != nil { + mlog.Fatal(err) + } + for _, file := range files { + if utils.IsFileDoNotEdit(file) { + if err = gfile.Remove(file); err != nil { + mlog.Print(err) + } + } + } +} diff --git a/server/internal/library/hggen/internal/cmd/gendao/gendao_dao.go b/server/internal/library/hggen/internal/cmd/gendao/gendao_dao.go new file mode 100644 index 0000000..b7797b6 --- /dev/null +++ b/server/internal/library/hggen/internal/cmd/gendao/gendao_dao.go @@ -0,0 +1,228 @@ +package gendao + +import ( + "bytes" + "context" + "fmt" + "strings" + + "github.com/gogf/gf/v2/database/gdb" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gfile" + "github.com/gogf/gf/v2/text/gregex" + "github.com/gogf/gf/v2/text/gstr" + "github.com/olekukonko/tablewriter" + + "hotgo/internal/library/hggen/internal/consts" + "hotgo/internal/library/hggen/internal/utility/mlog" + "hotgo/internal/library/hggen/internal/utility/utils" +) + +func generateDao(ctx context.Context, in CGenDaoInternalInput) { + var ( + dirPathDao = gfile.Join(in.Path, in.DaoPath) + dirPathDaoInternal = gfile.Join(dirPathDao, "internal") + ) + if in.Clear { + doClear(ctx, dirPathDao) + } + for i := 0; i < len(in.TableNames); i++ { + generateDaoSingle(ctx, generateDaoSingleInput{ + CGenDaoInternalInput: in, + TableName: in.TableNames[i], + NewTableName: in.NewTableNames[i], + DirPathDao: dirPathDao, + DirPathDaoInternal: dirPathDaoInternal, + }) + } +} + +type generateDaoSingleInput struct { + CGenDaoInternalInput + TableName string // TableName specifies the table name of the table. + NewTableName string // NewTableName specifies the prefix-stripped name of the table. + DirPathDao string + DirPathDaoInternal string +} + +// generateDaoSingle generates the dao and model content of given table. +func generateDaoSingle(ctx context.Context, in generateDaoSingleInput) { + // Generating table data preparing. + fieldMap, err := in.DB.TableFields(ctx, in.TableName) + if err != nil { + mlog.Fatalf(`fetching tables fields failed for table "%s": %+v`, in.TableName, err) + } + var ( + dirRealPath = gfile.RealPath(in.Path) + tableNameCamelCase = gstr.CaseCamel(in.NewTableName) + tableNameCamelLowerCase = gstr.CaseCamelLower(in.NewTableName) + tableNameSnakeCase = gstr.CaseSnake(in.NewTableName) + importPrefix = in.ImportPrefix + ) + if importPrefix == "" { + if dirRealPath == "" { + dirRealPath = in.Path + importPrefix = dirRealPath + importPrefix = gstr.Trim(dirRealPath, "./") + } else { + importPrefix = gstr.Replace(dirRealPath, gfile.Pwd(), "") + } + importPrefix = gstr.Replace(importPrefix, gfile.Separator, "/") + importPrefix = gstr.Join(g.SliceStr{in.ModName, importPrefix, in.DaoPath}, "/") + importPrefix, _ = gregex.ReplaceString(`\/{2,}`, `/`, gstr.Trim(importPrefix, "/")) + } else { + importPrefix = gstr.Join(g.SliceStr{importPrefix, in.DaoPath}, "/") + } + + fileName := gstr.Trim(tableNameSnakeCase, "-_.") + if len(fileName) > 5 && fileName[len(fileName)-5:] == "_test" { + // Add suffix to avoid the table name which contains "_test", + // which would make the go file a testing file. + fileName += "_table" + } + + // dao - index + generateDaoIndex(generateDaoIndexInput{ + generateDaoSingleInput: in, + TableNameCamelCase: tableNameCamelCase, + TableNameCamelLowerCase: tableNameCamelLowerCase, + ImportPrefix: importPrefix, + FileName: fileName, + }) + + // dao - internal + generateDaoInternal(generateDaoInternalInput{ + generateDaoSingleInput: in, + TableNameCamelCase: tableNameCamelCase, + TableNameCamelLowerCase: tableNameCamelLowerCase, + ImportPrefix: importPrefix, + FileName: fileName, + FieldMap: fieldMap, + }) +} + +type generateDaoIndexInput struct { + generateDaoSingleInput + TableNameCamelCase string + TableNameCamelLowerCase string + ImportPrefix string + FileName string +} + +func generateDaoIndex(in generateDaoIndexInput) { + path := gfile.Join(in.DirPathDao, in.FileName+".go") + if in.OverwriteDao || !gfile.Exists(path) { + indexContent := gstr.ReplaceByMap( + getTemplateFromPathOrDefault(in.TplDaoIndexPath, consts.TemplateGenDaoIndexContent), + g.MapStrStr{ + tplVarImportPrefix: in.ImportPrefix, + tplVarTableName: in.TableName, + tplVarTableNameCamelCase: in.TableNameCamelCase, + tplVarTableNameCamelLowerCase: in.TableNameCamelLowerCase, + }) + indexContent = replaceDefaultVar(in.CGenDaoInternalInput, indexContent) + if err := gfile.PutContents(path, strings.TrimSpace(indexContent)); err != nil { + mlog.Fatalf("writing content to '%s' failed: %v", path, err) + } else { + utils.GoFmt(path) + mlog.Print("generated:", path) + } + } +} + +type generateDaoInternalInput struct { + generateDaoSingleInput + TableNameCamelCase string + TableNameCamelLowerCase string + ImportPrefix string + FileName string + FieldMap map[string]*gdb.TableField +} + +func generateDaoInternal(in generateDaoInternalInput) { + path := gfile.Join(in.DirPathDaoInternal, in.FileName+".go") + modelContent := gstr.ReplaceByMap( + getTemplateFromPathOrDefault(in.TplDaoInternalPath, consts.TemplateGenDaoInternalContent), + g.MapStrStr{ + tplVarImportPrefix: in.ImportPrefix, + tplVarTableName: in.TableName, + tplVarGroupName: in.Group, + tplVarTableNameCamelCase: in.TableNameCamelCase, + tplVarTableNameCamelLowerCase: in.TableNameCamelLowerCase, + tplVarColumnDefine: gstr.Trim(generateColumnDefinitionForDao(in.FieldMap)), + tplVarColumnNames: gstr.Trim(generateColumnNamesForDao(in.FieldMap)), + }) + modelContent = replaceDefaultVar(in.CGenDaoInternalInput, modelContent) + if err := gfile.PutContents(path, strings.TrimSpace(modelContent)); err != nil { + mlog.Fatalf("writing content to '%s' failed: %v", path, err) + } else { + utils.GoFmt(path) + mlog.Print("generated:", path) + } +} + +// generateColumnNamesForDao generates and returns the column names assignment content of column struct +// for specified table. +func generateColumnNamesForDao(fieldMap map[string]*gdb.TableField) string { + var ( + buffer = bytes.NewBuffer(nil) + array = make([][]string, len(fieldMap)) + names = sortFieldKeyForDao(fieldMap) + ) + for index, name := range names { + field := fieldMap[name] + array[index] = []string{ + " #" + gstr.CaseCamel(field.Name) + ":", + fmt.Sprintf(` #"%s",`, field.Name), + } + } + tw := tablewriter.NewWriter(buffer) + tw.SetBorder(false) + tw.SetRowLine(false) + tw.SetAutoWrapText(false) + tw.SetColumnSeparator("") + tw.AppendBulk(array) + tw.Render() + namesContent := buffer.String() + // Let's do this hack of table writer for indent! + namesContent = gstr.Replace(namesContent, " #", "") + buffer.Reset() + buffer.WriteString(namesContent) + return buffer.String() +} + +// generateColumnDefinitionForDao generates and returns the column names definition for specified table. +func generateColumnDefinitionForDao(fieldMap map[string]*gdb.TableField) string { + var ( + buffer = bytes.NewBuffer(nil) + array = make([][]string, len(fieldMap)) + names = sortFieldKeyForDao(fieldMap) + ) + for index, name := range names { + var ( + field = fieldMap[name] + comment = gstr.Trim(gstr.ReplaceByArray(field.Comment, g.SliceStr{ + "\n", " ", + "\r", " ", + })) + ) + array[index] = []string{ + " #" + gstr.CaseCamel(field.Name), + " # " + "string", + " #" + fmt.Sprintf(`// %s`, comment), + } + } + tw := tablewriter.NewWriter(buffer) + tw.SetBorder(false) + tw.SetRowLine(false) + tw.SetAutoWrapText(false) + tw.SetColumnSeparator("") + tw.AppendBulk(array) + tw.Render() + defineContent := buffer.String() + // Let's do this hack of table writer for indent! + defineContent = gstr.Replace(defineContent, " #", "") + buffer.Reset() + buffer.WriteString(defineContent) + return buffer.String() +} diff --git a/server/internal/library/hggen/internal/cmd/gendao/gendao_do.go b/server/internal/library/hggen/internal/cmd/gendao/gendao_do.go new file mode 100644 index 0000000..26202be --- /dev/null +++ b/server/internal/library/hggen/internal/cmd/gendao/gendao_do.go @@ -0,0 +1,82 @@ +package gendao + +import ( + "context" + "fmt" + "strings" + + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gfile" + "github.com/gogf/gf/v2/text/gregex" + "github.com/gogf/gf/v2/text/gstr" + + "hotgo/internal/library/hggen/internal/consts" + "hotgo/internal/library/hggen/internal/utility/mlog" + "hotgo/internal/library/hggen/internal/utility/utils" +) + +func generateDo(ctx context.Context, in CGenDaoInternalInput) { + var dirPathDo = gfile.Join(in.Path, in.DoPath) + if in.Clear { + doClear(ctx, dirPathDo) + } + in.NoJsonTag = true + in.DescriptionTag = false + in.NoModelComment = false + // Model content. + for i, tableName := range in.TableNames { + fieldMap, err := in.DB.TableFields(ctx, tableName) + if err != nil { + mlog.Fatalf("fetching tables fields failed for table '%s':\n%v", tableName, err) + } + var ( + newTableName = in.NewTableNames[i] + doFilePath = gfile.Join(dirPathDo, gstr.CaseSnake(newTableName)+".go") + structDefinition = generateStructDefinition(ctx, generateStructDefinitionInput{ + CGenDaoInternalInput: in, + TableName: tableName, + StructName: gstr.CaseCamel(newTableName), + FieldMap: fieldMap, + IsDo: true, + }) + ) + // replace all types to interface{}. + structDefinition, _ = gregex.ReplaceStringFuncMatch( + "([A-Z]\\w*?)\\s+([\\w\\*\\.]+?)\\s+(//)", + structDefinition, + func(match []string) string { + // If the type is already a pointer/slice/map, it does nothing. + if !gstr.HasPrefix(match[2], "*") && !gstr.HasPrefix(match[2], "[]") && !gstr.HasPrefix(match[2], "map") { + return fmt.Sprintf(`%s interface{} %s`, match[1], match[3]) + } + return match[0] + }, + ) + modelContent := generateDoContent( + in, + tableName, + gstr.CaseCamel(newTableName), + structDefinition, + ) + err = gfile.PutContents(doFilePath, strings.TrimSpace(modelContent)) + if err != nil { + mlog.Fatalf(`writing content to "%s" failed: %v`, doFilePath, err) + } else { + utils.GoFmt(doFilePath) + mlog.Print("generated:", doFilePath) + } + } +} + +func generateDoContent(in CGenDaoInternalInput, tableName, tableNameCamelCase, structDefine string) string { + doContent := gstr.ReplaceByMap( + getTemplateFromPathOrDefault(in.TplDaoDoPath, consts.TemplateGenDaoDoContent), + g.MapStrStr{ + tplVarTableName: tableName, + tplVarPackageImports: getImportPartContent(structDefine, true), + tplVarTableNameCamelCase: tableNameCamelCase, + tplVarStructDefine: structDefine, + }) + doContent = replaceDefaultVar(in, doContent) + return doContent +} diff --git a/server/internal/library/hggen/internal/cmd/gendao/gendao_entity.go b/server/internal/library/hggen/internal/cmd/gendao/gendao_entity.go new file mode 100644 index 0000000..0d91747 --- /dev/null +++ b/server/internal/library/hggen/internal/cmd/gendao/gendao_entity.go @@ -0,0 +1,64 @@ +package gendao + +import ( + "context" + "strings" + + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gfile" + "github.com/gogf/gf/v2/text/gstr" + + "hotgo/internal/library/hggen/internal/consts" + "hotgo/internal/library/hggen/internal/utility/mlog" + "hotgo/internal/library/hggen/internal/utility/utils" +) + +func generateEntity(ctx context.Context, in CGenDaoInternalInput) { + var dirPathEntity = gfile.Join(in.Path, in.EntityPath) + if in.Clear { + doClear(ctx, dirPathEntity) + } + // Model content. + for i, tableName := range in.TableNames { + fieldMap, err := in.DB.TableFields(ctx, tableName) + if err != nil { + mlog.Fatalf("fetching tables fields failed for table '%s':\n%v", tableName, err) + } + var ( + newTableName = in.NewTableNames[i] + entityFilePath = gfile.Join(dirPathEntity, gstr.CaseSnake(newTableName)+".go") + entityContent = generateEntityContent( + in, + newTableName, + gstr.CaseCamel(newTableName), + generateStructDefinition(ctx, generateStructDefinitionInput{ + CGenDaoInternalInput: in, + TableName: tableName, + StructName: gstr.CaseCamel(newTableName), + FieldMap: fieldMap, + IsDo: false, + }), + ) + ) + err = gfile.PutContents(entityFilePath, strings.TrimSpace(entityContent)) + if err != nil { + mlog.Fatalf("writing content to '%s' failed: %v", entityFilePath, err) + } else { + utils.GoFmt(entityFilePath) + mlog.Print("generated:", entityFilePath) + } + } +} + +func generateEntityContent(in CGenDaoInternalInput, tableName, tableNameCamelCase, structDefine string) string { + entityContent := gstr.ReplaceByMap( + getTemplateFromPathOrDefault(in.TplDaoEntityPath, consts.TemplateGenDaoEntityContent), + g.MapStrStr{ + tplVarTableName: tableName, + tplVarPackageImports: getImportPartContent(structDefine, false), + tplVarTableNameCamelCase: tableNameCamelCase, + tplVarStructDefine: structDefine, + }) + entityContent = replaceDefaultVar(in, entityContent) + return entityContent +} diff --git a/server/internal/library/hggen/internal/cmd/gendao/gendao_structure.go b/server/internal/library/hggen/internal/cmd/gendao/gendao_structure.go new file mode 100644 index 0000000..65cdb81 --- /dev/null +++ b/server/internal/library/hggen/internal/cmd/gendao/gendao_structure.go @@ -0,0 +1,153 @@ +package gendao + +import ( + "bytes" + "context" + "fmt" + + "github.com/gogf/gf/v2/database/gdb" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/text/gregex" + "github.com/gogf/gf/v2/text/gstr" + "github.com/olekukonko/tablewriter" +) + +type generateStructDefinitionInput struct { + CGenDaoInternalInput + TableName string // Table name. + StructName string // Struct name. + FieldMap map[string]*gdb.TableField // Table field map. + IsDo bool // Is generating DTO struct. +} + +func generateStructDefinition(ctx context.Context, in generateStructDefinitionInput) string { + buffer := bytes.NewBuffer(nil) + array := make([][]string, len(in.FieldMap)) + names := sortFieldKeyForDao(in.FieldMap) + for index, name := range names { + field := in.FieldMap[name] + array[index] = generateStructFieldDefinition(ctx, field, in) + } + tw := tablewriter.NewWriter(buffer) + tw.SetBorder(false) + tw.SetRowLine(false) + tw.SetAutoWrapText(false) + tw.SetColumnSeparator("") + tw.AppendBulk(array) + tw.Render() + stContent := buffer.String() + // Let's do this hack of table writer for indent! + stContent = gstr.Replace(stContent, " #", "") + stContent = gstr.Replace(stContent, "` ", "`") + stContent = gstr.Replace(stContent, "``", "") + buffer.Reset() + buffer.WriteString(fmt.Sprintf("type %s struct {\n", in.StructName)) + if in.IsDo { + buffer.WriteString(fmt.Sprintf("g.Meta `orm:\"table:%s, do:true\"`\n", in.TableName)) + } + buffer.WriteString(stContent) + buffer.WriteString("}") + return buffer.String() +} + +// generateStructFieldForModel generates and returns the attribute definition for specified field. +func generateStructFieldDefinition( + ctx context.Context, field *gdb.TableField, in generateStructDefinitionInput, +) []string { + var ( + err error + typeName string + jsonTag = getJsonTagFromCase(field.Name, in.JsonCase) + ) + typeName, err = in.DB.CheckLocalTypeForField(ctx, field.Type, nil) + if err != nil { + panic(err) + } + switch typeName { + case gdb.LocalTypeDate, gdb.LocalTypeDatetime: + if in.StdTime { + typeName = "time.Time" + } else { + typeName = "*gtime.Time" + } + + case gdb.LocalTypeInt64Bytes: + typeName = "int64" + + case gdb.LocalTypeUint64Bytes: + typeName = "uint64" + + // Special type handle. + case gdb.LocalTypeJson, gdb.LocalTypeJsonb: + if in.GJsonSupport { + typeName = "*gjson.Json" + } else { + typeName = "string" + } + } + + var ( + tagKey = "`" + result = []string{ + " #" + gstr.CaseCamel(field.Name), + " #" + typeName, + } + descriptionTag = gstr.Replace(formatComment(field.Comment), `"`, `\"`) + ) + + result = append(result, " #"+fmt.Sprintf(tagKey+`json:"%s"`, jsonTag)) + result = append(result, " #"+fmt.Sprintf(`description:"%s"`+tagKey, descriptionTag)) + result = append(result, " #"+fmt.Sprintf(`// %s`, formatComment(field.Comment))) + + for k, v := range result { + if in.NoJsonTag { + v, _ = gregex.ReplaceString(`json:".+"`, ``, v) + } + if !in.DescriptionTag { + v, _ = gregex.ReplaceString(`description:".*"`, ``, v) + } + if in.NoModelComment { + v, _ = gregex.ReplaceString(`//.+`, ``, v) + } + result[k] = v + } + return result +} + +// formatComment formats the comment string to fit the golang code without any lines. +func formatComment(comment string) string { + comment = gstr.ReplaceByArray(comment, g.SliceStr{ + "\n", " ", + "\r", " ", + }) + comment = gstr.Replace(comment, `\n`, " ") + comment = gstr.Trim(comment) + return comment +} + +// getJsonTagFromCase call gstr.Case* function to convert the s to specified case. +func getJsonTagFromCase(str, caseStr string) string { + switch gstr.ToLower(caseStr) { + case gstr.ToLower("Camel"): + return gstr.CaseCamel(str) + + case gstr.ToLower("CamelLower"): + return gstr.CaseCamelLower(str) + + case gstr.ToLower("Kebab"): + return gstr.CaseKebab(str) + + case gstr.ToLower("KebabScreaming"): + return gstr.CaseKebabScreaming(str) + + case gstr.ToLower("Snake"): + return gstr.CaseSnake(str) + + case gstr.ToLower("SnakeFirstUpper"): + return gstr.CaseSnakeFirstUpper(str) + + case gstr.ToLower("SnakeScreaming"): + return gstr.CaseSnakeScreaming(str) + } + return str +} diff --git a/server/internal/library/hggen/internal/cmd/genservice/genservice.go b/server/internal/library/hggen/internal/cmd/genservice/genservice.go new file mode 100644 index 0000000..c5dc9d8 --- /dev/null +++ b/server/internal/library/hggen/internal/cmd/genservice/genservice.go @@ -0,0 +1,277 @@ +package genservice + +import ( + "context" + "fmt" + + "github.com/gogf/gf/v2/container/garray" + "github.com/gogf/gf/v2/container/gset" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gfile" + "github.com/gogf/gf/v2/os/gproc" + "github.com/gogf/gf/v2/os/gtime" + "github.com/gogf/gf/v2/text/gregex" + "github.com/gogf/gf/v2/text/gstr" + "github.com/gogf/gf/v2/util/gconv" + "github.com/gogf/gf/v2/util/gtag" + + "hotgo/internal/library/hggen/internal/utility/mlog" + "hotgo/internal/library/hggen/internal/utility/utils" +) + +const ( + CGenServiceConfig = `gfcli.hggen.service` + CGenServiceUsage = `gf hggen service [OPTION]` + CGenServiceBrief = `parse struct and associated functions from packages to generate service go file` + CGenServiceEg = ` +gf hggen service +gf hggen service -f Snake +` + CGenServiceBriefSrcFolder = `source folder path to be parsed. default: internal/logic` + CGenServiceBriefDstFolder = `destination folder path storing automatically generated go files. default: internal/service` + CGenServiceBriefFileNameCase = ` +destination file name storing automatically generated go files, cases are as follows: +| Case | Example | +|---------------- |--------------------| +| Lower | anykindofstring | +| Camel | AnyKindOfString | +| CamelLower | anyKindOfString | +| Snake | any_kind_of_string | default +| SnakeScreaming | ANY_KIND_OF_STRING | +| SnakeFirstUpper | rgb_code_md5 | +| Kebab | any-kind-of-string | +| KebabScreaming | ANY-KIND-OF-STRING | +` + CGenServiceBriefWatchFile = `used in file watcher, it re-generates all service go files only if given file is under srcFolder` + CGenServiceBriefStPattern = `regular expression matching struct name for generating service. default: ^s([A-Z]\\\\w+)$` + CGenServiceBriefPackages = `produce go files only for given source packages` + CGenServiceBriefImportPrefix = `custom import prefix to calculate import path for generated importing go file of logic` + CGenServiceBriefClear = `delete all generated go files that are not used any further` +) + +func init() { + gtag.Sets(g.MapStrStr{ + `CGenServiceConfig`: CGenServiceConfig, + `CGenServiceUsage`: CGenServiceUsage, + `CGenServiceBrief`: CGenServiceBrief, + `CGenServiceEg`: CGenServiceEg, + `CGenServiceBriefSrcFolder`: CGenServiceBriefSrcFolder, + `CGenServiceBriefDstFolder`: CGenServiceBriefDstFolder, + `CGenServiceBriefFileNameCase`: CGenServiceBriefFileNameCase, + `CGenServiceBriefWatchFile`: CGenServiceBriefWatchFile, + `CGenServiceBriefStPattern`: CGenServiceBriefStPattern, + `CGenServiceBriefPackages`: CGenServiceBriefPackages, + `CGenServiceBriefImportPrefix`: CGenServiceBriefImportPrefix, + `CGenServiceBriefClear`: CGenServiceBriefClear, + }) +} + +type ( + CGenService struct{} + CGenServiceInput struct { + g.Meta `name:"service" config:"{CGenServiceConfig}" usage:"{CGenServiceUsage}" brief:"{CGenServiceBrief}" eg:"{CGenServiceEg}"` + SrcFolder string `short:"s" name:"srcFolder" brief:"{CGenServiceBriefSrcFolder}" d:"internal/logic"` + DstFolder string `short:"d" name:"dstFolder" brief:"{CGenServiceBriefDstFolder}" d:"internal/service"` + DstFileNameCase string `short:"f" name:"dstFileNameCase" brief:"{CGenServiceBriefFileNameCase}" d:"Snake"` + WatchFile string `short:"w" name:"watchFile" brief:"{CGenServiceBriefWatchFile}"` + StPattern string `short:"a" name:"stPattern" brief:"{CGenServiceBriefStPattern}" d:"^s([A-Z]\\w+)$"` + Packages []string `short:"p" name:"packages" brief:"{CGenServiceBriefPackages}"` + ImportPrefix string `short:"i" name:"importPrefix" brief:"{CGenServiceBriefImportPrefix}"` + Clear bool `short:"l" name:"clear" brief:"{CGenServiceBriefClear}" orphan:"true"` + } + CGenServiceOutput struct{} +) + +const ( + genServiceFileLockSeconds = 10 +) + +func (c CGenService) Service(ctx context.Context, in CGenServiceInput) (out *CGenServiceOutput, err error) { + // File lock to avoid multiple processes. + var ( + flockFilePath = gfile.Temp("gf.cli.hggen.service.lock") + flockContent = gfile.GetContents(flockFilePath) + ) + if flockContent != "" { + if gtime.Timestamp()-gconv.Int64(flockContent) < genServiceFileLockSeconds { + // If another "hggen service" process is running, it just exits. + mlog.Debug(`another "hggen service" process is running, exit`) + return + } + } + defer gfile.Remove(flockFilePath) + _ = gfile.PutContents(flockFilePath, gtime.TimestampStr()) + + in.SrcFolder = gstr.TrimRight(in.SrcFolder, `\/`) + in.SrcFolder = gstr.Replace(in.SrcFolder, "\\", "/") + in.WatchFile = gstr.TrimRight(in.WatchFile, `\/`) + in.WatchFile = gstr.Replace(in.WatchFile, "\\", "/") + + // Watch file handling. + if in.WatchFile != "" { + // It works only if given WatchFile is in SrcFolder. + var ( + watchFileDir = gfile.Dir(in.WatchFile) + srcFolderDir = gfile.Dir(watchFileDir) + ) + mlog.Debug("watchFileDir:", watchFileDir) + mlog.Debug("logicFolderDir:", srcFolderDir) + if !gstr.HasSuffix(gstr.Replace(srcFolderDir, `\`, `/`), in.SrcFolder) { + mlog.Printf(`ignore watch file "%s", not in source path "%s"`, in.WatchFile, in.SrcFolder) + return + } + var newWorkingDir = gfile.Dir(gfile.Dir(srcFolderDir)) + if err = gfile.Chdir(newWorkingDir); err != nil { + mlog.Fatalf(`%+v`, err) + } + mlog.Debug("Chdir:", newWorkingDir) + _ = gfile.Remove(flockFilePath) + var command = fmt.Sprintf( + `%s hggen service -packages=%s`, + gfile.SelfName(), gfile.Basename(watchFileDir), + ) + err = gproc.ShellRun(ctx, command) + return + } + + if !gfile.Exists(in.SrcFolder) { + mlog.Fatalf(`source folder path "%s" does not exist`, in.SrcFolder) + } + + if in.ImportPrefix == "" { + if !gfile.Exists("go.mod") { + mlog.Fatal("ImportPrefix is empty and go.mod does not exist in current working directory") + } + var ( + goModContent = gfile.GetContents("go.mod") + match, _ = gregex.MatchString(`^module\s+(.+)\s*`, goModContent) + ) + if len(match) > 1 { + in.ImportPrefix = fmt.Sprintf(`%s/%s`, gstr.Trim(match[1]), gstr.Replace(in.SrcFolder, `\`, `/`)) + } + } + + var ( + isDirty bool // Temp boolean. + files []string // Temp file array. + fileContent string // Temp file content for handling go file. + initImportSrcPackages []string // Used for generating logic.go. + inputPackages = in.Packages // Custom packages. + dstPackageName = gstr.ToLower(gfile.Basename(in.DstFolder)) // Package name for generated go files. + generatedDstFilePathSet = gset.NewStrSet() // All generated file path set. + ) + // The first level folders. + srcFolderPaths, err := gfile.ScanDir(in.SrcFolder, "*", false) + if err != nil { + return nil, err + } + for _, srcFolderPath := range srcFolderPaths { + if !gfile.IsDir(srcFolderPath) { + continue + } + // Only retrieve sub files, no recursively. + if files, err = gfile.ScanDir(srcFolderPath, "*.go", false); err != nil { + return nil, err + } + if len(files) == 0 { + continue + } + var ( + // StructName => FunctionDefinitions + srcPkgInterfaceMap = make(map[string]*garray.StrArray) + srcImportedPackages = garray.NewSortedStrArray().SetUnique(true) + srcPackageName = gfile.Basename(srcFolderPath) + ok bool + dstFilePath = gfile.Join(in.DstFolder, + c.getDstFileNameCase(srcPackageName, in.DstFileNameCase)+".go", + ) + ) + generatedDstFilePathSet.Add(dstFilePath) + for _, file := range files { + fileContent = gfile.GetContents(file) + // Calculate imported packages of source go files. + err = c.calculateImportedPackages(fileContent, srcImportedPackages) + if err != nil { + return nil, err + } + // Calculate functions and interfaces for service generating. + err = c.calculateInterfaceFunctions(in, fileContent, srcPkgInterfaceMap, dstPackageName) + if err != nil { + return nil, err + } + } + initImportSrcPackages = append( + initImportSrcPackages, + fmt.Sprintf(`%s/%s`, in.ImportPrefix, srcPackageName), + ) + // Ignore source packages if input packages given. + if len(inputPackages) > 0 && !gstr.InArray(inputPackages, srcPackageName) { + mlog.Debugf( + `ignore source package "%s" as it is not in desired packages: %+v`, + srcPackageName, inputPackages, + ) + continue + } + // Generating service go file for logic. + if ok, err = c.generateServiceFile(generateServiceFilesInput{ + CGenServiceInput: in, + SrcStructFunctions: srcPkgInterfaceMap, + SrcImportedPackages: srcImportedPackages.Slice(), + SrcPackageName: srcPackageName, + DstPackageName: dstPackageName, + DstFilePath: dstFilePath, + }); err != nil { + return + } + if ok { + isDirty = true + } + } + + if in.Clear { + files, err = gfile.ScanDirFile(in.DstFolder, "*.go", false) + if err != nil { + return nil, err + } + var relativeFilePath string + for _, file := range files { + relativeFilePath = gstr.SubStrFromR(file, in.DstFolder) + if !generatedDstFilePathSet.Contains(relativeFilePath) && utils.IsFileDoNotEdit(relativeFilePath) { + mlog.Printf(`remove no longer used service file: %s`, relativeFilePath) + if err = gfile.Remove(file); err != nil { + return nil, err + } + } + } + } + + if isDirty { + // Generate initialization go file. + if len(initImportSrcPackages) > 0 { + if err = c.generateInitializationFile(in, initImportSrcPackages); err != nil { + return + } + } + + // Replace v1 to v2 for GoFrame. + if err = c.replaceGeneratedServiceContentGFV2(in); err != nil { + return nil, err + } + mlog.Printf(`gofmt go files in "%s"`, in.DstFolder) + utils.GoFmt(in.DstFolder) + } + + mlog.Print(`done!`) + return +} + +func (c CGenService) replaceGeneratedServiceContentGFV2(in CGenServiceInput) (err error) { + return gfile.ReplaceDirFunc(func(path, content string) string { + if gstr.Contains(content, `"github.com/gogf/gf`) && !gstr.Contains(content, `"github.com/gogf/gf/v2`) { + content = gstr.Replace(content, `"github.com/gogf/gf"`, `"github.com/gogf/gf/v2"`) + content = gstr.Replace(content, `"github.com/gogf/gf/`, `"github.com/gogf/gf/v2/`) + return content + } + return content + }, in.DstFolder, "*.go", false) +} diff --git a/server/internal/library/hggen/internal/cmd/genservice/genservice_calculate.go b/server/internal/library/hggen/internal/cmd/genservice/genservice_calculate.go new file mode 100644 index 0000000..b3e8f4e --- /dev/null +++ b/server/internal/library/hggen/internal/cmd/genservice/genservice_calculate.go @@ -0,0 +1,105 @@ +package genservice + +import ( + "go/parser" + "go/token" + + "github.com/gogf/gf/v2/container/garray" + "github.com/gogf/gf/v2/text/gregex" + "github.com/gogf/gf/v2/text/gstr" +) + +func (c CGenService) calculateImportedPackages(fileContent string, srcImportedPackages *garray.SortedStrArray) (err error) { + f, err := parser.ParseFile(token.NewFileSet(), "", fileContent, parser.ImportsOnly) + if err != nil { + return err + } + for _, s := range f.Imports { + if s.Path != nil { + if s.Name != nil { + // If it has alias, and it is not `_`. + if pkgAlias := s.Name.String(); pkgAlias != "_" { + srcImportedPackages.Add(pkgAlias + " " + s.Path.Value) + } + } else { + // no alias + srcImportedPackages.Add(s.Path.Value) + } + } + } + return nil +} + +func (c CGenService) calculateInterfaceFunctions( + in CGenServiceInput, fileContent string, srcPkgInterfaceMap map[string]*garray.StrArray, dstPackageName string, +) (err error) { + var ( + ok bool + matches [][]string + srcPkgInterfaceFuncArray *garray.StrArray + ) + // calculate struct name and its functions according function definitions. + matches, err = gregex.MatchAllString(`func \((.+?)\) ([\s\S]+?) {`, fileContent) + if err != nil { + return err + } + for _, match := range matches { + var ( + structName string + structMatch []string + funcReceiver = gstr.Trim(match[1]) + receiverArray = gstr.SplitAndTrim(funcReceiver, " ") + functionHead = gstr.Trim(gstr.Replace(match[2], "\n", "")) + ) + if len(receiverArray) > 1 { + structName = receiverArray[1] + } else { + structName = receiverArray[0] + } + structName = gstr.Trim(structName, "*") + + // Case of: + // Xxx(\n ctx context.Context, req *v1.XxxReq,\n) -> Xxx(ctx context.Context, req *v1.XxxReq) + functionHead = gstr.Replace(functionHead, `,)`, `)`) + functionHead, _ = gregex.ReplaceString(`\(\s+`, `(`, functionHead) + functionHead, _ = gregex.ReplaceString(`\s{2,}`, ` `, functionHead) + if !gstr.IsLetterUpper(functionHead[0]) { + continue + } + // Match and pick the struct name from receiver. + if structMatch, err = gregex.MatchString(in.StPattern, structName); err != nil { + return err + } + if len(structMatch) < 1 { + continue + } + structName = gstr.CaseCamel(structMatch[1]) + if srcPkgInterfaceFuncArray, ok = srcPkgInterfaceMap[structName]; !ok { + srcPkgInterfaceMap[structName] = garray.NewStrArray() + srcPkgInterfaceFuncArray = srcPkgInterfaceMap[structName] + } + srcPkgInterfaceFuncArray.Append(functionHead) + } + // calculate struct name according type definitions. + matches, err = gregex.MatchAllString(`type (.+) struct\s*{`, fileContent) + if err != nil { + return err + } + for _, match := range matches { + var ( + structName string + structMatch []string + ) + if structMatch, err = gregex.MatchString(in.StPattern, match[1]); err != nil { + return err + } + if len(structMatch) < 1 { + continue + } + structName = gstr.CaseCamel(structMatch[1]) + if srcPkgInterfaceFuncArray, ok = srcPkgInterfaceMap[structName]; !ok { + srcPkgInterfaceMap[structName] = garray.NewStrArray() + } + } + return nil +} diff --git a/server/internal/library/hggen/internal/cmd/genservice/genservice_generate.go b/server/internal/library/hggen/internal/cmd/genservice/genservice_generate.go new file mode 100644 index 0000000..73be120 --- /dev/null +++ b/server/internal/library/hggen/internal/cmd/genservice/genservice_generate.go @@ -0,0 +1,199 @@ +package genservice + +import ( + "fmt" + + "github.com/gogf/gf/v2/container/garray" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gfile" + "github.com/gogf/gf/v2/text/gregex" + "github.com/gogf/gf/v2/text/gstr" + + "hotgo/internal/library/hggen/internal/consts" + "hotgo/internal/library/hggen/internal/utility/mlog" + "hotgo/internal/library/hggen/internal/utility/utils" +) + +type generateServiceFilesInput struct { + CGenServiceInput + DstFilePath string // Absolute file path for generated service go file. + SrcStructFunctions map[string]*garray.StrArray + SrcImportedPackages []string + SrcPackageName string + DstPackageName string +} + +func (c CGenService) generateServiceFile(in generateServiceFilesInput) (ok bool, err error) { + var ( + generatedContent string + allFuncArray = garray.NewStrArray() // Used for check whether interface dirty, going to change file content. + importedPackagesContent = fmt.Sprintf( + "import (\n%s\n)", gstr.Join(in.SrcImportedPackages, "\n"), + ) + ) + generatedContent += gstr.ReplaceByMap(consts.TemplateGenServiceContentHead, g.MapStrStr{ + "{Imports}": importedPackagesContent, + "{PackageName}": in.DstPackageName, + }) + + // Type definitions. + generatedContent += "type(" + generatedContent += "\n" + for structName, funcArray := range in.SrcStructFunctions { + allFuncArray.Append(funcArray.Slice()...) + generatedContent += gstr.Trim(gstr.ReplaceByMap(consts.TemplateGenServiceContentInterface, g.MapStrStr{ + "{InterfaceName}": "I" + structName, + "{FuncDefinition}": funcArray.Join("\n\t"), + })) + generatedContent += "\n" + } + generatedContent += ")" + generatedContent += "\n" + + // Generating variable and register definitions. + var ( + variableContent string + generatingInterfaceCheck string + ) + // Variable definitions. + for structName, _ := range in.SrcStructFunctions { + generatingInterfaceCheck = fmt.Sprintf(`[^\w\d]+%s.I%s[^\w\d]`, in.DstPackageName, structName) + if gregex.IsMatchString(generatingInterfaceCheck, generatedContent) { + continue + } + variableContent += gstr.Trim(gstr.ReplaceByMap(consts.TemplateGenServiceContentVariable, g.MapStrStr{ + "{StructName}": structName, + "{InterfaceName}": "I" + structName, + })) + variableContent += "\n" + } + if variableContent != "" { + generatedContent += "var(" + generatedContent += "\n" + generatedContent += variableContent + generatedContent += ")" + generatedContent += "\n" + } + // Variable register function definitions. + for structName, _ := range in.SrcStructFunctions { + generatingInterfaceCheck = fmt.Sprintf(`[^\w\d]+%s.I%s[^\w\d]`, in.DstPackageName, structName) + if gregex.IsMatchString(generatingInterfaceCheck, generatedContent) { + continue + } + generatedContent += gstr.Trim(gstr.ReplaceByMap(consts.TemplateGenServiceContentRegister, g.MapStrStr{ + "{StructName}": structName, + "{InterfaceName}": "I" + structName, + })) + generatedContent += "\n\n" + } + + // Replace empty braces that have new line. + generatedContent, _ = gregex.ReplaceString(`{[\s\t]+}`, `{}`, generatedContent) + + // Remove package name calls of `dstPackageName` in produced codes. + generatedContent, _ = gregex.ReplaceString(fmt.Sprintf(`\*{0,1}%s\.`, in.DstPackageName), ``, generatedContent) + + // Write file content to disk. + if gfile.Exists(in.DstFilePath) { + if !utils.IsFileDoNotEdit(in.DstFilePath) { + mlog.Printf(`ignore file as it is manually maintained: %s`, in.DstFilePath) + return false, nil + } + if !c.isToGenerateServiceGoFile(in.DstPackageName, in.DstFilePath, allFuncArray) { + mlog.Printf(`not dirty, ignore generating service go file: %s`, in.DstFilePath) + return false, nil + } + } + mlog.Printf(`generating service go file: %s`, in.DstFilePath) + if err = gfile.PutContents(in.DstFilePath, generatedContent); err != nil { + return true, err + } + return true, nil +} + +// isToGenerateServiceGoFile checks and returns whether the service content dirty. +func (c CGenService) isToGenerateServiceGoFile(dstPackageName, filePath string, funcArray *garray.StrArray) bool { + var ( + fileContent = gfile.GetContents(filePath) + generatedFuncArray = garray.NewSortedStrArrayFrom(funcArray.Slice()) + contentFuncArray = garray.NewSortedStrArray() + ) + if fileContent == "" { + return true + } + matches, _ := gregex.MatchAllString(`\s+interface\s+{([\s\S]+?)}`, fileContent) + for _, match := range matches { + contentFuncArray.Append(gstr.SplitAndTrim(match[1], "\n")...) + } + if generatedFuncArray.Len() != contentFuncArray.Len() { + mlog.Debugf( + `dirty, generatedFuncArray.Len()[%d] != contentFuncArray.Len()[%d]`, + generatedFuncArray.Len(), contentFuncArray.Len(), + ) + return true + } + var funcDefinition string + for i := 0; i < generatedFuncArray.Len(); i++ { + funcDefinition, _ = gregex.ReplaceString( + fmt.Sprintf(`\*{0,1}%s\.`, dstPackageName), ``, generatedFuncArray.At(i), + ) + if funcDefinition != contentFuncArray.At(i) { + mlog.Debugf(`dirty, %s != %s`, funcDefinition, contentFuncArray.At(i)) + return true + } + } + return false +} + +func (c CGenService) generateInitializationFile(in CGenServiceInput, importSrcPackages []string) (err error) { + var ( + srcPackageName = gstr.ToLower(gfile.Basename(in.SrcFolder)) + srcFilePath = gfile.Join(in.SrcFolder, srcPackageName+".go") + srcImports string + generatedContent string + ) + if !utils.IsFileDoNotEdit(srcFilePath) { + mlog.Debugf(`ignore file as it is manually maintained: %s`, srcFilePath) + return nil + } + for _, importSrcPackage := range importSrcPackages { + srcImports += fmt.Sprintf(`%s_ "%s"%s`, "\t", importSrcPackage, "\n") + } + generatedContent = gstr.ReplaceByMap(consts.TemplateGenServiceLogicContent, g.MapStrStr{ + "{PackageName}": srcPackageName, + "{Imports}": srcImports, + }) + mlog.Printf(`generating init go file: %s`, srcFilePath) + if err = gfile.PutContents(srcFilePath, generatedContent); err != nil { + return err + } + utils.GoFmt(srcFilePath) + return nil +} + +// getDstFileNameCase call gstr.Case* function to convert the s to specified case. +func (c CGenService) getDstFileNameCase(str, caseStr string) string { + switch gstr.ToLower(caseStr) { + case gstr.ToLower("Lower"): + return gstr.ToLower(str) + + case gstr.ToLower("Camel"): + return gstr.CaseCamel(str) + + case gstr.ToLower("CamelLower"): + return gstr.CaseCamelLower(str) + + case gstr.ToLower("Kebab"): + return gstr.CaseKebab(str) + + case gstr.ToLower("KebabScreaming"): + return gstr.CaseKebabScreaming(str) + + case gstr.ToLower("SnakeFirstUpper"): + return gstr.CaseSnakeFirstUpper(str) + + case gstr.ToLower("SnakeScreaming"): + return gstr.CaseSnakeScreaming(str) + } + return gstr.CaseSnake(str) +} diff --git a/server/internal/library/hggen/internal/consts/consts.go b/server/internal/library/hggen/internal/consts/consts.go new file mode 100644 index 0000000..ab72444 --- /dev/null +++ b/server/internal/library/hggen/internal/consts/consts.go @@ -0,0 +1,7 @@ +package consts + +const ( + // DoNotEditKey is used in generated files, + // which marks the files will be overwritten by CLI tool. + DoNotEditKey = `DO NOT EDIT` +) diff --git a/server/internal/library/hggen/internal/consts/consts_gen_dao_template_dao.go b/server/internal/library/hggen/internal/consts/consts_gen_dao_template_dao.go new file mode 100644 index 0000000..e2d3ec3 --- /dev/null +++ b/server/internal/library/hggen/internal/consts/consts_gen_dao_template_dao.go @@ -0,0 +1,108 @@ +package consts + +const TemplateGenDaoIndexContent = ` +// ================================================================================= +// This is auto-generated by GoFrame CLI tool only once. Fill this file as you wish. +// ================================================================================= + +package dao + +import ( + "{TplImportPrefix}/internal" +) + +// internal{TplTableNameCamelCase}Dao is internal type for wrapping internal DAO implements. +type internal{TplTableNameCamelCase}Dao = *internal.{TplTableNameCamelCase}Dao + +// {TplTableNameCamelLowerCase}Dao is the data access object for table {TplTableName}. +// You can define custom methods on it to extend its functionality as you wish. +type {TplTableNameCamelLowerCase}Dao struct { + internal{TplTableNameCamelCase}Dao +} + +var ( + // {TplTableNameCamelCase} is globally public accessible object for table {TplTableName} operations. + {TplTableNameCamelCase} = {TplTableNameCamelLowerCase}Dao{ + internal.New{TplTableNameCamelCase}Dao(), + } +) + +// Fill with you ideas below. + +` + +const TemplateGenDaoInternalContent = ` +// ========================================================================== +// Code generated by GoFrame CLI tool. DO NOT EDIT. {TplCreatedAtDatetimeStr} +// ========================================================================== + +package internal + +import ( + "context" + + "github.com/gogf/gf/v2/database/gdb" + "github.com/gogf/gf/v2/frame/g" +) + +// {TplTableNameCamelCase}Dao is the data access object for table {TplTableName}. +type {TplTableNameCamelCase}Dao struct { + table string // table is the underlying table name of the DAO. + group string // group is the database configuration group name of current DAO. + columns {TplTableNameCamelCase}Columns // columns contains all the column names of Table for convenient usage. +} + +// {TplTableNameCamelCase}Columns defines and stores column names for table {TplTableName}. +type {TplTableNameCamelCase}Columns struct { + {TplColumnDefine} +} + +// {TplTableNameCamelLowerCase}Columns holds the columns for table {TplTableName}. +var {TplTableNameCamelLowerCase}Columns = {TplTableNameCamelCase}Columns{ + {TplColumnNames} +} + +// New{TplTableNameCamelCase}Dao creates and returns a new DAO object for table data access. +func New{TplTableNameCamelCase}Dao() *{TplTableNameCamelCase}Dao { + return &{TplTableNameCamelCase}Dao{ + group: "{TplGroupName}", + table: "{TplTableName}", + columns: {TplTableNameCamelLowerCase}Columns, + } +} + +// DB retrieves and returns the underlying raw database management object of current DAO. +func (dao *{TplTableNameCamelCase}Dao) DB() gdb.DB { + return g.DB(dao.group) +} + +// Table returns the table name of current dao. +func (dao *{TplTableNameCamelCase}Dao) Table() string { + return dao.table +} + +// Columns returns all column names of current dao. +func (dao *{TplTableNameCamelCase}Dao) Columns() {TplTableNameCamelCase}Columns { + return dao.columns +} + +// Group returns the configuration group name of database of current dao. +func (dao *{TplTableNameCamelCase}Dao) Group() string { + return dao.group +} + +// Ctx creates and returns the Model for current DAO, It automatically sets the context for current operation. +func (dao *{TplTableNameCamelCase}Dao) Ctx(ctx context.Context) *gdb.Model { + return dao.DB().Model(dao.table).Safe().Ctx(ctx) +} + +// Transaction wraps the transaction logic using function f. +// It rollbacks the transaction and returns the error from function f if it returns non-nil error. +// It commits the transaction and returns nil if function f returns nil. +// +// Note that, you should not Commit or Rollback the transaction in function f +// as it is automatically handled by this function. +func (dao *{TplTableNameCamelCase}Dao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) { + return dao.Ctx(ctx).Transaction(ctx, f) +} +` diff --git a/server/internal/library/hggen/internal/consts/consts_gen_dao_template_do.go b/server/internal/library/hggen/internal/consts/consts_gen_dao_template_do.go new file mode 100644 index 0000000..4847adc --- /dev/null +++ b/server/internal/library/hggen/internal/consts/consts_gen_dao_template_do.go @@ -0,0 +1,14 @@ +package consts + +const TemplateGenDaoDoContent = ` +// ================================================================================= +// Code generated by GoFrame CLI tool. DO NOT EDIT. {TplCreatedAtDatetimeStr} +// ================================================================================= + +package do + +{TplPackageImports} + +// {TplTableNameCamelCase} is the golang structure of table {TplTableName} for DAO operations like Where/Data. +{TplStructDefine} +` diff --git a/server/internal/library/hggen/internal/consts/consts_gen_dao_template_entity.go b/server/internal/library/hggen/internal/consts/consts_gen_dao_template_entity.go new file mode 100644 index 0000000..49a3311 --- /dev/null +++ b/server/internal/library/hggen/internal/consts/consts_gen_dao_template_entity.go @@ -0,0 +1,14 @@ +package consts + +const TemplateGenDaoEntityContent = ` +// ================================================================================= +// Code generated by GoFrame CLI tool. DO NOT EDIT. {TplCreatedAtDatetimeStr} +// ================================================================================= + +package entity + +{TplPackageImports} + +// {TplTableNameCamelCase} is the golang structure for table {TplTableName}. +{TplStructDefine} +` diff --git a/server/internal/library/hggen/internal/consts/consts_gen_pbentity_template.go b/server/internal/library/hggen/internal/consts/consts_gen_pbentity_template.go new file mode 100644 index 0000000..bbb184a --- /dev/null +++ b/server/internal/library/hggen/internal/consts/consts_gen_pbentity_template.go @@ -0,0 +1,17 @@ +package consts + +const TemplatePbEntityMessageContent = ` +// ========================================================================== +// Code generated by GoFrame CLI tool. DO NOT EDIT. +// ========================================================================== + +syntax = "proto3"; + +package {PackageName}; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +{OptionContent} + +{EntityMessage} +` diff --git a/server/internal/library/hggen/internal/consts/consts_gen_service_template.go b/server/internal/library/hggen/internal/consts/consts_gen_service_template.go new file mode 100644 index 0000000..1ab216a --- /dev/null +++ b/server/internal/library/hggen/internal/consts/consts_gen_service_template.go @@ -0,0 +1,35 @@ +package consts + +const TemplateGenServiceContentHead = ` +// ================================================================================ +// Code generated by GoFrame CLI tool. DO NOT EDIT. +// You can delete these comments if you wish manually maintain this interface file. +// ================================================================================ + +package {PackageName} + +{Imports} +` + +const TemplateGenServiceContentInterface = ` +{InterfaceName} interface { + {FuncDefinition} +} +` + +const TemplateGenServiceContentVariable = ` +local{StructName} {InterfaceName} +` + +const TemplateGenServiceContentRegister = ` +func {StructName}() {InterfaceName} { + if local{StructName} == nil { + panic("implement not found for interface {InterfaceName}, forgot register?") + } + return local{StructName} +} + +func Register{StructName}(i {InterfaceName}) { + local{StructName} = i +} +` diff --git a/server/internal/library/hggen/internal/consts/consts_gen_service_template_logic.go b/server/internal/library/hggen/internal/consts/consts_gen_service_template_logic.go new file mode 100644 index 0000000..1479834 --- /dev/null +++ b/server/internal/library/hggen/internal/consts/consts_gen_service_template_logic.go @@ -0,0 +1,13 @@ +package consts + +const TemplateGenServiceLogicContent = ` +// ========================================================================== +// Code generated by GoFrame CLI tool. DO NOT EDIT. +// ========================================================================== + +package {PackageName} + +import( + {Imports} +) +` diff --git a/server/internal/library/hggen/internal/packed/packed.go b/server/internal/library/hggen/internal/packed/packed.go new file mode 100644 index 0000000..e20ab1e --- /dev/null +++ b/server/internal/library/hggen/internal/packed/packed.go @@ -0,0 +1 @@ +package packed diff --git a/server/internal/library/hggen/internal/packed/template-mono.go b/server/internal/library/hggen/internal/packed/template-mono.go new file mode 100644 index 0000000..62fabb3 --- /dev/null +++ b/server/internal/library/hggen/internal/packed/template-mono.go @@ -0,0 +1,9 @@ +package packed + +import "github.com/gogf/gf/v2/os/gres" + +func init() { + if err := gres.Add("H4sIAAAAAAAC/+x9BVRVW/f9oVNCSpGWrgtINxLSKaV0g3Q3Bhg0iIBS0iASgghIS4k0SIMgSHe3/Mf3/b7n4xrIveD7j184xnsMHYw191z7nH3OWXPtPRVl4OBxAWQAGUA3cFUFjvwhAlAAR2MrW0t9R2MmKxtrGxCzqbmjvqOjvbmBk6Oxg+p1BAAmWs/HsFP5fWOzDKiFkbmjRapZBiQnq1DotIUEDwCHh4oySMhdiqy8RAAA4AMA8Gu4Cz+FMze1trE3/gZF2VJtdZ8FHbF9jwsVyeORdRWAR6k2BvsKj8/xQPogd2l1WstdXSj/nnsXpyVqXe49z4GQCPj+j/dDzJ/cEyF/ynuDZTrIQPVCbqDFY6V5O7SnjjdL2tm9xNOnl7NY5YkDV3UNBqMrNpcErFBpqcJXiHj1GLyoLk/YfUX7i0tfWDyJFwAAz4/lQvADF2VxETE5cWY5sW9UlNVs21wYpJvlVJGlWpjeSzFKqdo2gZSXW9qaMKWZ3k/Bfsuf5UJFBDUAAGRHMIEfMLF/wNS3tf2G9q84R3/713FIfhYHpG9rzvTXv/426I8JofltUJCc/i1jE3PLv6Ojrm5hPnJZQVdWVFTMU1XsoG2VbGlUoqVV6Piy6rDudA7D1tEZQYYuNSWNKnIygtaupBhxe/ta/b0UkbFHCE/fUmWWIPA8osqU1mL+2vopR4SbsoRtLdxBWkUZb319fWN9/cr5xwUbj9ccHNbW1u0LYGD+Svcnso83HAEA8D+WEe3vGf045xGhIgGDLFh+Szt4mO7W9lzrWM6l5O35icOfUp/UB1tIGUqMh6/3EvDYnQ9Xnm6sX/u01bINx7lPwYnt/E6oke4T7bkO+s9+CHPD+CNS3gjXAupity08LEQp+e2kOfc69VawqfvjRw1Yzr0pyQjCZtxm3UZVub+Igqe1Pua5m+/H1jCRusQUg3jpA2VhD+uLzOfGd3ZiOabtNsq8tQUqCTWmNDzfD8u6xA62Bxlw2Mb7m/nhNH96++n5xLRUTo49bzN7nyYdPE4JmnWrqhnXEnZ++OueYUvcfLbmZtfbD4z43g26r83YckcjjtSjj/dvULqSiq6noaYVOWy6B0txPoj0z5FHcHigjWHYfxhjVVDp+WLm0k1iuduH7e6EFKRLTw40IlS25TAJVBtKHNwpP9xoONiWD5fKlK1MgI9b5t73Csg0j/SB/WuSytCUBSRgACAF9rhrmeL3k6Rvaw7FTUJ1osAgZ1Yo7hXmk8YGmRlbWtowm9p8A7FseSV/jxUdfrTEG7UJhzFIrxnHUV/fMGvHLvZhtG9t5g3yT8RK1CnBNMPDvW4epnj8AgDunBX3p+rg1646uXvZmu1pdGao6Q2hiDHwVMVIyzIE/JLZC5qCdrsaMeME846HlK2u8/M8yu8rz101jQvD8KmudfAISBnzdXi6Uizmbo6mcrFr5a3Iol/w8oHuMy5KBuowrVaS/JtUEVdu5p4336UldffaQflrDnfbSxZfAAAwfWyqL/8+HWb6hregSDToZJFBhjbWJuamzG76VpbfUHDrq1FryNCB9lJd7GknWlGNRBbnvsy8hFBOpzvs2OeCD7xWNofgl9pQ0z5wKX4WCq0KJtZsemRwuzPzBboHV3Xvy9dUvi+vydG4Z/NERLzyk9++tGp+RdntXO7eFcFJ14Tkpob618UMf2XqvRmNqQUAALbHZuoEi6y5taOxvbW+JRSXPMPJo4MMrYygmA82yBD+9d/Ri99RsdpimAWLX0b31bQRUsNdknMllO2T4co6M0iWC4UU9Nm10t7nIraW6lYZGhOXKE2c2fn4Lk7pTiNPFpstGMorJ3Z9aH7EUK6aXMjW2tu7MMWdbqZtn+WUJeCTn6VHOdcsB6NSuFjY43kz3N/JQetraapyMwzDcENto0ErfkHlYcONtie+rH0CmSlYkoGLhYLJ80hlz01dbw97eUqzUoB8XivrsnbC61G4c95Tm70mcq0LaUyJPxsnWlmJfn4lMTRWamB9rX4Nfq7egauXq/gNuyDxEnAxNbRKe3Av+w4J73mY81KdNSRX8aJJqoJGYmx6uSz2Kcyb4l6ZcO8PB3/O4eCO71STevZlNnHA03Ol6fw0F6rTg9U4Vwkd2MZH0vJaGYfLcx1rnRwvP81dSqDzZWd/+wjUa5QeFBJ61QkHcVOEweni67fTOofn/rrm2vjYL8vAAMDVY1dYZkjmzMbawdEBiguDG2KQ//w4ennQS8q2yssqqEq2tjEw003+/XpVRYDejAcAAOaxlz8bZGNwtLextDS2h4IsH1RAP3kWBL+yrmFBFzNdY9BQcA7VkNySh/Fv1WTLos8mfCLmlxSEK/K1XDEWlpgXmaaCLzQqey8/vt1O+TOWJJAWrYnLZzbgP5PEJNy1KyU0tVVtxx5/YLZvFml6xT/IaL8SJTX6nuqAuLylZWv9pPmWzJxepBeaQJVB6iePZKwLuu3DQr03C9f5uuD0lJ7G6dgA47FEzhhcWV3j2rzpBJ6OJBhZ1krTgTHGQkOXr/Fu9aE8qcywDBObNZxZQQ0iDXaMz5zOsuWfTmVefHD5SXNmu224FF1KjvatOI13DSqDopdTCiiLqxWAv2ZQWzRzbgoAAA2Ys1rAjPRtoJg6dsgQ/v2Bc8vY+O+39G/voP+KhvDbJZkJAjxLG1NzQyg4cUKK8Y+ysrIxMrb8w6z+jXFqViwQIxpBcwnyQAFzam7sEIMaWzuaO7pBwU8ASqhTc4TkQWerb3jL2OgPP+j+C+Q/P372oAM6Mum0bn9bJNcQLbpxfvuYA0EwAgdje2dzQ+M/zPM/KBBO4I+Y1L/HtNI3tz6aycBgEdR3LFjivXEqvjnh4ldGBRw/IxjJdl2Yl70al0H2SZu+uNNvsG2qXJ0ulk68JgKBzIEpgBBtuHqdbi6T2Is2MDMFhcM+Tmq8ShxVOVuSAzMBr8BMy9dEK8xuHuYtSOzZ8ttq+2rc9a9rK7mUy3334KKf+bqUOU3CaI922NAFjHC9yqpdGmvhRVJwRfiLrIgrllQoAACzp/0UsNK3NjcxdnCE4lOA+eTR//PxBMU1wgsxyE8/1NgDlVBhWdHFDh38yZHavaXlP+PBnpuT7otMuZkLwnOpMHFtlgkwJ4c3y9Z/ehcv8hqdH4rZMMbCnkqDTJXLwt5C3IIGrdBbK3yCXQXq1Tcfwt/KOSBrDPtEKQ3ywF+Wv0yxi/jXzOhmYgSbAADgc2a5MzK2tbRxg2KCuCEGAd1ycnC0sTJ3N4YCTuAUcCADfQdolhC502L+51+tjK0dwa8Yx5By+QYW9Not/rpyYb+3JqIGRtO11spojLGYdYgfi67B+N/4eCin1LrVRczhNmatLANfaOJC6uD6OF+C37brrTEzCRtf9hdcOEVaB/gti8cO1tKtMIruJoWfDfW+kmqMsze3ylGFiTfDsKjJ6+wpMD5O722AmwqHn28b+Zg4EBoPcGFV6ZjRdo9R+u2Rc3otiYlR0/lU3jZyL4n2yY9y6U59kcI0piNkXoBV8a0aZisfk5ULAIApzHEpUzx1yv76q76juY01eNYYP7w6944FC6H9a9oyLKv0gzJYgXI7wemmFe0vDhR+M3SSOylRXIIdcWl0H4cfcHhjB8zEJGgskZgXGXrrf9Gkd5L6bJfNb0ZPbO0BWqZU0cjLduacfmhqnSVb3YGJv09HUfntQVaH3Fj/r/vM5tjrQ/rUZP/z4AGnqRXEigorgi6+F0tBoNEu3+l+B6FOsNnbyNb0PJt+G4gvSG9re6lGJRdUm9HjF8LgZTHiS/owGV9RdDYt82qz9iVfbM5IsTVtHHaiCUfrsHFf46TlhavNzSSRapYE3p96S1LqL5V8lYfjk77x/uPs15HnNt9ox5nFhjoDAJB07K0ochraNs7G9pb6bg5QLAFSZ4ELMjJ2Nra0sYViOdA4S/z/PEis9G3BJ98yRE6mRhjr/tIOnqhf0oP6tA41RP+7JHNyZQoFj/McN2uGpRJHQ6Lqr59zjd2650Livxmn8qb6MlHWmF65iCtGReEwQ927V+HkVIwAP4/EKO7q1X5x8gnxK5TEdWPhu2ofcHhEthkBIGfUL2Izws1xT8ziHgipN5AEg+C2b864YwngG8KIzHI5rD/kWbevDjb7Br///Zuz4ofs2UKxAYsRQvAqyP7dLypKdW1IJhUGaucsCumiJvJf5uVEzcUM5nhFtFu6JJI/vSb9dOTl+ILbuEv/csVS/WdsG66yfdIhXBNhmNjnssJ/ryqgA0G3OQAAgo9dVfTONPN/L8pM/7r/jO2/u/1aWF/UCKPDt3srsBKwJIy8aL3YieaBTBGp5upHXoSJYemfcd5GT6Jrkf/+BpbZ5Dbf4WCXAc5QtIcPT/KzAscuZXPhDJWq5JDU6ZJbr4K+uBvj5JBGuw8PJH+82xANy5jAjKzFVIEaPTfucpUzfsijAu6vXLhXPqN3AgAg99irUOtMc3HcatssZ+ErjHVtxSsuCaT3qLRdHVkTIR80WJnW/vV5FpGtvBD6+NetePYDUa5sqvsH7LmaCaPXm15cWtKtv9HQwF5jnKTddL5mK7u2ED8JI8tUIU9SVI/kaYMmOrtvG6XMuMyqyMfaLqH53lJuTjmh6Uufuu86f2RI3mYKMNJ47HsB/6U9ibzYOupfydlPfb/vDwBA1tm9+dgY3oKqesYDMQhI7N8/wKRHe7TVLdX3jQqydD0KzXTvm2UK2XoKRseU05hHldXIAP6Du6JEXp5EovwHBxnWfFFZutFXi31CiwJMse637D5CQNAKZmZGFc+s20kVb8ycRr3+nHej+sX6uoyyA9q6A9uaNMMYjoNKs+y6A86VNawXwvw5zxWF/L4EDu3jIiygstO92AvW66OnpYV/wI3opzhsohH6jv/9xDwaKlke1986ZZJ1yGQiAACasKf81Po+If/1g9nB7IhW/VHhQ3OXgjRj6+iYshpy43tGtf+SY98zqklmS8oxM0nJKUlKyzWBpFUlGxVa5ZmUJelbmqU6xmHhhL89wsIKlFdEAQAQPu23i72xg42TvSE076qMJ48OMmfltobiGuSAEOKfqE18A7R1MrA8QSHwR5ArEIOAzBytoCnO8UOHdOo0ckCOa2vpZGoOzTUiCC3WqVlyQY58ituND3o0kKEDNGKR2OkQT51fgVPgm1vpm0LzMSxxWsxTs+Y9xQgsoJlm0VMB/hPl/G9wp+ib4oEC5tTcft4BZmFjcPYdYEeDnmkHmOaOFPQdYLqvJ/Cg7QADY/SzDrBqi0usWPeXvP1J3XO8dKfJa4OkzKVoZ7yMzJ2zc1I0JQrqZroIrPLlJaUTaVBa9ke4kjG53we9bS5W32n8tFzlJt16gSupzyHyLsh+yLJnl4vLnhRn/Ia9M9VHjJiQ5/MS9xXCeIciLZipHo414BJ+gHc2YLcsDFjZnWOSpbQC7Yz68hIV573pIzNL89fBXS/ReN0w/HXWuqjyMveSuChjjfSW8i538yyjtObdaVW26S/7ktNUCD0E6sYHeAIqDzzSn4hI3Z/urUAk7uExYO35tKOOU2cAe+Pi0ihr6Z0VW6dtR8GEzJqtktt3t8PwGnjShOXyhuI9dHsS56XnSwYW6YRt8gbNc9J9CrRRotJ7Dj70SKONCr2+k04ZYvNkXEvOfr9lidMieKq5K6xEgyFkLawwz067IgHv3gf+Ay9/KqlBoW+TtDWWOSABAwBJsJB3D4FN0pl2D/0Q+b959xAYnzPvHvpp9DPtHvolwvfdQ75hHQEfWbDqEx5XGjSreETAe2oVIy2J4V6vrTMFxaT1u7Y0s0m1wfUfaodHrnFrpYZ2znCt7VU0Nr71uMRfzC59setRsTCNn71vnRA+lV/SyxRc+lp7LYwBJbY774zeGZHoxDyyWqXOCID9QF3M/vVale+hWmx0bHh5BGZkVrUCJ4WWKHG2DR1VwDiIrtY0Zh9DmOqS0jnlhzb9iJUeasWfp9OJM7QYCTJGDTCX72EsLJUiDGOkIWhPfbhsebO9aM7j9uOJ+Ys5hFsye9OJa82jTx95ZFCLtZPSOZZ/vY3TzQM3pKqYKjz+aUN10ytDmwkBZ5ZrvNi/G49fwKJ42uSeQMen3ZrzOmOuIoEX1EZL4uws+tR7b9t9MskDoRlmc2kLBN7JFazV4hcVZDZOSUC+FjA+r1kUsSH/Ys4Lfal317vLqcUhGIZ2zgvdbCrK+vBtTPZByU3DURNqF0yHQuUCYZ5doWD7mJyiQi65XsJeSeWHa2R1mpurLt++DHGFgsTcYQBgDopmo19M8dk2Gx0HcvbNRpDcLWfZqvJLhD/U1PFzvLNtVTkG4x9ldbatKsdg/KF32+MQz7BV5XiYP9SqchzoGbeq/B7qD5WDfg58xq0qx4H8M60qPx/BWbeqHIvyh1pVwDBP1qryLI114CkKh6pIWel121S0ooQ2j1xFbhX/+3RowpNJDhz4z+6Zq+Q0pG6JXHychn3rC5tSEHEWrTKda2fF3svo1HpNs3d4Fx/gP9+5moKde+kjWprikhDpoTQsJhP3bbuw5eCiVv7nKPzbTMYre+Lz9CulrgWt1Tg639iyBsKShUHZq/Id2zPuVflp9LPuVTkO5KefBR8aFRQUmPLHlBXfSzHJtCjlKStKNzcqjSkr0jJLNYKYXinT0tHLIXx7mSg0sS9h/Pf1clYZOOOOk+NA/kDHycngzrbjBALM/+s4gTxl/+07TiAh+z+o4+SEtM+84wRC3DPvOIES//86Tk7dcQJt5v8ndpxAm4v/FR0nv0jO2XacHAfyv7Lj5NiE/H/uOPm54OXgbHj2gtfRoGcqeNUZN0IveOW058xCK3iBMfrpkQe3hliw/Jb2GEjWh4ZLEx+wm0cKy1yN+cQRVq/THV4fWG/cpav7JYiLnM4v1pJ/yWskUEgP1Cv91C59NaD8c/xaxPsLvUnbst5fzi/f23BZL+t/mWnDbk+KM65sn3be4kHLtWLZyzXp07xDERYR58VWHFDPmcHysRCWDfR77GwgUoe/mfImsyPe1NK4aYXFriIOQt1K1XjdMNxdt7A423OnjODcK3SGYZmZcRYGzYh83I4so2K4nY7EKFyNBO0Nx+g522s3LjI3Yh08u9WuP3wZ33ChsbKPFh+n+MkKIsmVc4F7AQfp4yvTvJ4JaFpYQvlj+sF0xdQan+Lz26aKZak2taxc6IvV+xbYe2sO+6+/21GRqcwr7IB1fcC5HPFlpdA+Nksq2Ge7Rbxl5SOPABvBrXE7bz0mS62okTZ/EeP4r+V1nY6Dld/mCa7Vz0sKBgAyoDj1AGyezvLUg+8DQ3fqAdNJY4OMDc3ANrpqtb6Sr2VBr18pcUNtwpGcprhQwEKGiBg5V6v2+K01vLn7IxW6q2V8qIzTJnN7O5WPD8n0uReDUOwUND/Xo9OK9O56r9LdkMrX0Jxf0YuSDct+XsIhMdi6PN/Lrsy3huA/OYtX0UyWrq4GG+3c2Z1oXEl9M4OcVsqu7xqLveBdU9/3b9P6E/MoIggvT0wuM6nSflwcRdglornCnyrn1vWV1hK26zPLWur95ivv5omDPz5PWfSTI7FjG+l9MqE7wdHrd2Up4dz+yATB9rdjEWi13D81AwBACgO5sAmWrzMVNn+I/N9c2ATjc+bC5k+jn6mw+UuEH49FkLv172MRKg06GjGCEQQI7aWmG6hSyzpJ8570uif1SL/80ivsdliu4U3Fw07DWpDc39847Z1IY2vXw1sbm3I1/YndI4by68mFbIIf1zYdHOluJOwbHBiASOcpLjS6r+Xczrzhk8NRCZKqcyeYOrTOxF3zf7JoOGbEanqTefEr6S049fP13YtSVNkMjzrKewgiDm6boqNj5pWGKNBJfNkJUZtlkHgGyNZWmbRLH9BOm7uL8ks/N4ZVoZf2ExDEDUeTivEe6JPLs5znVdcd7encdiyDM4q4CutitVSE6D4tCS9JKYXpgayq5w4IedtUaI9krBSkMLnUP/u8vMV3v7Rn1FX6JpV5eMwDi7UVnuY16UqlDL6I3FqCL25UPEqNj9A2bLwFEONL73ff8hq/5iIvahiz6Y7mPLD9nvY6l/5onkVqzj019eG5v9dgm+kYVVkYABCBQqr8xaSdrVR5HMjvpcox2C5UQq3YYASEeDrUN6godcbi394rULSeHanSj/P5SHD8+/qE/NyEX44R+nMTeKEC+uFpcj1YzqJGGN2vt4fOl6AOI/iBJZr2E53nPNXXaYMzBZ69z3/E6rDFJvV2+Sr/J0xS/3hvrwbJ87LGFzRgdln9CdUUI3gmS58A4v0bznE+N8I7nDq1Y1cuINl4ElE9XGN9a5447jPrOT9sT5+IqFFmMkCgjSAUmm9NR/BGwts9VtY0nwlGa1JYA5uERDzItFLNyMXzoNNbsFBk4hJJpEqMqWml91p2vbTbwAOVey+fKbyuP4dqHMMxOmj9WiCj+tOVQq+nH/WmkSSXCf6ao6ckuAsfAACghjmrNews5eZfIvwhYfbneGcrNx+D8Y+yOlu5+RiMPyQ3H4d4hnLz8TB/SG4+DvSM5ebfQ/0hufnnwGcsNx8H8s/IzT8fwVnLzcei/CG5GQzzZHJzbBpr31Nfzuy7ri6Zo9IE1kIJWzrkFcroErR0wuHh6RaM7DRd9ddBTf0O+IE8GBr3IsIspilvSdAjTD0pbfOXuhUdITEUmmgD8wwkRmQ7rB/Pal9+6LnPoD9z0xaoSdr/t9ysP3MQH747nuT8eFu0WHNqFCX32zxWK2DlQSs3f8f2jOXmn0Y/a7n5OJBfHo3wjgVL7NDBXx/z+bbpFq6OPrloNqNcn9zcBlXSGkeNoQ6b/H38KotzJvQmYktFxmGwr1uHdzfzVq6/7951djMepPlQlM0wHuKtIr3C2RTBq8CLa7A40pSxcMEfG+nvVt3X4xW5xgAAeJxZ6s5Ypz4O5A/o1CeDO1udGgLM/9OpIU/Zf3udGhKy/4N06hPSPnOdGkLcM9epocT/P5361Do1tJn/n6hTQ5uL/xU69S+Sc7Y69XEg/yt16mMT8v9Zp2aAYMQOdpZ/pk53FAHk5PCvdByBCmx/JV0jTNSwUq6wMvLs9r27d8mIc2Yyq79QrLA5zhI3Zoq4o0QFtDJ3toi/bK+TGp7HYppeo+woCiXM66Trstn1fJAwYSjGqvjRhSWPH8f/TgeMnl0tWeRA3wA7eZSmJ7U4fG2yMGwDDK6ijRFOUwMzNS5j28GwtdeWshz+5vPSV5Yp/E2dYuaIUVp+U1oXB/km6fPTKvzTV51fhas/8h9oXN1I8y6zTgmsQWtsSIp7SfJpdsrtsihVMf7lnItiWmjEIQjoy4KosU435U0mpq5xeB3G4we1dGWkZpuIOwkdmoZ4DYp/xQpexgqcWDBpgJfFsLzr8Sai8fmhej5GmM9dc1BveqlHXMK3eeVlXSVHgwGAUphTfpKe+YkXP41+tide/Bri1CUL3B8ATW2YrWz+rix9aFGga5FSlWxjbKSV65RpbetWaFNQ6AL9x2qju6WlrWlqTLpNneXjFfaJMXppJsYWxnfXE+LTdE1SFE1STDNM3yEg/zUow61KW2kAAK5DPigHJ6tvg3odI1WUJHk4tXVAb7G0ch672UsehIUljq0obNeAhc6mAFuxK/jp5dTOXMuL5vnZD3KT2l4VlQ+3g/Sx0r3YtklFVLGyEpn2utqp6DrUxb82EHtXYS5fgz106WlcEA0vYpFZv8465k70Zt43Twi7po4/cD6lhwrEZfvqQOhwLl2MIkfQn97zbt3MmDVm9nuOwevMvdmCj0iyWtctyhtBqVbJAwpwbtEHjZ5wSMVZ5fg4XRGu2leHOkhd1mGE2h/PkIAamfMpbS7QLqXVtbONFcqPfNASu9QB2iRgysPlXdbeiYoGTfJ+QJCkNmfr5zH2k65Sz1SQHJPI6Sn3FuiMOrjx6N4m9ewwH69bczHVKn19V5Hc7dzSPNuGt7c04ga1pBUxBi30NpxvNRNUUjdQDL7ELxrc0aCPyztgsAwoZ1GQ2W8g9ryNmScG2N+GoaTEFu2SqS143/AQlQ6j8mFkukgiq9WXsSoHmqi5xU6JuPu3CCTtfHhY+ZpWs+7ghx/o+m8Wz43AY1PCSDmEartjeeDKPGBc/RzwXCr+jac4Xq0qgzpSWZwHYW7DK4MYR1KBnt4xZ9q0m5HPSg6Yo/d0NNOMZXG7FtoME4WmafLzuV2LXsU+oyZHuHRo92zP8OKlZuvJjTpvGLXLrrHXQZMTuiIVF2KIOh0c7l/Pf3/XDz/HLYx8aPbCsFEhb3h31TqVvloAn8QSDbG7C1EtCrZ6U079+BZJbj7zFKKpo+RjZuZYf9pFI+ZAng7j3TvSWzGDmYPMsO6i9kJINTQr3uM2tcBBWlmAfcpsctx6CTNRTLDW6/56J3I3h7bIloJqENbhOZVx58X8dRRru4tjDeWEbw9X8OCBB5IAXaRRlGctLCD6kJ/X3WKS1ykyg6ODF8mOjCuorI21OLXeu3JWAyt2w7a4px/lw3xl8k7+kF5e3Hjd3GZkvokAM8/CgXmFjnUIwlBdtz8R1aDpottWX8WS4ZcN86vwqjqFCR6S3k1Ph3Rc4IodziVHuwzYjsoiST0Y3xldYjDxQZipGMcXr0hsXDEtJrhcUB764uu4XWduuIOiSWb9bory/H2DZ93GgTMLJHuL7tnX+vkKGbIEgyYPv64YqZDOo+1yUg/fW3Wzp0Qf7zvfAvPWAfucVturPXsmiyduS1k3vW6qV96d1G0PyVei1dQJzbmAGv9Zju0tiTYsy0Y3xq320o+cOQ+Y+LVbEpJnMGe7hpJz4QfDWEPvx9gS0efd4Ujm9fBRkImJy2saZvM0S3YY/np+rU5rWJM1Sm2E33clqTu/HuP+V2Tbzj6M/EtO9LEyYX7GMAdbsnjqTWX+Qmv7U/2JRWN2aC3dltuippZLD11xeQRXsmJmRxkeZ5f1ZRiV3vKcEhH+THN99ZGocj/fOLXDi13mgNaViCXz8esrGprwV6kfiYYuIB3mmV1avjJUaWbU++BQc9eUUCAuXa5bY+VinGIyvJ4Nys1n5C7qA8MlDbUUhRuLL3a4QF8vLta9v5r10KOyc6Z9w84+goH/CoEHF842Oy6XUplhpuCbaHvnVXWLgJrXlysOPKa+FjuQYnlnUV21LSfpZ2995/EFN804As4nUsrZx9LpnZX6pV27eJtw5BcLuSK66MEhq4ZdxSyPnkqPNfXx7O6pCKFOaVPcLiTiiiVURonrNdx4MuyhLeHodoOx9K3ceFQEIgw8o5HZ+WWZ8DGKqgcVS0i5/RTPDCOT+6gN5ddMOHdFya0+JJXjXCq3yv9KySwm2Imf9MJnOIObYmy6UqDdtEogL6HgaRSRtAcMPSfKJg5SqYeeHwdxyeenlZHqoIrmvfhd1vm6KsES0wKFsIYCASyE56WGIo++3rfpj6fqWbhozl4wNZxDWgBqHmIwTLLOqlh9MB0TUJYT29hyd+JA3FuqcJoEp7oQoEn1t775yk7NeYRw/aVFnZqvrug2H8sGTKTVstpFuHk5Z1+uRMk7K0NB5PosN6l6yohnekojKuy+lNSnlF0s0U31uR3SxuaHJUZZR2bRmEeOIBqOhjWq8zo9zvaTXl6a3aO2qELRDzV1YYyvJPFn8wZKyBTupLcQVO8SJvqkHxDe2NPyNuOSloR/g4eAoMJnRTXcvXD1QmlF4a2p5VAEYUKnwQOKuN22D/EHtChu/jq7RHCSYoICmxvNrZwXbUvJrrjpBxGsuc/vLM4TuSQVxGF66lmqzc4o7nrcJ/YR2ePIVE30GgkyHdn40oqWGqgTEo2h4ZxA4hzcapPqkfx8mEy7Iu1DJVC5qEalKpqNwps+Ir7BCK+JgCveX39t8v316p6N0q734Y4eRJWTgUtV6zF1c/JC3Nc+1960LNKeL3K2e5NU1cLJO2HVNn4ZpeyxYqb76wNzrfYRthUlLuesGl42w+GeTrMrlwLi5kbmYkjV5kSLlp1fOjba0OV5vy1ZHyTRIrpCGVeTwfRRgoIBof9CKgfezLO4oKhlCr8ZW2DLUL1Yt0o1Vggp3FjxY9vrzU/TtiY4kivJhTFDmygIF9Oc5JFeXg/5jMwT7F+jGNMQKLWlC7fNx7hP3OeCWeqQiLfoJSfSz0m2OCugK4a+QIa721+XK/G0pA4fm1Stq1dsD2FP0G8/QGPTYSNU8gp1NtWaLz+VhvggHLF1Cl7jy/rNj20aLDGfv/hjbBRieLV5EFMReA+S3rkQ86Bgwne9W6e3R/rL0Ib0wNJD3+VbChPImYc5zZ4Gc2+zk4reScDgrz6UmA9P5xeENXrIuvMMvsB9nu3hF4OQa+4Z5X1OmnUITl/8qxVNKUkTnFZcP97bU6/jbHEIufBqRFXk/p6Q6FIje6BSY/tC9Ye+jKyWOxoPS3yIix+zpsoJCrPrnLs73yp+cf9fC9PW+wl2pA8lDZPafTdYpXP266RoE9II8uVcE20D9FKswkGTb1Q3LVUfV7yP0h5J28jfGrO+qD7yZs7hK1zYk5cN5T4m5yi6VG51w9gPZ9I8ELKQvCx7tUumI9b5BsLXkVEQmnD6HfOsqyko01qOKmutHux76F98x/1l4vzJUy63ocluGzPKzJLl3g+dLl9f20QqswqYqqlffmxFfONxLDFn1MUEit142anHfdgHF4tw2Sy82Jq29GTL2bY+AFufYtWZsMfeMYwT+VzcohWjQAyXqRWXBSg6Td/3Pq3li1sU7LhykTHQIpww7m0Wyvh0kkEgZyocNra9yn0U/nJSl8915opPdAYEHxsEDQrWDTtYDSGtfenM9Klgy0TDEPFRbMVrWCzX+jDB4JDyvHu74gueVArWZPKu8WJA/5WZDBe7eM790SHVOUaGu2W6j3VmSUwMCTofMGjG1cuUmlQReI5EJWDvxzIKHA46V2N+RVkgzHzG7P3Qr5x5Q/h8Hj0vR2M3sU/2WBajlrVow3KO6EAloherqx76mP27V3YFsPwoAf4lgxaXIjeBDLEsi+aQVtbsbpU1p4RDo/S43q21BMGdG26wQhPr2RH1LuwYXa0s0x7e6LIZaOqVIkmyC5PMGRmF2odB3TZf2khcnBGrY/hMCh+lrePrBjUUk+XuCLeZlKmgi1HembHx3KwtrbzryRqpGrEwLL8g3UOUHk1xl77LwqHklaeFtXNiUJ+scbi8kutsbuOC4hjrub0vl/bXhjYR2rqw+yVUNB4EOtEjXhviFtSnFhXQsi+a4LWTiU4s275kuo3qxeoKJ8md6QfCNlUaIIloWLBe7aGWEb41zzknfsdg7yOGd2b5FufEF786H7h491tbV7SsH8v3vMrBlw+NViOacirVv6RKxxWuYtrOWlvV9SZ2WZR6S9MpMDJxMN7O3Mlr4CnvoEZ3qvEty9rzyYEzyNP8a6bVr7+Q1uiga0WIFBQ1N6Qqnl9wz3ul7yphOKTeJdHnXJd6KbeUXvG+3/KismpwAXnWh5cUu6YXAq0GxjcH07zloxCV+YMjJC1k9euymnnu1NmZXX2hgYMT1pCF46GHoCttuzw3SlCDk2zivNNRvNNFwePgYOJsS7nwxKfFptmk78Wd7AtS1Hn9peNqxlHn7W6YtL3EFIou2o9demDfjW1dPa++/qSypCfMuGdGD++xkZRoOkMfG1fA2g71ITJqx00mt6FQb84McSrCC5yDMqmxBRp8wTtyBdqszfWtV7Fsn6ibCqWw2eTg6eCL3Vh8NP2c48E+DEtlyCSejZOhfbY4zXWOsQ/cW/b7ygiV6d7xBFypo2b92C0J6yqUW+oLgje2ArIEcOmdsdzsOHc5yol2VxtkTD/Jm5M7vMobcP0S7Eakruq9WFOn5APvK7f3tPPeRjT97avJh1SG5YqHRMnVRfHi6Ih+fUNtDxjXCDtyutnZtBerOfPfKJuGrGzW14qVs400J8DpXmoLw1cYnAFUhxVQYgLgfALdN3mJlS54XMPPoHlKGeiugOBTnY1K5NE2UWCD5IPi0quB2+tR2omsppUVjE0bi0yDg0pf3AvrnbHgrzq8k+u5Xqm4/elZClIVDWNZQ5KmgfKAS5GfsLohJy4a5gazjsbb4rsFlTzXhVLybS7l0eGEaevmWb7FPYjG4OtkeZEdx892Fy7KczJIb9lPCyVX6M2TvZ5kc8VHHyV43mS9UY1oTSDBIOYkzA9T1LV1xGvhvZTfKLB4+CHuky1I4q7J54WSmFCLqKcK+yv3/SPVSGaoiXH0b/XMJU0z8Urtje/l6RBsfy78XAD4muNOZB6a2mz6KndaRBjZKpoU3LDaL58hHG/kpFfiI515st9nIga/lgWKHsgV0W2zKNLvf3mDZtFoQY+YqMkyiiNMtS6OtGBlY7T4ukvEEMOKDnxpRZ1X6GuxiZE0G6b6Qf3sK1EPmp3LzRoU/dnJHTTKSR+YTPDfeKoSHJgfj5/Mb76qa+gxdNAmtzyH0WXKLrXc150vph47GNcScBmDG37hwIgZ9dar1Ht0tK89QPsRzd4OCANsLuw+acarGDdwMW5Vm56L12F9FLihycx1LaTLelGqYOhfXx9NLy/l8CJee2Y5+BRpNJFjdsFVNt25LLQUrY2Mgrx1PLthKSp7LVQw5g4/Yxnn3vga/QKeDDUBs3dxzTxyr/WHO86BeDJP0BwKMTDU4opRSMeqBHYYNwzn995rBU7Q18QQS5iO0W9N3vWTf1tQIiCGgJQc+7EtGTnXrUqgSXhDqbt43i4Ybaho7doNbNWQNZuY5Zki9Qi0FDxEFMnU53IfA163iMe/fY/m84KteFIdzeKQzD61y/uDx8ZtVTP1gU2RhAmMIQ+ygfyeBPl4p4GXaq191BP3tCOyxRSEWB5Pv5uvuy4NkvcinicSeCvjzrj5cjjtbsfSC88hahXteIybBp+YRlH3z68VDr4xGiYsN5lDjwx/gcQpR16ycSuSpPtdIZVs/vUa+N6ONz63F2+CqkCIc5Sl2WPok/ZpxCBXx10GrWzG9BTVkskItfJL/KvdEkYvdFMqookENtPxdDmv+YJCGou3JQXWBuPKuBHWxJ8Xu0XSzdnmcrakN5ao15OqXsLBwX7tMKwOqry6dhue6Gqo3xCbMJG4ASD6yYOY8N0gOcYX/PMUzxFYA/Tfhih3p008u5MWR2eak1mTM3i3bluFA5nMlz9Fyr3xlX7VCvZt9oO3b3iCejl9bDgxuZ7wlBYv2Y4a57ujNa0FlQ3Txrc1OYWKj23SWCADiOTwUohhMpGb2A0wkh7Vt5oqfCzPtQSaLIRS+of1Pc1yWc/5pMLZu+hSXFyl2U+jbLnVTVBIM1rKUIwRPXwO1aDNMJn6vFUOB9uHzOkBookC3vs5lFyNrOU6Vp9z7ZaiUg+J1Me20hH59bCkrgJRoXdEJF9FP1DafnZzc1lYw2jpaYzsW0fGfp3uV0WPOXjClXQDDXtvP9FGbgjeTcTFpBUmPx8WqmOQsAmXcB97VceHZW4nqPPakISQLPsbxcEoyxq9rH5/a0O+iZzLe2LZkgWt4wmSrCOLhzCllF7CrFjjt5NHvMVT65INNdXIM9CbboQc6LwiqKq8yNtneq9Cge6umvvGEPZwSAoWwA4LKDL6RbJjSrEZXca6n8vlLifgKspgreG7ZaCFhmCnN9nfz0tI+jH+NYfknZt0Lxg7hfgZ4MmEsULZ/baNxRzYxWE6x/t768uzSmAtOQP8b3HqEYGSPax45sRm6VTuRCrBoiuk00U9+3xru1JGRJgcQ/l26jZVw/hDdDfCgqFbVF2qiTd1ax1a+zWr4pU7KLaHzaP3NQ3pImngaSpfhnQ9f9SvkMItLIpBLswk0HYvsS3PE9ARCAXRKLM94Wbn9jGWdrySuew8bjXXka5dke6crtpA2jGcOEwqI4LcseYTrsXGT+02gtbPsl3WSVBE37R9wMkd7lqeOrF9nfWipfPlSpWVFIyGg0j1Pjm5kFWhzm31yK4W42X8MsoUMiSyOkb994AsK4DYPMcXOJ5S55pC7OSOHk1t/YKqC66im4umlzVMcAAP7SO9QVj6gUaATz2zMC5S9WrJ1fPCJAjsW5deCxITCyOGUt5gs4S/ALr7+jAy7pCDCRkL9rYY/7mo20bcDz19edi2o16/BZVEPngIi1uAficEJkBPOD936b18ZLWUiznGQ1uZvVhxGu1O06Kuq2mhqq3DIq+DlvFTpFfLbznapPuRnaOrVdlXQb0qtF52e807ABchIRUX1r6xgPGRRjg8/yFhJQr/UCvMJKih3ODD8FPiuWGRMrqyj6T2rC73N3Qq7ndWR1VODuQqK7A+MzA3aVT2HH2cEiJwWCRZbfMozsOEiqgzGlWDSGzfJuzudP/sMm7Ruqi/kdv7bcGqSnFUGNS8h2If2apwr7681nHhAJEOHvBF3+YvSG3LZ1cgj9+iW7+ZgkVBjnYBOZI86GJILS3waUkT75GkLxZCJtU1JJJL7YIKSJXVcNgAPwrZtYKHmhLkGHD427g14pWiswVriA/vzbON0SZM7NBWoW9dSonXFtx9ua0nZcef5BaSDIPpE/CxwMDuoagZCq1Yh/4ozAX3ShlU+3UHVxj+TToMB8f1HvivHsroKPElj+BlsFbCHlwAjfX1uqte1FQWlbPCefPajinnbqAO7rvLnW6FG367tg8FGK6nZG8UBnylr4P5OjPPXojOc3+Dlg3V9fwhBt1DsrUZYjMU0fBNt8A8hQMMuvVsHYG55XBKUUzhC69ebmUqbXJlz0/bcT6crmr3Kg7PiFaZCWOASSGYcR5csfIpNWLevkZ4+MHefQh/qTrgwnasS3v4OVbSZWBNf5tQ6WuQgPjYK12pqaCFNW26VFj8XqSSkad4vAQ4TGpwc8P7Y3O0g+MzBSVeCcaYQfWNb6xFX5QZ01/kGHBTQmoWZGygpHpT5D60Ps+PmWz9lWnJaT45V1U4usF7KpbUJGmLYYHni8zGM6mbcT7LQ5QIxbOIVAceJGugteKJKRkGZPLn2PuyFKFrUqhiMHPiCZfv5ZNqLrxHCXtOlqp4990jJ59sG+ZFrYYP2dc/oHZcM2dszCX+CGoqY5TWIc2p2ckp7to0a4qqCy5AsxN4W7fRA2/VL7zLy+3m2pKj61WQ+2JfhhRV0zd+uCocKazBllaYZG1TAM4D6wGLBnbqfjRRat9eZ3/q3LTlQowqWdLwk5KWRe1k/yXn5YALhy+ZkJWGphpwtOBhSe2JPPHWCCTTRKvlmMcneDcnnrzyMykUH4JNfj6aJQj3mafMEn6Hb8uTQBRIMvWQg60FhWEWm7aalhQF+gVkmallgwY+lhdkSAqNOI2vPl++GNx7xRhXuR7TI7Z0o1d/v9JgeaG8Vcf8tdzbtC/1/JbBikz3Cjo11j+sMNfV3NTCZ5DKXBXPUNDNTrAdVFvwuNd0Fd+eXcxsZoWIOBxXT2BJ1VqmHfP+1NvwEbdYv+7bvc5WxoNKBTfcanZMOD3wZiSue0Ylfb26uNYadPejQ9qauSSrzgV7/q3BL/FuYUjsjYxuQoH8pFeI5MIqry3eXMPgQYUtTrGrWsO+5q60vlMqoiXic02y1sLLqT0S7Y0JMibfzlug2zUf94KUWqjyoAmxZ9ymj/ZUAijL32F/JWlXaAlBd/BWlehiPzqjHQBQhzX42Ww5d/JKzrgu5dy9bhJHMvI4J4hWgv9GC4tUTcmVBz3srKoCxbr4XvgcJGyU5SlXg2meYvkKrm3S6juqtvReB9pUP0g2G0xRoTewPnY+t/uUB2iV6UPAB33KzcUlxwi77as3s0O2nEE7xj9ZSIIQ9qTgs9mLgIxli7drga64WyuTBv3nPZqsGyaJXGf8nE0WGpKW4e5gFu+3XbpZJdRNXlp7O1gjGBNoK6tPyqNVdvMqdJajHCAsMEx/bLLo5lVE40nNuoSG7mZYpJiLtJP+dknondJ8tU1G50pPTIlRl9ba6rWUx0HTKQ+SSpLmw0zqOc2YEnfpdsqdm6SZJKtjqb6Q58k0qt0jYs7RdBGgJUqessZLjp3GXWu79I40/OkSqcPIKmWHggvDUOMjm6XsQYEU3/HgkMGNF4j7njqxXlF5Jl2kPgiHmiTUImKPC2dzpGejps2eHCBcv0Qou5fzNFEQxdNmofHZ+4J/v1NyVTG+ZPILkTjU25fmCijn2wyQCLxkOzekxNJ0FdHOHTP+C2+AUGc48nkiI1KX7fD+6ClZOB5JCvdHwg/NArmF77Q1YDpQ8K4wKuPVBk8nfn1WsA0/UCf14kL8evcQyprWjHFZ19en75vu1vpLeV3DI0kdtSpImwyvJnToxs0F2IroKWAPhXlMB7xuE2Qfepau0W1tiFLPVRNb98o5m5RMG92vELCyYWB4iLB9G8FlWGxUa35erH1yEaFf3e+QZlFhjg4ZC0Hq2Z0vbOgXz68wXhTZ3wl35qa3uJCyW/+4aAEu+Ypp+Dvmmo1P0opJRU/q3NE4XcUSd0LYdSJxNms5WM0W7ZI2hxY/xqe+e5dl2dTeicw5bGmD2N8ICmWuJ8jsZ1gNsVHg+yQUL/WG300TL+iJc1ahyU2E5RKnV8WFKbg1NfoW9e4iaO1K9xdGPmf44GyRzB2OcM/ehJcewg3Jn85P8kjAZ6bPtN4YlSr80j3uhdrllsPd4X8/buor01Tdy+SICe/61bv2zPUpZVu1VhvT5Td68KQSorN8zK0RcRylzb0fXD4sfgyKYg31BWAImXeQWdE3XZsrgt7xWURf2azOEes3Q5TQeYg+IeFyIdpyU29wYSN+oE6fvCF/UzTTJgFp5eE1M6kVdLkOElHYnsMh45ywF58eB4ngvVRjaL3N+9Cw+RP2Kuel2iDDhXPO+eMbs6Tm+10T+yPflM5HXw8N+wgBIEjwOC3y/A8SGZSbFIl+GghkaGNlZWPNbPV3yFhVfZtBTqwDywP/ey+oegj9b7Ki37tntGHQhtIjLhKOQTtL8bzusWz0eYQw51mqnaUaJecI7ibOZlJZkiXipcVyOA6e0oodQ083p8h4UnEvvmvZiYoYlAMvla7A16dYDBFewNlVe8nEMikmEhDdQqhFfAAf+OSdsUOfrlcp5pae0ruKiUCa/WE0Poy7XLZqmjSvJ0lv0RHdvTI6iXyD+zWGvGDsnSsSNCL2ds/ifQiF01RDzTmQ3ZeYePVckbueu9xsF/SjeFDiUEhsq0PLpdsa3hxRxiLeGhDLlaGk8bqsPE7G4ab5ZUrQakyD9zm9wrtSz3TqQJgPomjSWecXlFotdQhRbCqVOzcpP4tjvFhA6nN3GIgQDr79TOCp4RtAqfFa34hztGVZ9eMD+QZxDEuEhiqqHNfCj4SfiJe8MLe2nttv7198R7vLA69G7jvitzzRRN5xo5odmN5gibmETDOprpSUK6yZETiI77cKvMQJuveW9WLSdVUYg5lmfLJYNtVwykRQqro/gnL/pw/diTZOd/E4U6ZrhXPYb7yXg0vW/3CNjlRdvsSptwCXOvQdv03FVsX7xKoPHrrlK6gxTz7klTa9Qao28ZpoZaJ3hatkfBL5XFppFEbyZaFmUSSBBZO0nMpTphhEBqSACfQr6eZk1w1fhLciT0llyI1nvLjZIYnaSY1DKB3WorrxWoyCa/mQL3/3pudqq6XMrKW0fR8es9ybqrRzs8quV5YP+dDFvLRQznH11qBUYYt5PRF1dBGI5SeqGqeeFXJDH+P+2qb/xed+5bar08DnRoohZ1HJcKMu+Kw7LWRGsGJ0Pvsw0QjZLybU7bkZ57Cis8hmQzofj9RHcU3VjDSskL1NTsFc6Cv/Upsl2nUTNZ0tcYNwNjXuMf8ljXuF/frM5JLtVlJp8peez4ZoDKcRHYSEubHtCvKaRVU7xOsma46hFmaOc/c9jfe7Hl+b4fM0rZcruaApGsfG89Xr1ohZBf6UKBlBuIgk5RIfTK9zxJExeJw3XjKNKPOfcw/RiXZ7EXJIrnlV9rUIExyQlLNBqPE1V2mZ8eUmKZ7EwONpdYKax3Zln4O3vyj5sFdsh3pbmN7lRl5KS8xmjbl/r9Rckm663yb7fFzou0c9nQb3B9549Bukfd5c2NJNLRrpcyUUbAdRdhx+a3ZaJwjdN4UDAHqk45YAvB/uXCdHc0vo9ryQ/CrWqTe1nPs+8jGjg4HFhft7fF2KrLxEAADg/2eV+utPyp1//R98tP8apb6jo725gZOj8dHmUvCQfWHxJF4AADwHAOACWEibn4Y0N7W2sTf+ZTjLhYoIagAAyAAAIAALxwfzfbgfD3T4O9qPWcP+Fg0LWBDJ/SGavq3tieKQgMXZ+lkcsEPwf0n1E9nHG38dbEEDRlUW9ndBfzye4/voZWjKAhIwAJAC+1+HY/wdnQTut9EhyywFWEZq4H8bHvyEh18HpgILTIRwksDgJzyA52S3vWTxBQAA0//pa/w7J64njf2jl/lxBC6DEXiA+FuQ7944wId/9EgBENjwP58s8k932hw3fhqw8b9CAk7qjHui6Axg0TGRgZN7y4MdVgCepTY+9ssyMABwFfa/Nnj/nSU7yBC+P6zgOCrMYFSoUAFIbPLBN9iDszl6Jjc3GBt/iEF+ssH+OE5sYJww0AAorP9/yeuoLT4fGC8XqIAguy/Br7x2dABK831wTkef3uxgnNjOAacz3z+ODBMYmSQIoL7fXf5rOpxgdBAxgNP67p+ckCsEYN9vLD8poSFIMSAjxAJGSB4TOI3b/q858YBxKoQCBjJa7GC06LGA0xrt/5qaABi1J1BCQUYPfE3HwAag99gHJ3Z0Tzf4mu4AMchPdpIfxwkExmkDArgft43/erbASd08D5zeUP97uKNW89RgcG2/h/t+x/jJX4HKcAAovOtPeo0R4gLQe9eD5+eo4TsvWH58IAaB+LURnJUaHgC9q/yvQbjBQEohBvnp3ulfwwmAL3b4wJm5yoNP3NFNwXJgExd/Wsxf7p3+fgxge3XBxtBBAPw5m/bvh3F076w02DAqLgB/wkD9uPkXAZv/wovAmVqZ/xpXCgyXiRD4I1bm4Ik/uoVUAyzx2WeJ/6sNu98P5+guTj2w4dAQAf+cv/f3wzq6f1ILbFhXiIF/xmr75IuwIgkAvcE1OO+jOxi/e+WEGORn2zi/xzu6//Dom8XCnXpS4PT+0Sd/+LuSAVCYP/86OiNY9J6TR/9+K9yv38Q4wOaHhxw4pfnzyS+4FxBg/eD7/GuQK+A1IwrglL7Pv04dP1jq3KBDgiyDHGDkViCH/MHy+df0BMHoaV8Gzsry+TiCXGAEeyEHhej+4gNDE6cEzsjt+ddJFQNLatHpECFLLfj7KRcVcGZGz7+mKwFGN+u0mJAR5gV/MaIGzsbj+ddsRcHfxk8FeJr6ETENcBp755PWj3yhgIGMFriStvNTvF84O3/3sXvEExlcSZOnBSB2dv4++lEzX3AljYwOgNxl+eR6UR09AKE/8En1IlIGAGp/4JO/Ly39HuUUepEcIwClay94lo7au4LrRbmQIUCvF4UzA9B7x55UL9qCGARCvQh8ejxAAJQ2sScVVYYhQziNBiHHAkDtEHtSDeIVpBinIXSZFYDaHPakhB5AinGah+IOxGBQiSp6bMAZ+MKeXFTphhgPalFF+ApwRpawJ1/4SiDAhFpUIWEHTu8Ge3JR5TkEcNCLKogcwOmtX7+HO+qJCi6quP8eDnpRxYwTgMJk9aTXWP3Jo/9OVDnqaQouqjBwAWdhsnpyVu8hAIRaVGHiBs7COPWkH62xp4CDVlTB4gH+kHHqyUUVUV7gzzmRnlxUYeED/oRH6MlFFRp+4EzdOk8qqiScBe4pRBVSAeDPu3WeXFR5Kgj8cxaWJxdVUoWAf8ZN8uSL8DthAHoPx5OKKjQiwBl4OJ5cVOG+CpzeIvHkZZ/Zn8L9wt8QnMNRZ0Dwso+QKACxv+H30Y/62YGXfbDFAMi9Bk/eQF0iDkBmkXfSBurzEgDEFnngOTlq/8YElhPrk8b+wdTo5PWw+GsAhLZyJ62HbZ8s8inrYe8lASjM3k5acKGWAqA0ewPP0lEPMfB62EPIEKCvhwnIANAblIGzOWoEBv4FlQQxyKn6pyVkgdN5jYHzOmqeBf4pkgsVEES3JfiFNysHQOnQddJKn6w8cDqHrpMXxsoggIK20kemAJzWnOvkhMIhAIO20rcJKcZpKn1misBpLLlOWulrgwLmNJU+MSXgtG5cJ6305UIJdZpKH60yAL0R10krfUEQg5yq0oepApzCdeuklT4nyFF+X+k7akcFXumb+T0c9JW+3usAFP5WJ73GOFQB6P2twPNz1BUK/PH6DGKQU1b6bNUA6K2nTlrp64YY5FSVPjF14Mysp05a6Ss+LeYZVPrmNIA/5+V08kpfnybwJ1yWTl7pa7sBnKnf0UkrfdduAn/E7+iklb6Gs8Q/faVPRBv450yATl7pk9MB/hk/npMvwha6APQuOCet9LVBDHK6St+oHnB6k5mTfyeG6wNQOsSAEzrqWwL+nbgOGcKPDjEnf5OxMASgsEU5aS/4+5NHh7YXnMEIOKUtyvdYR41IcMGwYn/A+s4R5ftQRw9sAg/Fagwc72NyXJLPgyX5+m3g+POewMd09AQZ8LNT4n4a6CfnPR03Njywsan7Ar89iObXM00CNrzkX8WC7Hvu3JEBHoocfB/0SAwExH/9ViaQCThKAICI37/+9v8CAAD//38OfILLywAA"); err != nil { + panic("add binary content to resource manager failed: " + err.Error()) + } +} diff --git a/server/internal/library/hggen/internal/packed/template-single.go b/server/internal/library/hggen/internal/packed/template-single.go new file mode 100644 index 0000000..b42b9c5 --- /dev/null +++ b/server/internal/library/hggen/internal/packed/template-single.go @@ -0,0 +1,9 @@ +package packed + +import "github.com/gogf/gf/v2/os/gres" + +func init() { + if err := gres.Add("H4sIAAAAAAAC/7ScBVhVy9rHF53S3SBdWxAp6ZCWklK6uzsVQboRkJQuaRGQlu6SBlEQpLvze8797vG6PYqC9/I85+wH3f7e//vOmjWz5j+z5KSgoLEAeAAeQNR1VgK++SEBEAB7Awtrcx17AyY7E0sjcwMQs5GJvY69va2JroO9gZ3SAxgA4rm2l96gQntHtxSoh5F5oEeiWwokIy1b7nAABw0AFxdyUnDwQ3Is3EQAAOAAAPDzgAQ/CWhiZGlla/A1GFtPo3zzLeR7n060OkkyqBe1kbRL3xSLYkjpdaR6PLvl5j4zP2C2JO/RhbIsM1lMh8WPsm0yo4Chr0h4LpNvjozY8X7AW1AFK/9dpf6DhGDd7EftGU2doVlLDNyifhshW4ONtAcYYXBDbTs7L9hhojE6ODmIi5/XreMd77VZiXMleUH9nVXEQjeLLwAAJZdmhfeDrGR0zAwMTcz/k1Oi0ozV5BtML/aLQCgzOBwCiRkcrdVGwVJXmwVosxUyCVLvt/B4W5ToWeIyGYmuJucHnygnbaf0oRbggtpOpor6iDvyx1cXLG1tYABr5LPULnkzWlL9Br4w/iQNrVDZPgLs2LjAh2691EaxpEYVThlZHmGiub5t/XRRJp/NWe+eza0uO/C6QeG2uqQ6nGZGv7vpjMQnRha9Y328BVlTzq07MH+0urMGj1Ggmjbsv8fHuYs2i96ttkGevodcimW7IcUROCd9VFMXhvGo+UXPIKfUHOIdRD9my9q2QT48C9/gsl1LRUtDiB6MrLJxh82dhcPlXZ7HT6ECX3z2fb65fxfGwimNU0qwfE+g8uGGMky4t3xJNhc1Eto9Sx2QMl5BublRrYpNjFClD6Y/FbOeotmNDVmUD41hpC8VDo+xnS9UUFIFP17Mba5NopeYavcCrrzStkjupl64MOwItHCtxzL3aVEbXeRdaBkSyCQNWNHKKwgfb3bG0wY6R0kUoSFlvCKkUxKTyVRkU5UXzsZRyBwQNGWICzba0sdJwS86zWNQQ+zKKO4z2/BoV2jvZ5tQ4dXUK3+A4FinXt04MqPibim3euNUmYFJEJuiSThc1bTaNDNLlkHemKAzo5CejQRnj5dac4gnpzPeex9+NFxuolNRGTUtUj/DgoINi6Lj+bhMRLtBz4WmCiFIZvO+ueKyPqLteypmi9KGvDvLQmwUZucHeIuoNnRsU9PB2dVtPIokr3vI3OF04iby0M7jUDHwb9ii6Igb7VROk2w1rr3Ea288+jj0MR4OQjG3kV/H+bD7xc67UZR3xa+VvB/SQm3IvhkigAbpC+WTReZt5z9OjaD3gMhQWOT/EJwt61es8UrGKUnTs4pvY5MS3bKMjDLkXXxNsc8miTOtANZ27IXwogCDohcNzLQakZDVS/6pql5v+YsIb77yuXM7UHzuS0VF+CKM1D3Ezol5NhwzVd/M6RVVEbQRJhOety+AznNOxsnwqItbeXfFCksM14x2E7+MGsdUilh0kWm7KVaH55GX8E/VkAtK17QETbg8yqnf9GeWPkKWg08fXCCwtF0sLtHQzWzpbCEM/PKqYvidh/BeBz90kH/ASI4BIBCdqSkYd56PzXObwVfWFj73YJLmlqqdmHvr2adeTDw0uFObXo2AjsQwki+TuEXPEXeFEEEPJYLc3hdqdOHc/pJw8z3PMys45rgdmmMb0+MZiL/7eJrDDeLnUACQBndZH8f/QR9XEBUUkRFllhH52smjwxtDCViQn23w+GYmIx1EuKquOaIrMKBlOvk1Yw5KzEbM5b6U1TLQBgSVTGQDdC9mjL5gMh5pSFOMyS+ny3s74Ryil4a9zkw2KgvZBJUizsiIWfhDFyVGdhSy3TpBjpMW09ZrgFWuyglAV/1otEEvhb8rIFclWpQ3asUgt8BZv5CkY64t8SKjlUf4DraxGlBveMP1YU3tK1wrM2g9piCkcVn7rqobnmjpT3bwfJQ5IUiC19AehoZ+XqCnrH9KZa6tl4GmrU+6+l4l1TP+pj6VSUhtAq2+QUPAFjRqh7P3dNd215ZzM+wbYVh787sYY6jk3K+8txyXaguednzuVxho4XqMOubCH910MU5dvaK4Vlc2PAh/+HhEnvRoN2f1WVriO1LXiRxu5hc7EbRmTE5NyZRRCvj1KdA1m/0XboEsATv1X9skFwvTVAQCABIg/9MmwD/aBPMHbaJjbfK1Nf4iffv9n5NwfkwCObL8EvbPS4X0pzCQsYG5uRWzkdVXqnlPyf2nLMjQH6s8EbswGUO0uzHtdXT08o9sEv3jfJpzH5J/IJanzgilmZ4edXEzwubhBbBWLDg/NIa+dtYsOilQ68+iM0bMbguHTYCmqoTblMLlES9YU+OzOVZNmMNdtb+g7HVeXeVSaK+/IWSUFIHi1dhs5xaUMetj92KrUsTVBEkRf2jrreC6b+jmGWo8BxkDdYR6L0npI6ro24+KMEyOaUldeY8Q/m4WjIdE5nkAAHy5NP8fFdPIitnCSv9r2vpdkzcekyHD9F/cb4SMEbAnI52XhFSOYK2H4mzIdVVF95uSnXQeXU4Vr5Oq7ZowcN3xpRCRw+VkFJEh6VoDhZ/6W4qg8Azh/q2rnm5OTwoAAOXr6LJzsPiq63WCREWa+MWXgzN6040tDPRuj/sgNDRRdDkBmzY0ZFZZyLpjvg+vvhyt9OR1ry53yixoeNTV+x+G6KBle7AekgoqoeWnMp0M9VPRDaiInrcRezagbopBXjiNdKwJR1bcktp9wDLrSvRm1aeYH72phSd4NWOECsRhXXLGf7GSLUJRyBdI7+7dsjRriVrQfmfyAfNoAV8ASX7vrmltByjTIn1CFsol7qzDHQquMr8WB3Mo2llDaGqA1GkXgr8/aokE1MFcSmmFR7uR1dLPOlt+f6ZTXYRwALSPy1SMxb2pcRQbB1rg7oQRpzZhHecy8JVsUMmVFZ+9VzhS68k7GHv2MODpPvXy9F1ul+5Kqm361qEKmcdF1cXWbW/NVJMm1SXlUCZNtfcczbpx66nbKCZf4VRMHqnSJxWfMZgH1d6SlTptI3Z/jFosAtg+hqCkRBcekmoua2/zR6RDqfePyRZMZbH4PNtgRxO7sj54L+mZGa64jRcXy92u7fwnOJFnWoH7lSsz0OiUEBJ24RquaG5YUn6M25+CXkokv3EXxW5WYlCBq0lyIyhqK9FNsCflHRmddaTNehQTX3XGHHeiqZZlII01tNanl8q/SFNayulcUZIYT00OQ3hhE3+ih0/Ybbmw1+IJoXzTOfEBaGFeS7AOL4Fo0M7u2YPSdm9fnEKXCPKpZbxp/XLuyOGGXSod5aC79zZoiF2diJoR0FW6ClvnDkiKSpm/wBrZi0cxMycG0q7rMwdzDRgcP5E8SJjMnWSGdBW25YdrotnynLNqBs6yaoJsM5bTk3armIkSQtVfj7c6kLvY9cX0lDWC0C5uKM45rpfuIlja4M+21RK8vdjChgb8xAG6GP1Y92ZIQNifh9vVdIHbISbnzgA3nA0ZR0hNH0tlZqtn/bIqWuKedeXIOELnan36UemUdnHSXMvKfkypIS8z19qZSZ2mZRjMVMtwIBHVpNG6y8FY3Ybe5z0TIWglzfIUN3HPrhdTmk5QlXY30uOcJqw/SsNJ+M0dfdxgMPSCWaqbwxGtS+3YMqrEvVlWG553PmczWBRpJ2eY23qcobD6TDd+2CB4aY3kZN21QGz8bjlDPl/IwsX5lr4i6SrSMTv19NNtF1tK5LkxjB6It3boN9T7Sk5smUyfu2zkP/J4pFLvvaDVH1YqT6umGV6Ih5j8SYb1LYkG5K29YRSz/ur37IV+TDwaPSnpS6jLQ1PpRdCTESzhzxKsieiLn9xJ53bzkpVKSCrummZ1N063mz7H2GlRn1ZjiVWe4fHZShsubUV5dg5vPTiGUkroQJ8oFeFrAHF2II2t0lUTyL9z+mU8tWLWBqln2PxQ2Mh8w98Zi4tvKz9h+SNDVEHNWI5+tZn7F0GBTzQPtgOEFcbvzlHb5R0zB/VuRW+YzD3YUlWDFqIOEA5fg7soNibcvD1Vb6w/6nehdmxEwJuULTOsuoWfJJcOrW2F8Cie3EllYrqqrZmifG8974gDdI6/3tIulO/vVj+41L9nYxvNwHMb140D85ANi0O+Ri+X702creO2imlQ0+ubdWduX84r7UjRPPOphKxrScbZet+5fcbKMoiG8oqRcPQyd3hnoUJ4bJNsFQmft1YkqIUcGratN1R5K+CF5GzXGNfxiSI/4hcNisflRByJBAoISaN6e8+n3TTu2bs8ZKx+KzMXGw0LAc2ob4yxKRU5S9HgV7cBVzROEa8Xkz5GrXd/x5D9WJjcojOtFpOw1qL0nJJZhG8QJy3PazqHk2J2sZ6336iBtzil7EUskaQbBD07wj4mXLWbtu8d4qpPL+pjVEB13SfJxyyrLQ18VUZlshFtZbxoMC+r9QQDzp9ZjSdTjazhm7CVfZkuJC0DdU8x6KVZ5tdt+y0mBNUUJnb0eM+fiXpKlC+SYDaWAzSZgZaPSmyUHWcIdl+Ztij7aAkf3r21BxFjsamMD7Uq4+jDkSr+ZGsqhFzn1iOqkRripZHq6Dqbz1WtGTX4VVqZXo/D+lh90UQoW8hMO4rJYYQjkdA+ar7OTrL+oF2cZRPQF1su3NnUEsFYIo6zXDxRRSb7JLsHt/GYINUr+4zg4Ym6pzGHpDj0G2wYGMW7FlTTw2tCeNV15WZfNsNhBAgcJs8oko77OpPPaBFcAjWPiaDERfh49/e6e9nxravJbrvohODuuK4era8SOaWVJaG6a5srLy/JHbs9I/YSPLmTq5TqMRNiNLP3uRcpM1gzLA5F1TGFxDG01yrTLf3lNJlGXVZnPVC/rkylJFyAwJ09I7rHCK0GgyU63iq20P6gcWSveqg90t6NqH4heKNhN6Fl5T4/p9in5kfmFRqrFY42b9Iaeti55y365m4i1ETJ5bq+PjNR759h3ZLncMxv4mbVmx4ZNL5NGJS0MrOSQKq8Ilyx6fjKvsOKrtjzbdXuJIk60W3KpKYcpvf3KBhgxvEy72AvxSeFxG5S+C5ZAwd6KpVaDUqJ/HCRBnLv+17vf1i0NsQU30ovT5jaR4DBz3K4D/fqQdgneK7QwCa5hLZgiQMtqMO7jKfEY06o1Xap2OseMoLj7GTry7xaIshrZFjH4y1F915UteCgkyoPjYqcwJzw+Z4Gqe7b7YWL36YuoNrx4aFSFZ2EIrbMwO541br/vk/1VsKnz4Eoe+UoHn1uxFS4npOkT/AS/MrmfXaHNUdHJD9P7UlObPj7bJrJzsPnXhR2u+uuvC1Iq3h3DwJn2//eamQ2Dx+kvj/LUTx0mesqq/9n3TAx15zaMQe1FhiHz4GNckaUpCkOW87vn56otLD32IXhlcwoCT474Rfe6GALlu/oX2vsHMvJ73mi6l/lRVwZxZIpwyfApnnDe7VXFP/0rxvTQfs8G1xnVduCxthDFsnC0xYJ2pQs3FIZ51TrIO0Mi0jQwhulfXOlqLr2WI2ZrL3Sg1lLfJWZNyt251ARz1+11XoZ3qAYUjQbhrCdzqXx4zcVvyktNCQ1kOj4EOZ85iMISSD7iUm+UAbCorq94k6vG9sJ8mefuUCppEDyjJt9SNKHBoxSy2RFz8IXa3d39uFqLIK+NLVuRlkQP4xKJGaPxU+hOE6W/hI1hn6GX4HFaurB2nWgLV3LetAJHHxIVGFCn33HMEfkhX9AK0IBGynVLCoNUAwatY++aL6btM43cBufMdg0kiDpbT7C3GKabjB7JhQ6uq3iMwSeWlKnTy0mcs81J/iidEMm+Vqm7Sym4HY+D+Z61bHmIqEIesn1Yret16p3zjPYZbwcPqz7jC2RgbaQfmywHjR+eynHySaZ/fTjlNIKI4N3jVaU5jKJoR7uoB+DWlKrVLVhA677TGwK+mkiI+/FpGMj6jnCGkFuPLOnv28t854ARjE9952OYWKvgtl8RnVL4bbNQuGJelgPFmdt5FnbdyU2ZZA8CEGBVZOmhDH7QI5Ivml3WC9LwbDijkPKhX520ujBTgrf0UMXSP753YLoVic2lKHeW4tunsjSOUgq9YJp0msLzDk55RoXIcNWn/tInBxhGxPuGpYHZO3iaIW0VZIVHQn0GdYoIotQPlmyct9vrq73dmeJUYpem76/JjlClB1H4U0/ZGpXVeJuaumYGjImbRB5X955uahjTW6W5cbJZ8LTnal9mL4h9PF7iqp+wQ70sGJTnHw61MK86rYV89w2UnGpNYeERoeIHizOUOKcub4gdCP5CZLotjXL7RFqKQGzVfYV0Se6J+9RPHNrD9jnP/u2eEElu5od3Fa3jLo/UlKIcz88Tpnoi0O1DqESHUekolE/S3PD0JvETWHqAzWH4JjUyWQbEwePiRfck6rDmQZm5s0Y6cFL8Is8O0aNrz+TNmkiq0cLllV0t2XKYay5FpfoON/Tm1IZujfm2JJJWFRNL/fMd3NdQSm0jDy/8xXFsRFesMXE3P5kluf9WFgFntBocVNpnZb8bq4nLTbGQnmqmJgRbfmYbtowWpLWmysfcZsw0w0djwYqj4YouOzsDB2tKdeee/VYdRuO5T0pwJOgLh6vnlM2iMWweWjY9wqVP67iNHHDz3YY3bJxVWX3eX3VSITByJI2dpS+hHA2wxgrR9DOEfUFPOLAIyaXqXBP9hxRKgI89kmpzMQy1buhRzJlGizdrb1CaNbPVYz4M1itCrE1cUQergcsvrzjdwpxqz5sAdvKQc+2QJTmwZ3ZTs4D21MFmPpsz2RcjsyPxuPoPSm7ipQHKmt8Dw+C8nmx6B3RXGzYj+/UEh1vt0kZfbhvQm5XUjzh/DnUhUhFyXO9qUXeC9pH5uTF4NO9OPrHQukXVHq1chdE6Y0VyaLIsL5jU31+jDsEA4XDbKwa643spW8UjMK29lubRWpZZ7pToLQI+yJwZCeXAKVpWYSEICivYNd9bmJ5PDcxnByaF5TBrrIwXo0FiERuffNlVnBeCE6jqlijbtWD8Mrq+aHotInwNJiI9JWjkJ45a4FK00dF7rv1cocf4jPgGmgYa9rS1HQVJpwqfAVU9NixkFD3mDVV31Z6l9VzPeDPKLUiLKbDjNDQKjZ/i3UWh3J38FZeQRIPqzdUrPtCiPamrzpCEf+b5ycj6SZyAe/vcb3Jf6MU3ZtCgkLMTlAaIadlbY/dw01Y2sG7ftGZ9MEadM/b8NNaVUK4aewL2dOtZ4ExyiRL1MSYOmYjK2mLTNwSJ3MnxZq4h5/KP5UBPiZY87kXRlb7PgqDptH61nKGZQ8tTmuXCOY62Onl75IuPT8dMxSB3skHxU0UCWr1mVbojL96SLOuv6ZNTNRlHnsnQqklibRsa+9j5QOn6CmGLU3o6roWj/DXIvMzWVZMrZM6Bbdj/boda43b5ALZyO1Ua0n9DOd5Hr5QDA0uTcZJ5zHZ1tJzmzrrk9lcQRkyYpPYHBsuFVFJnEzqCbqJwgm9dqbPjGhWkvmUjva1G+g0utvTDmaC1YnNK8tgG+UhFopZo9GNZE2WgOA9NWYOsbAhy3WJsqm/nj66XhEWcsOKxZtPvoD7mHpnec1ZOtuxJrwaqY+Mgrx3rqBtI7ZgJ5wv4QkPYw37ydwO/Rq2FDUus2dl0yr8qGXnE8dgbKnnSHblKCjKSZUIpLMNvEeMe3qrJ+3qwfP0TQnE94xm6Q8WvH3vvy2r4hWBgUtPfN+XDl/k0sDbJbAnP1y5ahOKNFWxI/YQXSlsxyphc6lCJRopAxsWQTzzpcz7oNc9oslv25G88lgrF1SQTC/IbDOHPDvd9h4rGatM7AumzKNMuZFNlI6k3E92mHil3DtGPf9UI7pARJb/VtTiu9WWB5Kg+x7Eq0S8b6VcGfdfTWd5D2zkuU9RK2okozzS/cD0EfEUY6d88o3+NEGt4QpyTGQeHLsMedWeWQzJ8LtyKunSB03QowNvvB6vPwI1gGBXKKsLZpEXbLOIQc72xwzqBYzZGUpVC9HKtYQ828P39PO0MuriiHj3s7G12MV8QGEdlYfivDuTSTWcMDuiLytdYuhWrIvYe7I7qlRaSZUIMTHRX9tNq4DqhXYeQxMJhftOsQoQieoCwh/ciAneTZKjfMbBoHgJwxKk8zZMYThrPv5JVhKdUWFuU+Gkd8uh4h14Mh+eDAnXjhKdhi30x2xnb99whYyye1mxo3I856qu3LD+aFDqitS1E1IzTZvc1+UQLjq7T2MKD8CSQ0vARkjF7KO3QYi7NZp11XmZ3+gJNlwLpwyMGHuR77Rb+EGRfXTdqbKyQW2cRsH8YBi3nOZjNUMlStz0DUTdPr10agyLwjusnbmLE0TzZdzPCik5OlhqNS0+FdlsxGZeEKnMHmTD8mijSQgBseFPBMVL4vzkD+Mf7W8KqOpvvEiQfmvPOK45XFIRdYcrUl4rWG/08XMN+LbQ41QsVFoBcoyIcE3dlH2olGfo25pet1aOQgbFpu7xS7O9kZuMNW/Szh8PtNS7O19480SkQLysdy5FnGVm/QKimtJDgAVt7nH6jKdoZku6npoyeQ5y18OwM80S3IZ6fO4xo6d1snTeyq57U+jTYRloABskIMfoG8OGKsGqfxPtWRGHqwyvszCDparPga46EoyN9sL4ODcB6fvk13fEnzyiy2Mc5OdhgCYTQAtn8z00ELFjE4UYnBsfba3Nr4I0Zw8KNGPXJgKlu1lwrYgs0yk+iZGHRJbNpouN/2R2WC8lKECOovA485Cqbc4f2YWgbMqMakgp9ZFWs13vuFpDssIAxeG0Sdypmh5dDA00Tf2rsKGXAeOyGZwCwijkAky8fU9T+4rdAU3ecBCNAutzTjZOLwNJ+9u5m45zFisD2Rp12Y7ZSm2kA9Op06RSgvADO16R6qw81C4zSOO3DmsGcSvouw7P2DkjnWsz5w8fsOCbO96sV9zKQGk7i1EZk5EJ2+YfPFSJGeox2MSpocwggyNrYdRpB6RZANjulbvBcxktzhnEDq7IcdSWeVRDUHXDHDSjLBF8E9hI7+l1I7LPVIO8WpkFsOAat6uEMARIYNgOCF/zERMLwIZTPmQ1h8YDeb++iEm6uMMEjwb5WITnRuxjfU5/dx8u1sPY129BVTF+/pBYZchPwiCCtAVKizba78c0SjiZoPhbS50kitJoDBpVDAllhSv1Tgu+DtnEyZDcrjWzt8r2JbtB16x4qogoxL9b83jHMwgLJiUTC9K2o4wxQDUSmueCoB6BZ6oXYgHUVqvbOf2CeGVasIau5j2pLYvTsz3NumeDjbH1CxNFCrIs8bomhh0K7h+jMsJ4LyrEG60CktwMqYgG4xBViUROrSK8F8eXN7EqdoUD9V3aD/ka6kURIRCL/UXeszZgCb0SG8A7g6WDBnyQD3nKMvtK2WTJkw/odh9loFGQI+HBx5CH4Ic10wIfNtSwA8R90GByqcTgSAj7+WTh6huh0AEeBDKxMn+1e+QoUDiHWE2i9cLLZTuw/k9XWWdpU+aPaBuQDwgzkjX4jl8dakvY8KS5hKVDoHoFvS/TtfEXNkagFRnQ+QiB51ovhWi7a+cMwbNPh2JnvzsCfe6mgIyQXBUALYW2FeGHB5odG3VVwldTEJaxwHzz2oap0DtYE+vdzUGX8j3fY2t/XoYHGQV75UHn9C0Q50urbOXIXM/2aFkRnTEuUOj8yXaWiI0RhCP3XYKLZc9Q6HYLNHlXNiMphVEF8EpeHeTK73MUrC7asPsvNvR7VEbmxCkuRTBAZOAuOU5uWXhV6zMfihFcdNq6TuFsNAbhHSY69UfeYCHdBHZ0Dgnkz0N4RWdLtCS+hKztaNBlQuKMwlXNvMDmxsVkUoZamT6dXaGdnFsqq/JIMUANae14YymcV2NAj39nwkUerpuPsY2S6k2F69TuKg9quuU504bDanqRkkBcm+eXRFLDtAOGNa7PUnvxEo+SvDanKGEql2GpztxIdkA7lfNfpBjgyV+in0pThO9IIIpArIim3HxaSqq21o4Q8ZIsU877XYCDV4EV87p6W2fBg07EATETxo4i4vegrhpGSU3SwqajwsqhfeOu2JbQMiQb3rcteyPQFuMCx9ycLs49hVoeZUV5p1KkiGo+ydMNkXARbda0AiQ7+7xQbmh+t1TRM0/jiDLHTgbHM1cWzdcSlMjSpp9X9axrpAduOG4G4V28YoKXn/rShqkODUlqS+SOvYMrniXcKMM8N8+9P/+8xNewXHQKMv3lx3w+qE9cNebQR3cP3HGFgTQjNxnIZlAEaqVRr1FVRbBvUL6xcgFo4n1tWY44/4zD3PbLTfzQ0dsGWAqtqG6J1XujOqf1uptrtb2aJq9l3mZ9buUxD5Vjelo2qLrbucXc0vRIHYdBIndbNEdWqyDFelJ5ze1plxCOLZuI8dIWEXEkljbvhpKlVD/qsy9vI2dcEn2HH486WhhMypc9dGk6MmR3w16698A9Nu1caH2nN8T7vV3Wjok4iyaeLc/B5Odklwg4tg5GF/5gHtLbRDIR9WLrj3ZQuBAhKzNsGnbQxVzld4+qBdUFvcTEm009HPpjkN4YwqPePXoLDDuXYuFJKIcrTBoSuyfte2l8SQHlB9qdbqUd82/AaE2aNQivjyMz2gAAdUSbr9WB4yC3+JLzRqH3A8MkkpmowhDaezwPe25JNFXd9hthY1HirdTC8cC5Q8JKWZshFErzAs2Hb2efVsdeqWf0AdCn1CnerfuFCrmNJcrxxvELLqBXagwGB/ShqAiLHCXisY/20hHZZg7tLM9COQlMxPOyT8Z5QTmbpm93gp2xDrYWdMcx3Los2xaInJd8HQ3X2tI2oZ6gVp72ET5q4B8mr25+HKoaigr01bSmFdMquHiUO8pQThCU6WVHGa67eFTQuFOzbCAhu+hVyBXBHWW/3eB/J7/aaJUzuDWSUKU/pL6zLZYRFbKY4ZdWlbYaYdjKbsyUekx3VOvYJckk3phI9Zm8WKpD+SkRc6GaEy8tUfoXS+z0xEWsnT7Cd6SRLzZI7Wa2KQdknRimOgKsNgomeTN85kLDJvfyYE/dNRM9YosNh0i9YC7USKgFRaLKlwsll2MXjZ+fwTwgJJA+KXyRyofgbrXWEd9e9q85JUcD4ysm37B7F9qnkhxBtXf3g+4FE1qvTMnf6hKCtXFFTf7MHcQ/GAmPQaRP6nQYOR73RRqKS5zCNUDA3ziYU+BJXxuqHQX3FqMCdnPoYup5fNkh9ESLRB5e8u7wFMKO+pJBzdD5i/Yu7+ZACQ8xbJLMjxZlWQuRjQR2w1hFAGsFPQXkhQCX0YTHY9yCC/fqHbqDPWHqlUZiy1EZR8OqRf1ndbwWVgwM/jCHj2GcpkU+qq+uivQvrMOMq/he0KzLrtDBo8FIxD/5zIqMj7HFiC94ehTpyElvipdx3BpVsQaVftso8h1z094HSbm0iuctrkjsziKpR2FsmjGY+813WIzXbdL2p9bfJ2e+e5dv3tU/CM8+bW4FO94BCmduxc0dZ9gOs5K9+4E/WeINj4sadshzx/xyw0cwm1UOJZXlGVhNTTqmra6CSP3yz9ZmPuV4YR6QrFzMcC4/gpacwgorXSxNc0vBYabPtdz7KFH+eXjOA3HIpZBzIPBZ0pdzpi8tr9Kj5z1bt71tmVszag6aLfYWax+OYEukxOV7mVjCYtpLmnj63byojALFsoT7ABAEzEfwLMj7zt11Ie/umsbd3m8sFBk3hr2n6Y88f88JL858X3tybS95okWHvK10XzjXKgVuy1/MWGILWWaARBhy5GLKoDAi70NUiCD2K2WG3sfc/nrdH9C32QmbQ/TWbjiWzu0tk5qcDs2fzgB/m2QB5xd6YwQAEMJ3mROK9QOTzFhHz+waPijZT1AgPStLQxMjZhcdC/OvWKzWRsQmMmSgv1oLfdGBVlg19ZbjWG5xSji7wxM29BuhZx5b+1PQG32IWZ0ccp/4wxtCidW6AnQfD+bmIbtxNI6+ek3l80pMhsa1gCs6usT3/iHhtsltBZcbRSe3+RacU9K72lpfVzL8XYt2YxojUwAArC91hX+0r8fE0t7A1lLH/BomM9ElOJCehf41SnzzF8i//vvWbrYPFwyavIXm2zdYhGdfiqviTXLDbdzXEURHlckv8LwtMIeN9SbXjejTA12ucKL4qDgOWSu+D7rTVivo6vEZyCYd6qlRQlXS2CAlCbpo1L3X54PMNHNlKSEpPUdlL8ap2TR576Apz8mWM/cxVeFtDO7OMGAPYVi0yFKFhxlDKumXDpgbJ+qJKJfGbpu73OQbE9hEfJTo2UenFn8uSV437nPzsSR7OEEGGn/QHicfvBWRNYngc9Oqd61IMEfBU2+0lG1vdjNU9Q4jTZkObJzcbdCtImuSqj6pvcFr347cnljld0MIC0+rcYWUqWIlIaPeVjP2Pv6d1SPPhE+ZSllhLgXtPbZdaBZFqDrxFOclwdPrNUikMVn+7s2l+vRj/KeuSGwOFjgHx7twrXF+1Bw7e/cc1U389F8xYMr5K/ivkLUo7W9rfe1MldkS2aIQAHD70g0KpJc2j5Wlnb3dNRqd7tfUf3982/T04tK996VllcR7+xiY6RYgv+7ca8BF7sYGAAD10ov35i+C2ttamZsb2F4jHcbfI/9g70RoiWXTLWQRox0GVRnlcEnxg/sQgb1qrPn0BQTPqXzTQrCeXdQWJ6UKw836O8FtB+7MMKMdJ/rYBTcDZ3KsSG/6c7CHNLAE0oVAWnN+Wy7F5H69z3rvg97ocYTfuKD2eYaR1G+3puivr7G0Zq/wEoK6beWpUyDLHMOxxYvY4cgUIdTHSs67rCBgOo7nDQlqdbpN1EgXMSlVj8voTdbpzVtJ3ThV/TJ6XQ8u0lxFdDVpylrx47WZ7QlzOwm/fGI82Ctmx82jypZc6KyVky6YMNO43dZHk5mqExmBybhJ+HfjFMBu5XwEAEAC4tp3Fn0dq2u0CtUvkP/atmlmYGD9lf11885f/xzml3dDkssCmFsZmehdQzXNL6H/W90WVvoG5v9t3f+C/rFu8l+H0L/OhUL/O9w/Vk/16ygGlvYm9i7XyID5d9l/nMWl44G1jp6Zgf5/ezz4f+q/P340HgADuXTqj78ObDuwpsOYvxwNyC4LaWdg62iiZ/DfzuTf2Cs2wj+D4P4giIWOiSXYPKmXpfDdLeTWrSo+0fd0+JqMtW4NDTBy4hqY8neVVgCM2fWcVw3nHvxnX6JBAR0S9Ihy+oVBXKjTA3vqq1P3WVQEC3nSIroVWY8fBW2LqL43HmD7ZNjfD2VPSkqydRzmINrrePH2MNcQ3xUe0Bs67d1p5H3ZxdqsQU+AKnOW1co77Q6/6aPytU2WZSnbAwEA6L7ybNVCx9LE0MDO/hqzVdJLcP+ewV+jhRl+Tf3h4wFbsDwiJAuyyIVdIDlcv6fk/U/YkDdWJMdiMh4VgbCd6gydu6WCTMihjQt0Xnhjx4jR+SIYT6OsnSi2STU4rZ2sJa2p0vK/tcDBPZal3n7TGflWxg5eddorVn6SC/rm/ZsUx7B/F1srFyXUEAAAr+tXR9/A2tzK5Ro1p/s1FWTmYGdvZWHianANPvNV+CBdHbvrdGK+Kwf5959aGFjag7e6fXjtfWgWZJ8TnpaaBgSNBJSAyFl616gyFKS2AF2oiQqxT0blDGN0NLdTqLOYZXnU4w3kNjwPPO8X6Y4Gw61PxHTi5Nr2P/e2hQymN4IeLcRyty1JsIWMTlbzoL4l6HXzQ1X3l0aNzHCjRMyPr9TTQjZ0M2lBYYSDEEj5O0OTyImDxLNokKeh8fQ93s3O5oHZRRcU6ZFjy5AKS/sb+I5PuhKWM3OjqeY0+Y23ovm+nhmpDKHmLAEAwAbisioJXr1Kf/+qY29iZQleKMbOkhvvbqHB9J9nbUKySPrVQPLW2vAtdm1pfLaj8F2iEz/KiOXgG0jKons/7XfHEz1oKSFFdYPEpELPU+ezGr2DxCebAh5jemJLN9AmpaJqcYEj+6K/kWW+dOMAKs4pHUX913tRC3xH61/dw+rSa+Du1bP79+0dPC/9HhbEplvIvp80svthIJeUX+9DPolZf+cCrdiGUdp+JCVUYck/CCdbW4ee/hCXz3I31wPbkyL0ocBdBRUZbN31t8KcJW5DzWymMwTGnJ1HDkFERtIqiDNGuob7xa91ZQ73VAulTM3b5/0Wom6wRb8OR8o5uUDx+NqSr5/0F7kCAJBzaadivVKuVo4GtuY6LnbX6L3c1woE0jdwNDC3sr5GT5b4o4D/vo9b6FiDtylPyL86NewJT0v2rhMjsa1UiIioFTomZG8YxgYFJQkJOvuoC4/ei0euEXwKTD5zHzyyMODDymsyD5t7DFhQzKVRaBN9tSMTSjsMMjCUmIvKeqamls85Rq16JQ9tgFsZpIMmvYBfvwFy/MclnUl2r7yJDGupPvMNaK82Jg3+e0xSYaBQ+eNBGleO8hF+VdkHKPJoPPkfepneT8OPONn85wwCTek2egYAAMeX1kjyz2r0szuffk/JXxc+dP+0lg0/mqRK39mzdQou7xyqIFXo4wMqGKdc6i2UdcrdDj3jA8QAvIodTc3lRy1PB44nF9WC6RIy3kNW4jFE4shEdsnNEHbBF6pwnx0/yR0tmFZ87xJM17BtIewbcCwLcWf8Qmy5NaqgjebvrAVKl7gcAAAouzRrmT/L+rI7WbeMqY8AmtiWR1IaSDugul8FXg2mFDRZn9V//jKfyPo+P/Lc+UEy25kwRwHVszO2IrWUjw+68gg3tFoftrWxNRmkaXRhNB0UNJfjpKHkG8kWiwtrk7xoU0Nm8+mjlJqT2hZ83zzEvzpazckuw79I+GHY2/E9Q/ohU5C+apQPHs4rW5L7IruIf1fjNLP99K+ZV/4fTAas9MyutS5C/2sqSORfH2DnDG2Rtg+U2jtkpelGZLvp2rulyllHyj7OKmQxf1RQJgN4zryFiTzciYR5zs5yLO/G5mvFCVV6hVcEGaE96zkOgIFRD2VmRhTNbTnKFO3IXUR88JJ7rzFvd1dKwQ5p1451R5JhFtNOsVt61w7z9g5angBP4Us5ft/PwVOnWDBriGx0eSeh2mP0tLTQfpywvnLThqrh73ja51eREMmKOSD+c+bKMmwhFQAANcirPg58X4H//2C2M/5aAAXl97Kd3UOykoy9H2cVlOE72hmVaXvFezrk2xmVxQvEZZiZJGTkxSVlukCSSuIdsr33mRTE6Xu6JQbmIKEEvg50EWUKW8IAAAhcedJta2Bn5WCrd50JGvElOJAJC6flNa4j6l8x/yePtV8jWDvomv/GWs4/qZS/poKM7S2us9zC9JvoP64M9W8EsjZ3MDK5TsOCfhv+x3nQ/kaoP7jsGa+AB+nZXWfR/M4VQ/xxyZivEtDEQsfoOs9aHFcO8sd5MVwlpOl1mortahH+JyujX/l//8V/aQD/B/eP1f9oOcvB3sT8emuhZD+nXVkp0nds1H+y/4WK+aFCCEgsqP9o/Pb1EiQAwtfvZTz56/+/+Q6L76Hfvt2BAAxq8xPod++p+B747VFyPDCgGATw61dEfI/79hQ0PhiOAQb4jdPo/+H9+Oz0//+gAWuC9bDAL05S/5yEA0ZCgAN+fZIaPM1vTxWTgqWp/FPYP93A76nfngnGAafCA786n/w97Nu9E+Cw9R/Dvj1UfFnxsMCKh0kJ/GrzBbiub/cxkIHp0vwJ6oerq5cpxANTSEoF/M6WiJ/jiMBwlpfgvtsSAZ74t/77TbDEG3+B/H5LxGViScHEatMAV3DzwfV+a7LTgel982vqD9z8y1TfBFPNQAtc0bgHV/6tA80Iptz398iXddVfXR/tdMDvGtvgqr8dkajAVBPSA1c0ti+TSwIm1/0y9vee9s8F04AJHvgl9E8kszEAv29n/67kgF9CryaZHEzy6q/p+r93ZdCDqRZhBK7jZF8mnApMeN6vA/zDxP65eGYw8bBMwHVN7N+/A1pfFuQf/jW49G+NZfA7YOuvqT/wry9TTQammosZuIpZ/fOKg8sO/w3sZcX+f/633i4uGH/vB/zvferfH7h7QMDvuMO/eyUQ3QKu4A6Dp/ytw8oAlrLtr6lXnr+A6+ZmAa7g2/6cSgdGDf819Ye+7c/5zGD8zavwv/dtv5s4feNO8oEVX4kV+G/5tt8H/dY0FAQL6nYb+C/aoN/H/dbAuwsWV40N+K8YlJe1IStYG4reAf7MJvx5IG6wQIXXCvQDmxC8lt/aYRJgtSRlB/4HNuH38b81piTB4gtzAP8LC+57Ad96QTJgArg4gf+RG/b7NzYxLuAKHtR3yxbfuDHgU6KkX1N/5EH9Y6HlGy/l20F07UkKN3ANi+f3hz2hu8Dv+DM/xxGD4SIuwX3vz/x8HkENVuP5XzH/ZMYmxgNcwZr5OZUSjJr0a+r31szPq8EEVo3D30RfrSjUYPJ1eIGruzI/TwAElkDdb8OvlgItWAp0fMB1DJmf4xnB8P5XwH9nyPy8TnfA6rRyxRBXqxb4/EmdH7i+F/PzhDjAF56uHORqKTGAP7cLANe0YX6eDxtYPjFXi/AnT/SwgsCVHJjffaLX/B3u1YTjgglv/kGAf5ovP5cLvmaLIQT8vvnyrcgfOS1/i7wQtPwn9hvfBQb2r+/dA+4BxvgA8Fror9/+LwAA//9JEAV4MlwAAA=="); err != nil { + panic("add binary content to resource manager failed: " + err.Error()) + } +} diff --git a/server/internal/library/hggen/internal/service/install.go b/server/internal/library/hggen/internal/service/install.go new file mode 100644 index 0000000..cb7257c --- /dev/null +++ b/server/internal/library/hggen/internal/service/install.go @@ -0,0 +1,229 @@ +package service + +import ( + "context" + "runtime" + "strings" + + "github.com/gogf/gf/v2/container/garray" + "github.com/gogf/gf/v2/container/gset" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gcmd" + "github.com/gogf/gf/v2/os/genv" + "github.com/gogf/gf/v2/os/gfile" + "github.com/gogf/gf/v2/text/gstr" + "github.com/gogf/gf/v2/util/gconv" + + "hotgo/internal/library/hggen/internal/utility/allyes" + "hotgo/internal/library/hggen/internal/utility/mlog" +) + +var ( + Install = serviceInstall{} +) + +type serviceInstall struct{} + +type serviceInstallAvailablePath struct { + dirPath string + filePath string + writable bool + installed bool +} + +func (s serviceInstall) Run(ctx context.Context) (err error) { + // Ask where to install. + paths := s.getAvailablePaths() + if len(paths) <= 0 { + mlog.Printf("no path detected, you can manually install gf by copying the binary to path folder.") + return + } + mlog.Printf("I found some installable paths for you(from $PATH): ") + mlog.Printf(" %2s | %8s | %9s | %s", "Id", "Writable", "Installed", "Path") + + // Print all paths status and determine the default selectedID value. + var ( + selectedID = -1 + newPaths []serviceInstallAvailablePath + pathSet = gset.NewStrSet() // Used for repeated items filtering. + ) + for _, path := range paths { + if !pathSet.AddIfNotExist(path.dirPath) { + continue + } + newPaths = append(newPaths, path) + } + paths = newPaths + for id, path := range paths { + mlog.Printf(" %2d | %8t | %9t | %s", id, path.writable, path.installed, path.dirPath) + if selectedID == -1 { + // Use the previously installed path as the most priority choice. + if path.installed { + selectedID = id + } + } + } + // If there's no previously installed path, use the first writable path. + if selectedID == -1 { + // Order by choosing priority. + commonPaths := garray.NewStrArrayFrom(g.SliceStr{ + s.getGoPathBin(), + `/usr/local/bin`, + `/usr/bin`, + `/usr/sbin`, + `C:\Windows`, + `C:\Windows\system32`, + `C:\Go\bin`, + `C:\Program Files`, + `C:\Program Files (x86)`, + }) + // Check the common installation directories. + commonPaths.Iterator(func(k int, v string) bool { + for id, aPath := range paths { + if strings.EqualFold(aPath.dirPath, v) { + selectedID = id + return false + } + } + return true + }) + if selectedID == -1 { + selectedID = 0 + } + } + + if allyes.Check() { + // Use the default selectedID. + mlog.Printf("please choose one installation destination [default %d]: %d", selectedID, selectedID) + } else { + for { + // Get input and update selectedID. + var ( + inputID int + input = gcmd.Scanf("please choose one installation destination [default %d]: ", selectedID) + ) + if input != "" { + inputID = gconv.Int(input) + } + // Check if out of range. + if inputID >= len(paths) || inputID < 0 { + mlog.Printf("invalid install destination Id: %d", inputID) + continue + } + selectedID = inputID + break + } + } + + // Get selected destination path. + dstPath := paths[selectedID] + + // Install the new binary. + mlog.Debugf(`copy file from "%s" to "%s"`, gfile.SelfPath(), dstPath.filePath) + err = gfile.CopyFile(gfile.SelfPath(), dstPath.filePath) + if err != nil { + mlog.Printf("install gf binary to '%s' failed: %v", dstPath.dirPath, err) + mlog.Printf("you can manually install gf by copying the binary to folder: %s", dstPath.dirPath) + } else { + mlog.Printf("gf binary is successfully installed to: %s", dstPath.filePath) + } + return +} + +// IsInstalled checks and returns whether the binary is installed. +func (s serviceInstall) IsInstalled() bool { + paths := s.getAvailablePaths() + for _, aPath := range paths { + if aPath.installed { + return true + } + } + return false +} + +// getGoPathBinFilePath retrieves ad returns the GOPATH/bin path for binary. +func (s serviceInstall) getGoPathBin() string { + if goPath := genv.Get(`GOPATH`).String(); goPath != "" { + return gfile.Join(goPath, "bin") + } + return "" +} + +// getAvailablePaths returns the installation paths data for the binary. +func (s serviceInstall) getAvailablePaths() []serviceInstallAvailablePath { + var ( + folderPaths []serviceInstallAvailablePath + binaryFileName = "gf" + gfile.Ext(gfile.SelfPath()) + ) + // $GOPATH/bin + if goPathBin := s.getGoPathBin(); goPathBin != "" { + folderPaths = s.checkAndAppendToAvailablePath( + folderPaths, goPathBin, binaryFileName, + ) + } + switch runtime.GOOS { + case "darwin": + darwinInstallationCheckPaths := []string{"/usr/local/bin"} + for _, v := range darwinInstallationCheckPaths { + folderPaths = s.checkAndAppendToAvailablePath( + folderPaths, v, binaryFileName, + ) + } + fallthrough + + default: + // Search and find the writable directory path. + envPath := genv.Get("PATH", genv.Get("Path").String()).String() + if gstr.Contains(envPath, ";") { + // windows. + for _, v := range gstr.SplitAndTrim(envPath, ";") { + if v == "." { + continue + } + folderPaths = s.checkAndAppendToAvailablePath( + folderPaths, v, binaryFileName, + ) + } + } else if gstr.Contains(envPath, ":") { + // *nix. + for _, v := range gstr.SplitAndTrim(envPath, ":") { + if v == "." { + continue + } + folderPaths = s.checkAndAppendToAvailablePath( + folderPaths, v, binaryFileName, + ) + } + } else if envPath != "" { + folderPaths = s.checkAndAppendToAvailablePath( + folderPaths, envPath, binaryFileName, + ) + } else { + folderPaths = s.checkAndAppendToAvailablePath( + folderPaths, "/usr/local/bin", binaryFileName, + ) + } + } + return folderPaths +} + +// checkAndAppendToAvailablePath checks if `path` is writable and already installed. +// It adds the `path` to `folderPaths` if it is writable or already installed, or else it ignores the `path`. +func (s serviceInstall) checkAndAppendToAvailablePath(folderPaths []serviceInstallAvailablePath, dirPath string, binaryFileName string) []serviceInstallAvailablePath { + var ( + filePath = gfile.Join(dirPath, binaryFileName) + writable = gfile.IsWritable(dirPath) + installed = gfile.Exists(filePath) + ) + if !writable && !installed { + return folderPaths + } + return append( + folderPaths, + serviceInstallAvailablePath{ + dirPath: dirPath, + writable: writable, + filePath: filePath, + installed: installed, + }) +} diff --git a/server/internal/library/hggen/internal/utility/allyes/allyes.go b/server/internal/library/hggen/internal/utility/allyes/allyes.go new file mode 100644 index 0000000..146eda4 --- /dev/null +++ b/server/internal/library/hggen/internal/utility/allyes/allyes.go @@ -0,0 +1,22 @@ +package allyes + +import ( + "github.com/gogf/gf/v2/os/gcmd" + "github.com/gogf/gf/v2/os/genv" +) + +const ( + EnvName = "GF_CLI_ALL_YES" +) + +// Init initializes the package manually. +func Init() { + if gcmd.GetOpt("y") != nil { + genv.MustSet(EnvName, "1") + } +} + +// Check checks whether option allow all yes for command. +func Check() bool { + return genv.Get(EnvName).String() == "1" +} diff --git a/server/internal/library/hggen/internal/utility/mlog/mlog.go b/server/internal/library/hggen/internal/utility/mlog/mlog.go new file mode 100644 index 0000000..4bf00c5 --- /dev/null +++ b/server/internal/library/hggen/internal/utility/mlog/mlog.go @@ -0,0 +1,66 @@ +package mlog + +import ( + "context" + + "github.com/gogf/gf/v2/os/gcmd" + "github.com/gogf/gf/v2/os/genv" + "github.com/gogf/gf/v2/os/glog" +) + +const ( + headerPrintEnvName = "GF_CLI_MLOG_HEADER" +) + +var ( + ctx = context.TODO() + logger = glog.New() +) + +func init() { + logger.SetStack(false) + if genv.Get(headerPrintEnvName).String() == "1" { + logger.SetHeaderPrint(true) + } else { + logger.SetHeaderPrint(false) + } + if gcmd.GetOpt("debug") != nil || gcmd.GetOpt("gf.debug") != nil { + logger.SetDebug(true) + } else { + logger.SetDebug(false) + } +} + +// SetHeaderPrint enables/disables header printing to stdout. +func SetHeaderPrint(enabled bool) { + logger.SetHeaderPrint(enabled) + if enabled { + _ = genv.Set(headerPrintEnvName, "1") + } else { + _ = genv.Set(headerPrintEnvName, "0") + } +} + +func Print(v ...interface{}) { + logger.Print(ctx, v...) +} + +func Printf(format string, v ...interface{}) { + logger.Printf(ctx, format, v...) +} + +func Fatal(v ...interface{}) { + logger.Fatal(ctx, v...) +} + +func Fatalf(format string, v ...interface{}) { + logger.Fatalf(ctx, format, v...) +} + +func Debug(v ...interface{}) { + logger.Debug(ctx, v...) +} + +func Debugf(format string, v ...interface{}) { + logger.Debugf(ctx, format, v...) +} diff --git a/server/internal/library/hggen/internal/utility/utils/utils.go b/server/internal/library/hggen/internal/utility/utils/utils.go new file mode 100644 index 0000000..aee71b8 --- /dev/null +++ b/server/internal/library/hggen/internal/utility/utils/utils.go @@ -0,0 +1,45 @@ +package utils + +import ( + "github.com/gogf/gf/v2/os/gfile" + "github.com/gogf/gf/v2/text/gstr" + "golang.org/x/tools/imports" + + "hotgo/internal/library/hggen/internal/consts" + "hotgo/internal/library/hggen/internal/utility/mlog" +) + +// GoFmt formats the source file and adds or removes import statements as necessary. +func GoFmt(path string) { + replaceFunc := func(path, content string) string { + res, err := imports.Process(path, []byte(content), nil) + if err != nil { + mlog.Printf(`error format "%s" go files: %v`, path, err) + return content + } + return string(res) + } + + var err error + if gfile.IsFile(path) { + // File format. + if gfile.ExtName(path) != "go" { + return + } + err = gfile.ReplaceFileFunc(replaceFunc, path) + } else { + // Folder format. + err = gfile.ReplaceDirFunc(replaceFunc, path, "*.go", true) + } + if err != nil { + mlog.Printf(`error format "%s" go files: %v`, path, err) + } +} + +// IsFileDoNotEdit checks and returns whether file contains `do not edit` key. +func IsFileDoNotEdit(filePath string) bool { + if !gfile.Exists(filePath) { + return true + } + return gstr.Contains(gfile.GetContents(filePath), consts.DoNotEditKey) +} diff --git a/server/internal/library/hggen/views/column.go b/server/internal/library/hggen/views/column.go new file mode 100644 index 0000000..d25060b --- /dev/null +++ b/server/internal/library/hggen/views/column.go @@ -0,0 +1,262 @@ +// Package views +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2022 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package views + +import ( + "context" + "fmt" + "github.com/gogf/gf/v2/database/gdb" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/text/gregex" + "github.com/gogf/gf/v2/text/gstr" + "github.com/gogf/gf/v2/util/gconv" + "hotgo/internal/library/hggen/internal/cmd/gendao" + "hotgo/internal/model/input/sysin" + "strings" +) + +// DoTableColumns 获取指定表生成字段列表 +func DoTableColumns(ctx context.Context, in sysin.GenCodesColumnListInp, config gendao.CGenDaoInput) (fields []*sysin.GenCodesColumnListModel, err error) { + var ( + sql = "select ORDINAL_POSITION as `id`, COLUMN_NAME as `name`, COLUMN_COMMENT as `dc`, DATA_TYPE as `dataType`, COLUMN_TYPE as `sqlType`, CHARACTER_MAXIMUM_LENGTH as `length`, IS_NULLABLE as `isAllowNull`, COLUMN_DEFAULT as `defaultValue`, COLUMN_KEY as `index`, EXTRA as `extra` from information_schema.COLUMNS where TABLE_SCHEMA = '%s' and TABLE_NAME = '%s' ORDER BY `id` ASC" + conf = g.DB(in.Name).GetConfig() + ) + + err = g.DB(in.Name).Ctx(ctx).Raw(fmt.Sprintf(sql, conf.Name, in.Table)).Scan(&fields) + if err != nil { + return nil, err + } + + if len(fields) == 0 { + return + } + + for _, field := range fields { + if in.IsLink == 1 { + CustomLinkAttributes(ctx, in.Alias, field, config) + } else { + CustomAttributes(ctx, field, config) + } + } + + return +} + +// CustomLinkAttributes 可自定义关联表的字段属性 +func CustomLinkAttributes(ctx context.Context, alias string, field *sysin.GenCodesColumnListModel, in gendao.CGenDaoInput) { + field.GoName, field.GoType, field.TsName, field.TsType = GenGotype(ctx, field, in) + + field.GoName = gstr.UcFirst(alias + field.GoName) + field.TsName = gstr.LcFirst(field.GoName) + + setDefaultQueryWhere(field) + setDefaultValue(field) +} + +// CustomAttributes 可自定义的字段属性 +func CustomAttributes(ctx context.Context, field *sysin.GenCodesColumnListModel, in gendao.CGenDaoInput) { + field.GoName, field.GoType, field.TsName, field.TsType = GenGotype(ctx, field, in) + setDefault(field) +} + +// GenGotype 生成字段的go类型 +func GenGotype(ctx context.Context, field *sysin.GenCodesColumnListModel, in gendao.CGenDaoInput) (goName, typeName, tsName, tsType string) { + var ( + err error + ) + + tsName = getJsonTagFromCase(field.Name, in.JsonCase) + goName = gstr.CaseCamel(field.Name) + + typeName, err = CheckLocalTypeForField(ctx, field.DataType, nil) + if err != nil { + panic(err) + } + switch typeName { + case gdb.LocalTypeDate, gdb.LocalTypeDatetime: + if in.StdTime { + typeName = "time.Time" + } else { + typeName = "*gtime.Time" + } + + case gdb.LocalTypeInt64Bytes: + typeName = "int64" + + case gdb.LocalTypeUint64Bytes: + typeName = "uint64" + + // Special type handle. + case gdb.LocalTypeJson, gdb.LocalTypeJsonb: + if in.GJsonSupport { + typeName = "*gjson.Json" + } else { + typeName = "string" + } + } + + tsType = ShiftMap[typeName] + + return +} + +// CheckLocalTypeForField checks and returns corresponding type for given db type. +func CheckLocalTypeForField(ctx context.Context, fieldType string, fieldValue interface{}) (string, error) { + var ( + typeName string + typePattern string + ) + match, _ := gregex.MatchString(`(.+?)\((.+)\)`, fieldType) + if len(match) == 3 { + typeName = gstr.Trim(match[1]) + typePattern = gstr.Trim(match[2]) + } else { + typeName = gstr.Split(fieldType, " ")[0] + } + typeName = strings.ToLower(typeName) + switch typeName { + case + "binary", + "varbinary", + "blob", + "tinyblob", + "mediumblob", + "longblob": + return gdb.LocalTypeBytes, nil + + case + "int", + "tinyint", + "small_int", + "smallint", + "medium_int", + "mediumint", + "serial": + if gstr.ContainsI(fieldType, "unsigned") { + return gdb.LocalTypeUint, nil + } + return gdb.LocalTypeInt, nil + + case + "big_int", + "bigint", + "bigserial": + if gstr.ContainsI(fieldType, "unsigned") { + return gdb.LocalTypeUint64, nil + } + return gdb.LocalTypeInt64, nil + + case + "real": + return gdb.LocalTypeFloat32, nil + + case + "float", + "double", + "decimal", + "money", + "numeric", + "smallmoney": + return gdb.LocalTypeFloat64, nil + + case + "bit": + // It is suggested using bit(1) as boolean. + if typePattern == "1" { + return gdb.LocalTypeBool, nil + } + s := gconv.String(fieldValue) + // mssql is true|false string. + if strings.EqualFold(s, "true") || strings.EqualFold(s, "false") { + return gdb.LocalTypeBool, nil + } + if gstr.ContainsI(fieldType, "unsigned") { + return gdb.LocalTypeUint64Bytes, nil + } + return gdb.LocalTypeInt64Bytes, nil + + case + "bool": + return gdb.LocalTypeBool, nil + + case + "date": + return gdb.LocalTypeDate, nil + + case + "datetime", + "timestamp", + "timestamptz": + return gdb.LocalTypeDatetime, nil + + case + "json": + return gdb.LocalTypeJson, nil + + case + "jsonb": + return gdb.LocalTypeJsonb, nil + + default: + // Auto-detect field type, using key match. + switch { + case strings.Contains(typeName, "text") || strings.Contains(typeName, "char") || strings.Contains(typeName, "character"): + return gdb.LocalTypeString, nil + + case strings.Contains(typeName, "float") || strings.Contains(typeName, "double") || strings.Contains(typeName, "numeric"): + return gdb.LocalTypeFloat64, nil + + case strings.Contains(typeName, "bool"): + return gdb.LocalTypeBool, nil + + case strings.Contains(typeName, "binary") || strings.Contains(typeName, "blob"): + return gdb.LocalTypeBytes, nil + + case strings.Contains(typeName, "int"): + if gstr.ContainsI(fieldType, "unsigned") { + return gdb.LocalTypeUint, nil + } + return gdb.LocalTypeInt, nil + + case strings.Contains(typeName, "time"): + return gdb.LocalTypeDatetime, nil + + case strings.Contains(typeName, "date"): + return gdb.LocalTypeDatetime, nil + + default: + return gdb.LocalTypeString, nil + } + } +} + +// getJsonTagFromCase call gstr.Case* function to convert the s to specified case. +func getJsonTagFromCase(str, caseStr string) string { + switch gstr.ToLower(caseStr) { + case gstr.ToLower("Camel"): + return gstr.CaseCamel(str) + + case gstr.ToLower("CamelLower"): + return gstr.CaseCamelLower(str) + + case gstr.ToLower("Kebab"): + return gstr.CaseKebab(str) + + case gstr.ToLower("KebabScreaming"): + return gstr.CaseKebabScreaming(str) + + case gstr.ToLower("Snake"): + return gstr.CaseSnake(str) + + case gstr.ToLower("SnakeFirstUpper"): + return gstr.CaseSnakeFirstUpper(str) + + case gstr.ToLower("SnakeScreaming"): + return gstr.CaseSnakeScreaming(str) + } + return str +} diff --git a/server/internal/library/hggen/views/column_default.go b/server/internal/library/hggen/views/column_default.go new file mode 100644 index 0000000..29cb153 --- /dev/null +++ b/server/internal/library/hggen/views/column_default.go @@ -0,0 +1,312 @@ +// Package views +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2022 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package views + +import ( + "github.com/gogf/gf/v2/text/gstr" + "hotgo/internal/consts" + "hotgo/internal/model/input/sysin" + "strings" +) + +// 默认表单组件映射 Ts -> 表单组件 +var defaultFormModeMap = map[string]string{ + TsTypeString: FormModeInput, + TsTypeNumber: FormModeInputNumber, + TsTypeBoolean: FormModeInputNumber, + TsTypeArray: FormModeInputDynamic, + TsTypeTuple: FormModeInputDynamic, + TsTypeAny: FormModeInput, +} + +var defaultEditSwitch = map[string]bool{ + "id": false, + "level": false, + "tree": false, + "created_by": false, + "updated_by": false, + "created_at": false, + "updated_at": false, + "deleted_at": false, +} +var defaultListSwitch = map[string]bool{ + "level": false, + "tree": false, + "deleted_at": false, +} + +var defaultExportSwitch = map[string]bool{ + "level": false, + "tree": false, + "deleted_at": false, +} + +var defaultQuerySwitch = map[string]bool{ + "level": false, + "tree": false, + "deleted_at": false, +} + +var defaultSort = map[string]bool{ + "id": true, + "sort": true, +} + +// 默认表单验证映射 物理类型命名识别 +var defaultFormRoleMap = map[string]string{ + "mobile": FormRolePhone, + "qq": FormRoleQq, + "email": FormRoleEmail, + "id_card": FormRoleIdCard, + "bank_card": FormRoleBankCard, + "password": FormRolePassword, + "pass": FormRolePassword, + "price": FormRoleAmount, +} + +// 默认查询条件映射 go类型识别 +var defaultWhereModeMap = map[string]string{ + GoTypeString: WhereModeLike, + GoTypeDate: WhereModeEq, + GoTypeDatetime: WhereModeEq, + GoTypeInt: WhereModeEq, + GoTypeUint: WhereModeEq, + GoTypeInt64: WhereModeEq, + GoTypeUint64: WhereModeEq, + GoTypeIntSlice: WhereModeIn, + GoTypeInt64Slice: WhereModeIn, + GoTypeUint64Slice: WhereModeIn, + GoTypeFloat32: WhereModeEq, + GoTypeFloat64: WhereModeEq, + GoTypeBytes: WhereModeEq, + GoTypeTime: WhereModeEq, + GoTypeGTime: WhereModeEq, + GoTypeJson: WhereModeJsonContains, +} + +// setDefault 设置默认属性 +func setDefault(field *sysin.GenCodesColumnListModel) { + + setDefaultEdit(field) + + setDefaultFormMode(field) + + setDefaultFormRole(field) + + setDefaultDictType(field) + + setDefaultList(field) + + setDefaultExport(field) + + setDefaultQuery(field) + + setDefaultQueryWhere(field) + + setDefaultValue(field) + + if field.IsAllowNull == "YES" { + field.Required = true + } + + if strings.Contains(field.Index, consts.GenCodesIndexUNI) { + field.Unique = true + } + + if df, ok := defaultSort[field.Name]; ok { + field.IsSort = df + } + + if field.Dc == "" { + field.Dc = field.Name + } +} + +// setDefaultEdit 设置默认编辑 +func setDefaultEdit(field *sysin.GenCodesColumnListModel) { + field.IsEdit = true + + if field.Index == consts.GenCodesIndexPK { + field.IsEdit = false + return + } + + if df, ok := defaultEditSwitch[field.Name]; ok { + field.IsEdit = df + } +} + +// setDefaultFormMode 设置默认表单组件 +func setDefaultFormMode(field *sysin.GenCodesColumnListModel) { + field.FormMode = FormModeInput + if df, ok := defaultFormModeMap[field.TsType]; ok { + field.FormMode = df + } + + if gstr.HasSuffix(field.GoName, "Status") && IsNumberType(field.GoType) { + field.FormMode = FormModeSelect + return + } + + if field.GoName == "CreatedAt" { + field.FormMode = FormModeTimeRange + return + } + + if field.DataType == "datetime" || field.DataType == "timestamp" || field.DataType == "timestamptz" { + field.FormMode = FormModeTime + return + } + + if field.DataType == "date" { + field.FormMode = FormModeDate + return + } + + if field.GoType == GoTypeString && field.Length >= 200 && field.Length <= 500 { + field.FormMode = FormModeInputTextarea + return + } + + if field.GoType == GoTypeString && field.Length > 500 { + field.FormMode = FormModeInputEditor + return + } + +} + +// setDefaultFormRole 设置默认表单验证 +func setDefaultFormRole(field *sysin.GenCodesColumnListModel) { + field.FormRole = FormRoleNone + + switch field.GoType { + case GoTypeUint, GoTypeUint64: + field.FormRole = FormRoleNum + return + } + + if df, ok := defaultFormRoleMap[field.Name]; ok { + field.FormRole = df + } +} + +// setDefaultDictType 设置默认字典类型 +func setDefaultDictType(field *sysin.GenCodesColumnListModel) { + if gstr.HasSuffix(field.GoName, "Status") && IsNumberType(field.GoType) { + field.DictType = 3 // 默认系统状态ID + return + } +} + +// setDefaultList 设置默认列表 +func setDefaultList(field *sysin.GenCodesColumnListModel) { + field.IsList = true + switch field.GoType { + case GoTypeIntSlice, GoTypeInt64Slice, GoTypeUint64Slice, GoTypeBytes, GoTypeJson: + field.IsList = false + return + } + + if field.Length >= 500 { + field.IsList = false + return + } + + if df, ok := defaultListSwitch[field.Name]; ok { + field.IsList = df + } + return +} + +// setDefaultExport 设置默认导出 +func setDefaultExport(field *sysin.GenCodesColumnListModel) { + field.IsExport = true + switch field.GoType { + case GoTypeIntSlice, GoTypeInt64Slice, GoTypeUint64Slice, GoTypeBytes, GoTypeJson: + field.IsExport = false + return + } + + if field.Length >= 500 { + field.IsExport = false + return + } + + if df, ok := defaultExportSwitch[field.Name]; ok { + field.IsExport = df + } + return +} + +// setDefaultQuery 设置默认查询 +func setDefaultQuery(field *sysin.GenCodesColumnListModel) { + field.IsQuery = false + + if field.Index == consts.GenCodesIndexPK { + field.IsQuery = true + return + } + + if field.Index == consts.GenCodesIndexPK { + field.IsQuery = true + return + } + + if gstr.HasSuffix(field.GoName, "Status") && IsNumberType(field.GoType) { + field.IsQuery = true + return + } + + if field.GoName == "CreatedAt" { + field.IsQuery = true + return + } + + if df, ok := defaultQuerySwitch[field.Name]; ok { + field.IsQuery = df + } +} + +// setDefaultQueryWhere 设置默认查询条件 +func setDefaultQueryWhere(field *sysin.GenCodesColumnListModel) { + field.QueryWhere = WhereModeEq + + if field.GoName == "CreatedAt" { + field.QueryWhere = WhereModeBetween + return + } + + if field.Length >= 500 { + field.QueryWhere = WhereModeLikeAll + return + } + + if df, ok := defaultWhereModeMap[field.GoType]; ok { + field.QueryWhere = df + } +} + +// setDefaultValue 设置默认value +func setDefaultValue(field *sysin.GenCodesColumnListModel) { + var value interface{} + if field.DefaultValue == nil { + switch field.GoType { + case GoTypeString, GoTypeBytes, GoTypeDate, GoTypeDatetime, GoTypeTime, GoTypeGTime: + value = "" + case GoTypeIntSlice, GoTypeInt64Slice, GoTypeUint64Slice, GoTypeJson: + value = nil + case GoTypeInt, GoTypeUint, GoTypeInt64, GoTypeUint64: + value = 0 + case GoTypeBool: + value = false + } + } else { + value = consts.ConvType(field.DefaultValue, field.GoType) + } + + field.DefaultValue = value +} diff --git a/server/internal/library/hggen/views/column_map.go b/server/internal/library/hggen/views/column_map.go new file mode 100644 index 0000000..4ab6a69 --- /dev/null +++ b/server/internal/library/hggen/views/column_map.go @@ -0,0 +1,248 @@ +// Package views +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2022 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package views + +import ( + "github.com/gogf/gf/v2/text/gstr" + "hotgo/internal/model/input/sysin" +) + +// 字段映射关系 + +// go类型 +const ( + GoTypeString = "string" + GoTypeDate = "date" + GoTypeDatetime = "datetime" + GoTypeInt = "int" + GoTypeUint = "uint" + GoTypeInt64 = "int64" + GoTypeUint64 = "uint64" + GoTypeIntSlice = "[]int" + GoTypeInt64Slice = "[]int64" + GoTypeUint64Slice = "[]uint64" + GoTypeFloat32 = "float32" + GoTypeFloat64 = "float64" + GoTypeBytes = "[]byte" + GoTypeBool = "bool" + GoTypeTime = "time.Time" + GoTypeGTime = "*gtime.Time" + GoTypeJson = "*gjson.Json" +) + +var GoTypeNameMap = map[string]string{ + GoTypeString: GoTypeString, + GoTypeDate: GoTypeDate, + GoTypeDatetime: GoTypeDatetime, + GoTypeInt: GoTypeInt, + GoTypeUint: GoTypeUint, + GoTypeInt64: GoTypeInt64, + GoTypeUint64: GoTypeUint64, + GoTypeIntSlice: GoTypeIntSlice, + GoTypeInt64Slice: GoTypeInt64Slice, + GoTypeUint64Slice: GoTypeUint64Slice, + GoTypeFloat32: GoTypeFloat32, + GoTypeFloat64: GoTypeFloat64, + GoTypeBytes: GoTypeBytes, + GoTypeBool: GoTypeBool, + GoTypeTime: GoTypeTime, + GoTypeGTime: GoTypeGTime, + GoTypeJson: GoTypeJson, +} + +// ts类型 +const ( + TsTypeString = "string" + TsTypeNumber = "number" + TsTypeBoolean = "boolean" + TsTypeArray = "array" + TsTypeTuple = "tuple" + TsTypeAny = "any" +) + +var TsTypeNameMap = map[string]string{ + TsTypeString: TsTypeString, + TsTypeNumber: TsTypeNumber, + TsTypeBoolean: TsTypeBoolean, + TsTypeArray: TsTypeArray, + TsTypeTuple: TsTypeTuple, + TsTypeAny: TsTypeAny, +} + +// ShiftMap Go -> Ts 类型转换 +var ShiftMap = map[string]string{ + GoTypeString: TsTypeString, + GoTypeDate: TsTypeString, + GoTypeDatetime: TsTypeString, + GoTypeInt: TsTypeNumber, + GoTypeUint: TsTypeNumber, + GoTypeInt64: TsTypeNumber, + GoTypeUint64: TsTypeNumber, + GoTypeIntSlice: TsTypeArray, + GoTypeInt64Slice: TsTypeArray, + GoTypeUint64Slice: TsTypeArray, + GoTypeFloat32: TsTypeNumber, + GoTypeFloat64: TsTypeNumber, + GoTypeBytes: TsTypeString, + GoTypeBool: TsTypeBoolean, + GoTypeTime: TsTypeString, + GoTypeGTime: TsTypeString, + GoTypeJson: TsTypeAny, +} + +// 表单组件 +const ( + FormModeInput = "Input" // 文本输入 + FormModeInputNumber = "InputNumber" // 数字输入 + FormModeInputTextarea = "InputTextarea" // 文本域 + FormModeInputEditor = "InputEditor" // 富文本 + FormModeInputDynamic = "InputDynamic" // 动态键值对 + FormModeDate = "Date" // 日期选择(Y-M-D) + FormModeDateRange = "DateRange" // 日期范围选择 + FormModeTime = "Time" // 时间选择(Y-M-D H:i:s) + FormModeTimeRange = "TimeRange" // 时间范围选择 + FormModeRadio = "Radio" // 单选按钮 + FormModeCheckbox = "Checkbox" // 复选按钮 + FormModeSelect = "Select" // 单选下拉框 + FormModeSelectMultiple = "SelectMultiple" // 多选下拉框 + FormModeUploadImage = "UploadImage" // 单图上传 + FormModeUploadImages = "UploadImages" // 多图上传 + FormModeUploadFile = "UploadFile" // 单文件上传 + FormModeUploadFiles = "UploadFiles" // 多文件上传 + FormModeSwitch = "Switch" // 开关 + FormModeRate = "Rate" // 评分 +) + +var FormModes = []string{ + FormModeInput, FormModeInputNumber, FormModeInputTextarea, FormModeInputEditor, FormModeInputDynamic, + FormModeDate, FormModeDateRange, FormModeTime, FormModeTimeRange, + FormModeRadio, FormModeCheckbox, FormModeSelect, FormModeSelectMultiple, + FormModeUploadImage, FormModeUploadImages, FormModeUploadFile, FormModeUploadFiles, + FormModeSwitch, + FormModeRate, +} + +var FormModeMap = map[string]string{ + FormModeInput: "文本输入", + FormModeInputNumber: "数字输入", + FormModeInputTextarea: "文本域", + FormModeInputEditor: "富文本", + FormModeInputDynamic: "动态键值对", + FormModeDate: "日期选择(Y-M-D)", + FormModeDateRange: "日期范围选择", + FormModeTime: "时间选择(Y-M-D H:i:s)", + FormModeTimeRange: "时间范围选择", + FormModeRadio: "单选按钮", + FormModeCheckbox: "复选按钮", + FormModeSelect: "单选下拉框", + FormModeSelectMultiple: "多选下拉框", + FormModeUploadImage: "单图上传", + FormModeUploadImages: "多图上传", + FormModeUploadFile: "单文件上传", + FormModeUploadFiles: "多文件上传", + FormModeSwitch: "开关", + FormModeRate: "评分", +} + +// 表单验证 +const ( + FormRoleNone = "none" + FormRoleIp = "ip" + FormRolePercentage = "percentage" + FormRoleTel = "tel" + FormRolePhone = "phone" + FormRoleQq = "qq" + FormRoleEmail = "email" + FormRoleIdCard = "idCard" + FormRoleNum = "num" + FormRoleBankCard = "bankCard" + FormRoleWeibo = "weibo" + FormRoleUserName = "userName" + FormRoleAccount = "account" + FormRolePassword = "password" + FormRoleAmount = "amount" +) + +var FormRoleMap = map[string]string{ + FormRoleNone: "不验证", + FormRoleIp: "Ipv4或Ipv6", + FormRolePercentage: "0-100百分比", + FormRoleTel: "固话格式", + FormRolePhone: "手机号", + FormRoleQq: "QQ号码", + FormRoleEmail: "邮箱", + FormRoleIdCard: "身份证", + FormRoleNum: "非零正整数", + FormRoleBankCard: "银行卡", + FormRoleWeibo: "微博号", + FormRoleUserName: "用户名", + FormRoleAccount: "账号", + FormRolePassword: "密码", + FormRoleAmount: "金额", +} + +// 查询条件 +const ( + WhereModeEq = "=" // = + WhereModeNeq = "!=" // != + WhereModeGt = ">" // > + WhereModeGte = ">=" // >= + WhereModeLt = "<" // < + WhereModeLte = "<=" // <= + WhereModeIn = "IN" // IN (...) + WhereModeNotIn = "NOT IN" // NOT IN (...) + WhereModeBetween = "BETWEEN" // BETWEEN + WhereModeNotBetween = "NOT BETWEEN" // NOT BETWEEN + WhereModeLike = "LIKE" // LIKE + WhereModeLikeAll = "LIKE %...%" // LIKE %...% + WhereModeNotLike = "NOT LIKE" // NOT LIKE + WhereModeJsonContains = "JSON_CONTAINS(json_doc, val)" // JSON_CONTAINS(json_doc, val[, path]) // 判断是否包含某个json值 +) + +var WhereModes = []string{WhereModeEq, + WhereModeNeq, WhereModeGt, WhereModeGte, WhereModeLt, WhereModeLte, + WhereModeIn, WhereModeNotIn, + WhereModeBetween, WhereModeNotBetween, + WhereModeLike, WhereModeLikeAll, WhereModeNotLike, + WhereModeJsonContains, +} + +// IsNumberType 是否是数字类型 +func IsNumberType(goType string) bool { + switch goType { + case GoTypeInt, GoTypeUint, GoTypeInt64, GoTypeUint64: + return true + } + return false +} + +func HasColumn(masterFields []*sysin.GenCodesColumnListModel, column string) bool { + for _, field := range masterFields { + if field.GoName == column { + return true + } + } + return false +} + +func HasMaxSort(masterFields []*sysin.GenCodesColumnListModel) bool { + return HasColumn(masterFields, "Sort") +} + +func HasStatus(headOps []string, masterFields []*sysin.GenCodesColumnListModel) bool { + if !gstr.InArray(headOps, "status") { + return false + } + return HasColumn(masterFields, "Status") +} + +func HasSwitch(headOps []string, masterFields []*sysin.GenCodesColumnListModel) bool { + if !gstr.InArray(headOps, "switch") { + return false + } + return HasColumn(masterFields, "Switch") +} diff --git a/server/internal/library/hggen/views/curd.go b/server/internal/library/hggen/views/curd.go new file mode 100644 index 0000000..2a78d0b --- /dev/null +++ b/server/internal/library/hggen/views/curd.go @@ -0,0 +1,632 @@ +// Package views +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2022 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package views + +import ( + "context" + "fmt" + "github.com/gogf/gf/v2/errors/gerror" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gfile" + "github.com/gogf/gf/v2/os/gtime" + "github.com/gogf/gf/v2/os/gview" + "github.com/gogf/gf/v2/text/gstr" + "hotgo/internal/consts" + "hotgo/internal/library/hggen/internal/cmd/gendao" + "hotgo/internal/library/hggen/internal/utility/utils" + "hotgo/internal/model" + "hotgo/internal/model/input/sysin" + "hotgo/utility/convert" + "hotgo/utility/file" + "runtime" + "strings" +) + +var Curd = gCurd{} + +type gCurd struct{} + +type CurdStep struct { + HasMaxSort bool `json:"hasMaxSort"` + HasAdd bool `json:"hasAdd"` + HasBatchDel bool `json:"hasBatchDel"` + HasExport bool `json:"hasExport"` + HasEdit bool `json:"hasEdit"` + HasDel bool `json:"hasDel"` + HasView bool `json:"hasView"` + HasStatus bool `json:"hasStatus"` + HasSwitch bool `json:"hasSwitch"` + HasCheck bool `json:"hasCheck"` + HasMenu bool `json:"hasMenu"` +} + +type CurdOptionsJoin struct { + Uuid string `json:"uuid"` + LinkTable string `json:"linkTable"` + Alias string `json:"alias"` + LinkMode int `json:"linkMode"` + Field string `json:"field"` + MasterField string `json:"masterField"` + DaoName string `json:"daoName"` + Columns []*sysin.GenCodesColumnListModel `json:"columns"` +} + +type CurdOptionsMenu struct { + Icon string `json:"icon"` + Pid int `json:"pid"` + Sort int `json:"sort"` +} + +type CurdOptions struct { + AutoOps []string `json:"autoOps"` + ColumnOps []string `json:"columnOps"` + HeadOps []string `json:"headOps"` + Join []*CurdOptionsJoin `json:"join"` + Menu *CurdOptionsMenu `json:"menu"` + Step *CurdStep // 转换后的流程控制条件 + dictMap g.Map // 字典选项 -> 字段映射关系 + TemplateGroup string `json:"templateGroup"` +} + +type CurdPreviewInput struct { + In sysin.GenCodesPreviewInp // 提交参数 + DaoConfig gendao.CGenDaoInput // 生成dao配置 + Config *model.GenerateConfig // 生成配置 + view *gview.View // 视图模板 + content *sysin.GenCodesPreviewModel // 页面代码 + masterFields []*sysin.GenCodesColumnListModel // 主表字段属性 + pk *sysin.GenCodesColumnListModel // 主键属性 + options *CurdOptions // 生成选项 +} + +type CurdBuildEvent map[string]func(ctx context.Context) (err error) + +type CurdBuildInput struct { + PreviewIn *CurdPreviewInput // 预览参数 + BeforeEvent CurdBuildEvent // 前置事件 + AfterEvent CurdBuildEvent // 后置事件 +} + +func (l *gCurd) initInput(ctx context.Context, in *CurdPreviewInput) (err error) { + in.content = new(sysin.GenCodesPreviewModel) + in.content.Views = make(map[string]*sysin.GenFile) + + // 加载主表配置 + err = in.In.MasterColumns.Scan(&in.masterFields) + if err != nil { + return err + } + if len(in.masterFields) == 0 { + in.masterFields, err = DoTableColumns(ctx, sysin.GenCodesColumnListInp{Name: in.In.DbName, Table: in.In.TableName}, in.DaoConfig) + } + + // 主键属性 + in.pk = l.getPkField(in) + if in.pk == nil { + return gerror.New("initInput no primary key is set in the table!") + } + + // 加载选项 + err = in.In.Options.Scan(&in.options) + if err != nil { + return err + } + + initStep(ctx, in) + in.options.dictMap = make(g.Map) + in.options.TemplateGroup = "sys" + return +} + +func initStep(ctx context.Context, in *CurdPreviewInput) { + in.options.Step = new(CurdStep) + in.options.Step.HasMaxSort = HasMaxSort(in.masterFields) + in.options.Step.HasAdd = gstr.InArray(in.options.HeadOps, "add") + in.options.Step.HasBatchDel = gstr.InArray(in.options.HeadOps, "batchDel") + in.options.Step.HasExport = gstr.InArray(in.options.HeadOps, "export") + in.options.Step.HasEdit = gstr.InArray(in.options.ColumnOps, "edit") + in.options.Step.HasDel = gstr.InArray(in.options.ColumnOps, "del") + in.options.Step.HasView = gstr.InArray(in.options.ColumnOps, "view") + in.options.Step.HasStatus = HasStatus(in.options.ColumnOps, in.masterFields) + in.options.Step.HasSwitch = HasSwitch(in.options.ColumnOps, in.masterFields) + in.options.Step.HasCheck = gstr.InArray(in.options.ColumnOps, "check") + in.options.Step.HasMenu = gstr.InArray(in.options.AutoOps, "genMenuPermissions") +} + +func (l *gCurd) loadView(ctx context.Context, in *CurdPreviewInput) error { + view := gview.New() + err := view.SetConfigWithMap(g.Map{ + "Paths": "./resource/template/generate/default/curd", + "Delimiters": in.Config.Delimiters, + }) + if err != nil { + return err + } + + view.BindFuncMap(g.Map{ + "NowYear": gtime.Now().Year, // 当前年 + "ToLower": strings.ToLower, // 全部小写 + "LcFirst": gstr.LcFirst, // 首字母小写 + "UcFirst": gstr.UcFirst, // 首字母大写 + }) + + dictOptions, err := l.generateWebModelDictOptions(ctx, in) + if err != nil { + return err + } + + view.Assigns(gview.Params{ + "templateGroup": in.options.TemplateGroup, // 生成模板分组名称 + "servFunName": l.parseServFunName(in.options.TemplateGroup, in.In.VarName), // 业务服务名称 + "nowTime": gtime.Now().Format("Y-m-d H:i:s"), // 当前时间 + "version": runtime.Version(), // GO 版本 + "hgVersion": consts.VersionApp, // HG 版本 + "varName": in.In.VarName, // 实体名称 + "tableComment": in.In.TableComment, // 对外名称 + "daoName": in.In.DaoName, // ORM模型 + "masterFields": in.masterFields, // 主表字段 + "pk": in.pk, // 主键属性 + "options": in.options, // 提交选项 + "dictOptions": dictOptions, // web字典选项 + }) + in.view = view + return nil +} + +func (l *gCurd) DoBuild(ctx context.Context, in *CurdBuildInput) (err error) { + preview, err := l.DoPreview(ctx, in.PreviewIn) + if err != nil { + return err + } + + // 前置操作 + if len(in.BeforeEvent) > 0 { + for name, f := range in.BeforeEvent { + if gstr.InArray(in.PreviewIn.options.AutoOps, name) { + if err = f(ctx); err != nil { + return fmt.Errorf("in doBuild operation beforeEvent to '%s' failed::%v", name, err) + } + } + } + } + + var needExecSql bool + for _, vi := range preview.Views { + // 无需生成 + if vi.Meth != consts.GenCodesBuildMethCreate && vi.Meth != consts.GenCodesBuildMethCover { + continue + } + + if gstr.Str(vi.Path, `.`) == ".sql" && !gfile.Exists(vi.Path) { + needExecSql = true + } + + if err = gfile.PutContents(vi.Path, strings.TrimSpace(vi.Content)); err != nil { + return fmt.Errorf("writing content to '%s' failed: %v", vi.Path, err) + } + + if gstr.Str(vi.Path, `.`) == ".sql" && needExecSql { + if err = ImportSql(ctx, vi.Path); err != nil { + return err + } + } + + if gstr.Str(vi.Path, `.`) == ".go" { + utils.GoFmt(vi.Path) + } + + } + + // 后置操作 + if len(in.AfterEvent) > 0 { + for name, f := range in.AfterEvent { + if gstr.InArray(in.PreviewIn.options.AutoOps, name) { + if err = f(ctx); err != nil { + return fmt.Errorf("in doBuild operation afterEvent to '%s' failed::%v", name, err) + } + } + } + } + return +} + +func (l *gCurd) DoPreview(ctx context.Context, in *CurdPreviewInput) (res *sysin.GenCodesPreviewModel, err error) { + // 初始化 + if err = l.initInput(ctx, in); err != nil { + return nil, err + } + + // 加载模板 + if err = l.loadView(ctx, in); err != nil { + return nil, err + } + + if err = l.generateApiContent(ctx, in); err != nil { + return nil, err + } + + if err = l.generateInputContent(ctx, in); err != nil { + return nil, err + } + + if err = l.generateControllerContent(ctx, in); err != nil { + return nil, err + } + + if err = l.generateLogicContent(ctx, in); err != nil { + return nil, err + } + + if err = l.generateRouterContent(ctx, in); err != nil { + return nil, err + } + + if err = l.generateWebApiContent(ctx, in); err != nil { + return nil, err + } + + if err = l.generateWebModelContent(ctx, in); err != nil { + return nil, err + } + + if err = l.generateWebIndexContent(ctx, in); err != nil { + return nil, err + } + + if err = l.generateWebEditContent(ctx, in); err != nil { + return nil, err + } + + if err = l.generateWebViewContent(ctx, in); err != nil { + return nil, err + } + + if err = l.generateSqlContent(ctx, in); err != nil { + return nil, err + } + + in.content.Config = in.Config + res = new(sysin.GenCodesPreviewModel) + res = in.content + + return +} + +func (l *gCurd) generateApiContent(ctx context.Context, in *CurdPreviewInput) (err error) { + var ( + name = "api.go" + tplData = g.Map{} + genFile = new(sysin.GenFile) + ) + genFile.Content, err = in.view.Parse(ctx, name+".template", tplData) + if err != nil { + return err + } + + genFile.Path = file.MergeAbs(in.Config.Application.Crud.Templates[0].ApiPath, strings.ToLower(in.In.VarName), strings.ToLower(in.In.VarName)+".go") + genFile.Meth = consts.GenCodesBuildMethCreate + if gfile.Exists(genFile.Path) { + genFile.Meth = consts.GenCodesBuildMethSkip + } + + genFile.Required = true + + if genFile.Meth == consts.GenCodesBuildMethSkip && gstr.InArray(in.options.AutoOps, "forcedCover") { + genFile.Meth = consts.GenCodesBuildMethCover + } + + in.content.Views[name] = genFile + return +} + +func (l *gCurd) generateInputContent(ctx context.Context, in *CurdPreviewInput) (err error) { + var ( + name = "input.go" + genFile = new(sysin.GenFile) + ) + + tplData, err := l.inputTplData(ctx, in) + if err != nil { + return err + } + + genFile.Content, err = in.view.Parse(ctx, name+".template", tplData) + if err != nil { + return err + } + genFile.Path = file.MergeAbs(in.Config.Application.Crud.Templates[0].InputPath, convert.CamelCaseToUnderline(in.In.VarName)+".go") + genFile.Meth = consts.GenCodesBuildMethCreate + if gfile.Exists(genFile.Path) { + genFile.Meth = consts.GenCodesBuildMethSkip + } + genFile.Required = true + + if genFile.Meth == consts.GenCodesBuildMethSkip && gstr.InArray(in.options.AutoOps, "forcedCover") { + genFile.Meth = consts.GenCodesBuildMethCover + } + + in.content.Views[name] = genFile + return +} + +func (l *gCurd) generateControllerContent(ctx context.Context, in *CurdPreviewInput) (err error) { + var ( + name = "controller.go" + tplData = g.Map{"name": "test generateControllerContent..."} + genFile = new(sysin.GenFile) + ) + + genFile.Content, err = in.view.Parse(ctx, name+".template", tplData) + if err != nil { + return err + } + genFile.Path = file.MergeAbs(in.Config.Application.Crud.Templates[0].ControllerPath, convert.CamelCaseToUnderline(in.In.VarName)+".go") + genFile.Meth = consts.GenCodesBuildMethCreate + if gfile.Exists(genFile.Path) { + genFile.Meth = consts.GenCodesBuildMethSkip + } + genFile.Required = true + + if genFile.Meth == consts.GenCodesBuildMethSkip && gstr.InArray(in.options.AutoOps, "forcedCover") { + genFile.Meth = consts.GenCodesBuildMethCover + } + + in.content.Views[name] = genFile + return +} + +func (l *gCurd) generateLogicContent(ctx context.Context, in *CurdPreviewInput) (err error) { + var ( + name = "logic.go" + genFile = new(sysin.GenFile) + ) + + tplData, err := l.logicTplData(ctx, in) + if err != nil { + return err + } + + genFile.Content, err = in.view.Parse(ctx, name+".template", tplData) + if err != nil { + return err + } + genFile.Path = file.MergeAbs(in.Config.Application.Crud.Templates[0].LogicPath, convert.CamelCaseToUnderline(in.In.VarName)+".go") + genFile.Meth = consts.GenCodesBuildMethCreate + if gfile.Exists(genFile.Path) { + genFile.Meth = consts.GenCodesBuildMethSkip + } + genFile.Required = true + + if genFile.Meth == consts.GenCodesBuildMethSkip && gstr.InArray(in.options.AutoOps, "forcedCover") { + genFile.Meth = consts.GenCodesBuildMethCover + } + + in.content.Views[name] = genFile + return +} + +func (l *gCurd) generateRouterContent(ctx context.Context, in *CurdPreviewInput) (err error) { + var ( + name = "router.go" + tplData = g.Map{} + genFile = new(sysin.GenFile) + ) + genFile.Content, err = in.view.Parse(ctx, name+".template", tplData) + if err != nil { + return err + } + + genFile.Path = file.MergeAbs(in.Config.Application.Crud.Templates[0].RouterPath, convert.CamelCaseToUnderline(in.In.VarName)+".go") + genFile.Meth = consts.GenCodesBuildMethCreate + if gfile.Exists(genFile.Path) { + genFile.Meth = consts.GenCodesBuildMethSkip + } + genFile.Required = true + + if genFile.Meth == consts.GenCodesBuildMethSkip && gstr.InArray(in.options.AutoOps, "forcedCover") { + genFile.Meth = consts.GenCodesBuildMethCover + } + + in.content.Views[name] = genFile + return +} + +func (l *gCurd) generateWebApiContent(ctx context.Context, in *CurdPreviewInput) (err error) { + var ( + name = "web.api.ts" + tplData = g.Map{} + genFile = new(sysin.GenFile) + ) + genFile.Content, err = in.view.Parse(ctx, name+".template", tplData) + if err != nil { + return err + } + + genFile.Path = file.MergeAbs(in.Config.Application.Crud.Templates[0].WebApiPath, gstr.LcFirst(in.In.VarName), "index.ts") + genFile.Meth = consts.GenCodesBuildMethCreate + if gfile.Exists(genFile.Path) { + genFile.Meth = consts.GenCodesBuildMethSkip + } + genFile.Required = true + + if genFile.Meth == consts.GenCodesBuildMethSkip && gstr.InArray(in.options.AutoOps, "forcedCover") { + genFile.Meth = consts.GenCodesBuildMethCover + } + + in.content.Views[name] = genFile + return +} + +func (l *gCurd) generateWebModelContent(ctx context.Context, in *CurdPreviewInput) (err error) { + var ( + name = "web.model.ts" + genFile = new(sysin.GenFile) + ) + + tplData, err := l.webModelTplData(ctx, in) + if err != nil { + return err + } + + genFile.Content, err = in.view.Parse(ctx, name+".template", tplData) + if err != nil { + return err + } + + genFile.Path = file.MergeAbs(in.Config.Application.Crud.Templates[0].WebViewsPath, gstr.LcFirst(in.In.VarName), "model.ts") + genFile.Meth = consts.GenCodesBuildMethCreate + if gfile.Exists(genFile.Path) { + genFile.Meth = consts.GenCodesBuildMethSkip + } + genFile.Required = true + + if genFile.Meth == consts.GenCodesBuildMethSkip && gstr.InArray(in.options.AutoOps, "forcedCover") { + genFile.Meth = consts.GenCodesBuildMethCover + } + in.content.Views[name] = genFile + return +} + +func (l *gCurd) generateWebIndexContent(ctx context.Context, in *CurdPreviewInput) (err error) { + var ( + name = "web.index.vue" + genFile = new(sysin.GenFile) + ) + + tplData, err := l.webIndexTplData(ctx, in) + if err != nil { + return err + } + + genFile.Content, err = in.view.Parse(ctx, name+".template", tplData) + if err != nil { + return err + } + + genFile.Path = file.MergeAbs(in.Config.Application.Crud.Templates[0].WebViewsPath, gstr.LcFirst(in.In.VarName), "index.vue") + genFile.Meth = consts.GenCodesBuildMethCreate + if gfile.Exists(genFile.Path) { + genFile.Meth = consts.GenCodesBuildMethSkip + } + genFile.Required = true + + if genFile.Meth == consts.GenCodesBuildMethSkip && gstr.InArray(in.options.AutoOps, "forcedCover") { + genFile.Meth = consts.GenCodesBuildMethCover + } + in.content.Views[name] = genFile + + return +} + +func (l *gCurd) generateWebEditContent(ctx context.Context, in *CurdPreviewInput) (err error) { + var ( + name = "web.edit.vue" + genFile = new(sysin.GenFile) + ) + + tplData, err := l.webEditTplData(ctx, in) + if err != nil { + return err + } + + genFile.Content, err = in.view.Parse(ctx, name+".template", tplData) + if err != nil { + return err + } + + genFile.Path = file.MergeAbs(in.Config.Application.Crud.Templates[0].WebViewsPath, gstr.LcFirst(in.In.VarName), "edit.vue") + genFile.Meth = consts.GenCodesBuildMethCreate + if gfile.Exists(genFile.Path) { + genFile.Meth = consts.GenCodesBuildMethSkip + } + genFile.Required = true + if genFile.Meth == consts.GenCodesBuildMethSkip && gstr.InArray(in.options.AutoOps, "forcedCover") { + genFile.Meth = consts.GenCodesBuildMethCover + } + + if !in.options.Step.HasEdit { + genFile.Meth = consts.GenCodesBuildIgnore + genFile.Required = false + } + + in.content.Views[name] = genFile + return +} + +func (l *gCurd) generateWebViewContent(ctx context.Context, in *CurdPreviewInput) (err error) { + var ( + name = "web.view.vue" + genFile = new(sysin.GenFile) + ) + + tplData, err := l.webViewTplData(ctx, in) + if err != nil { + return err + } + + genFile.Content, err = in.view.Parse(ctx, name+".template", tplData) + if err != nil { + return err + } + + genFile.Path = file.MergeAbs(in.Config.Application.Crud.Templates[0].WebViewsPath, gstr.LcFirst(in.In.VarName), "view.vue") + genFile.Meth = consts.GenCodesBuildMethCreate + if gfile.Exists(genFile.Path) { + genFile.Meth = consts.GenCodesBuildMethSkip + } + genFile.Required = true + + if genFile.Meth == consts.GenCodesBuildMethSkip && gstr.InArray(in.options.AutoOps, "forcedCover") { + genFile.Meth = consts.GenCodesBuildMethCover + } + + if !in.options.Step.HasView { + genFile.Meth = consts.GenCodesBuildIgnore + genFile.Required = false + } + + in.content.Views[name] = genFile + return +} + +func (l *gCurd) generateSqlContent(ctx context.Context, in *CurdPreviewInput) (err error) { + var ( + name = "source.sql" + config = g.DB(in.In.DbName).GetConfig() + tplData = g.Map{ + "dbName": config.Name, + "menuTable": config.Prefix + "admin_menu", + "mainComponent": "LAYOUT", + } + genFile = new(sysin.GenFile) + ) + + if in.options.Menu.Pid > 0 { + tplData["mainComponent"] = "ParentLayout" //gstr.LcFirst(in.In.VarName) + } + + genFile.Path = file.MergeAbs(in.Config.Application.Crud.Templates[0].SqlPath, convert.CamelCaseToUnderline(in.In.VarName)+"_menu.sql") + genFile.Meth = consts.GenCodesBuildMethCreate + if gfile.Exists(genFile.Path) { + genFile.Meth = consts.GenCodesBuildMethSkip + } + genFile.Required = true + + if !in.options.Step.HasMenu { + genFile.Meth = consts.GenCodesBuildIgnore + genFile.Required = false + } + + tplData["generatePath"] = genFile.Path + genFile.Content, err = in.view.Parse(ctx, name+".template", tplData) + if err != nil { + return err + } + + in.content.Views[name] = genFile + return +} diff --git a/server/internal/library/hggen/views/curd_generate_input.go b/server/internal/library/hggen/views/curd_generate_input.go new file mode 100644 index 0000000..3b15825 --- /dev/null +++ b/server/internal/library/hggen/views/curd_generate_input.go @@ -0,0 +1,126 @@ +// Package views +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2022 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package views + +import ( + "bytes" + "context" + "fmt" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/text/gstr" + "github.com/olekukonko/tablewriter" + "hotgo/internal/model/input/sysin" +) + +const ( + InputTypeListInp = 1 // 列表输入 + InputTypeListModel = 2 // 列表输出 + InputTypeExportModel = 3 // 列表导出 +) + +func (l *gCurd) inputTplData(ctx context.Context, in *CurdPreviewInput) (data g.Map, err error) { + data = make(g.Map) + data["listInpColumns"] = l.generateInputListColumns(ctx, in, InputTypeListInp) + data["listModelColumns"] = l.generateInputListColumns(ctx, in, InputTypeListModel) + data["exportModelColumns"] = l.generateInputListColumns(ctx, in, InputTypeExportModel) + return +} + +func (l *gCurd) generateInputListColumns(ctx context.Context, in *CurdPreviewInput, inputType int) string { + buffer := bytes.NewBuffer(nil) + index := 0 + array := make([][]string, 1000) + // 主表 + for _, field := range in.masterFields { + row := l.generateStructFieldDefinition(field, inputType) + if row == nil { + continue + } + array[index] = row + index++ + } + + // 关联表 + if len(in.options.Join) > 0 { + for _, v := range in.options.Join { + if !isEffectiveJoin(v) { + continue + } + for _, field := range v.Columns { + row := l.generateStructFieldDefinition(field, inputType) + if row != nil { + array[index] = row + index++ + } + } + } + } + + tw := tablewriter.NewWriter(buffer) + tw.SetBorder(false) + tw.SetRowLine(false) + tw.SetAutoWrapText(false) + tw.SetColumnSeparator("") + tw.AppendBulk(array) + tw.Render() + stContent := buffer.String() + // Let's do this hack of table writer for indent! + stContent = gstr.Replace(stContent, " #", "") + stContent = gstr.Replace(stContent, "` ", "`") + stContent = gstr.Replace(stContent, "``", "") + stContent = removeEndWrap(stContent) + + buffer.Reset() + buffer.WriteString(stContent) + return buffer.String() +} + +// generateStructFieldForModel generates and returns the attribute definition for specified field. +func (l *gCurd) generateStructFieldDefinition(field *sysin.GenCodesColumnListModel, inputType int) []string { + var ( + tagKey = "`" + result = []string{" #" + field.GoName} + descriptionTag = gstr.Replace(formatComment(field.Dc), `"`, `\"`) + ) + + switch inputType { + case InputTypeListInp: + if !field.IsQuery { + return nil + } + + if field.QueryWhere == WhereModeBetween { + result = append(result, " #[]"+field.GoType) + } else { + result = append(result, " #"+field.GoType) + } + result = append(result, " #"+fmt.Sprintf(tagKey+`json:"%s"`, field.TsName)) + result = append(result, " #"+fmt.Sprintf(`dc:"%s"`+tagKey, descriptionTag)) + + case InputTypeListModel: + if !field.IsList { + return nil + } + + result = append(result, " #"+field.GoType) + result = append(result, " #"+fmt.Sprintf(tagKey+`json:"%s"`, field.TsName)) + result = append(result, " #"+fmt.Sprintf(`dc:"%s"`+tagKey, descriptionTag)) + case InputTypeExportModel: + if !field.IsExport { + return nil + } + + result = append(result, " #"+field.GoType) + result = append(result, " #"+fmt.Sprintf(tagKey+`json:"%s"`, field.TsName)) + result = append(result, " #"+fmt.Sprintf(`dc:"%s"`+tagKey, descriptionTag)) + + default: + panic("inputType is invalid") + } + + return result +} diff --git a/server/internal/library/hggen/views/curd_generate_logic.go b/server/internal/library/hggen/views/curd_generate_logic.go new file mode 100644 index 0000000..f914920 --- /dev/null +++ b/server/internal/library/hggen/views/curd_generate_logic.go @@ -0,0 +1,215 @@ +// Package views +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2022 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package views + +import ( + "bytes" + "context" + "fmt" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/text/gstr" + "hotgo/internal/consts" + "hotgo/internal/model/input/sysin" +) + +const ( + LogicWhereComments = "\n\t// 查询%s\n" + LogicWhereNoSupport = "\t// TODO 暂不支持生成[ %s ]查询方式,请自行补充此处代码!" + LogicListSimpleSelect = "\tfields, err := hgorm.GenSelect(ctx, sysin.%sListModel{}, dao.%s)\n\tif err != nil {\n\t\treturn nil, 0, err\n\t}" + LogicListJoinSelect = "\t//关联表select\n\tfields, err := hgorm.GenJoinSelect(ctx, %sin.%sListModel{}, dao.%s, []*hgorm.Join{\n%v\t})" + LogicListJoinOnRelation = "\t// 关联表%s\n\tmod = mod.%s(hgorm.GenJoinOnRelation(\n\t\tdao.%s.Table(), dao.%s.Columns().%s, // 主表表名,关联条件\n\t\tdao.%s.Table(), \"%s\", dao.%s.Columns().%s, // 关联表表名,别名,关联条件\n\t)...)\n\n" + LogicEditUpdate = "\t\t_, err = dao.%s.Ctx(ctx).\n\t\t\tFieldsEx(\n%s\t\t\t).\n\t\t\tWhere(dao.%s.Columns().%s, in.%s).Data(in).Update()\n\t\tif err != nil {\n\t\t\terr = gerror.Wrap(err, consts.ErrorORM)\n\t\t\treturn err\n\t\t}\n\t\treturn nil" + LogicEditInsert = "\t_, err = dao.%s.Ctx(ctx).\n\t\tFieldsEx(\n%s\t\t).\n\t\tData(in).Insert()\n\tif err != nil {\n\t\terr = gerror.Wrap(err, consts.ErrorORM)\n\t\treturn err\n\t}" +) + +func (l *gCurd) logicTplData(ctx context.Context, in *CurdPreviewInput) (data g.Map, err error) { + data = make(g.Map) + data["listWhere"] = l.generateLogicListWhere(ctx, in) + data["listJoin"] = l.generateLogicListJoin(ctx, in) + data["listOrder"] = l.generateLogicListOrder(ctx, in) + data["edit"] = l.generateLogicEdit(ctx, in) + data["switchFields"] = l.generateLogicSwitchFields(ctx, in) + return +} + +func (l *gCurd) generateLogicSwitchFields(ctx context.Context, in *CurdPreviewInput) string { + buffer := bytes.NewBuffer(nil) + if in.options.Step.HasSwitch { + buffer.WriteString("\t\tdao." + in.In.DaoName + ".Columns().Switch,\n") + } + return buffer.String() +} + +func (l *gCurd) generateLogicEdit(ctx context.Context, in *CurdPreviewInput) g.Map { + var ( + data = make(g.Map) + updateFieldsEx = "" + updateBuffer = bytes.NewBuffer(nil) + insertFieldsEx = "" + insertBuffer = bytes.NewBuffer(nil) + ) + + for _, field := range in.masterFields { + if field.GoName == "UpdatedBy" { + updateBuffer.WriteString("\t\tin.UpdatedBy = contexts.GetUserId(ctx)\n") + } + + if field.GoName == "CreatedBy" { + insertBuffer.WriteString("\tin.CreatedBy = contexts.GetUserId(ctx)\n") + } + + if field.Index == consts.GenCodesIndexPK || field.GoName == "CreatedAt" || field.GoName == "CreatedBy" || field.GoName == "DeletedAt" { + updateFieldsEx = updateFieldsEx + "\t\t\t\tdao." + in.In.DaoName + ".Columns()." + field.GoName + ",\n" + } + + if field.Index == consts.GenCodesIndexPK || field.GoName == "UpdatedBy" || field.GoName == "DeletedAt" { + insertFieldsEx = insertFieldsEx + "\t\t\t\tdao." + in.In.DaoName + ".Columns()." + field.GoName + ",\n" + } + } + + updateBuffer.WriteString(fmt.Sprintf(LogicEditUpdate, in.In.DaoName, updateFieldsEx, in.In.DaoName, in.pk.GoName, in.pk.GoName)) + insertBuffer.WriteString(fmt.Sprintf(LogicEditInsert, in.In.DaoName, insertFieldsEx)) + + data["update"] = updateBuffer.String() + data["insert"] = insertBuffer.String() + return data +} + +func (l *gCurd) generateLogicListOrder(ctx context.Context, in *CurdPreviewInput) string { + buffer := bytes.NewBuffer(nil) + if in.options.Step.HasMaxSort { + buffer.WriteString("OrderAsc(dao." + in.In.DaoName + ".Columns().Sort).") + } + buffer.WriteString("OrderDesc(dao." + in.In.DaoName + ".Columns()." + in.pk.GoName + ")") + return buffer.String() +} + +func (l *gCurd) generateLogicListJoin(ctx context.Context, in *CurdPreviewInput) g.Map { + var data = make(g.Map) + data["link"] = "" + if hasEffectiveJoins(in.options.Join) { + var ( + selectBuffer = bytes.NewBuffer(nil) + linkBuffer = bytes.NewBuffer(nil) + joinSelectRows string + ) + + for _, join := range in.options.Join { + if isEffectiveJoin(join) { + joinSelectRows = joinSelectRows + fmt.Sprintf("\t\t{Dao: dao.%s, Alias: \"%s\"},\n", join.DaoName, join.Alias) + linkBuffer.WriteString(fmt.Sprintf(LogicListJoinOnRelation, join.Alias, consts.GenCodesJoinLinkMap[join.LinkMode], in.In.DaoName, in.In.DaoName, gstr.CaseCamel(join.MasterField), join.DaoName, join.Alias, join.DaoName, gstr.CaseCamel(join.Field))) + } + } + + selectBuffer.WriteString(fmt.Sprintf(LogicListJoinSelect, in.options.TemplateGroup, in.In.VarName, in.In.DaoName, joinSelectRows)) + + data["select"] = selectBuffer.String() + data["link"] = linkBuffer.String() + + } else { + data["select"] = fmt.Sprintf(LogicListSimpleSelect, in.In.VarName, in.In.DaoName) + } + + return data +} + +func (l *gCurd) generateLogicListWhere(ctx context.Context, in *CurdPreviewInput) string { + buffer := bytes.NewBuffer(nil) + + // 主表 + l.generateLogicListWhereEach(buffer, in.masterFields, in.In.DaoName, "") + + // 关联表 + if hasEffectiveJoins(in.options.Join) { + for _, v := range in.options.Join { + if isEffectiveJoin(v) { + l.generateLogicListWhereEach(buffer, v.Columns, v.DaoName, v.Alias) + } + } + } + + return buffer.String() +} + +func (l *gCurd) generateLogicListWhereEach(buffer *bytes.Buffer, fields []*sysin.GenCodesColumnListModel, daoName string, alias string) { + isLink := false + if alias != "" { + alias = `"` + alias + `."+` + isLink = true + } + for _, field := range fields { + if !field.IsQuery || field.QueryWhere == "" { + continue + } + + var ( + linkMode string + whereTag string + columnName string + ) + + if IsNumberType(field.GoType) { + linkMode = `in.` + field.GoName + ` > 0` + } else if field.GoType == GoTypeGTime { + linkMode = `in.` + field.GoName + ` != nil` + } else if field.GoType == GoTypeJson { + linkMode = `!in.` + field.GoName + `.IsNil()` + } else { + linkMode = `in.` + field.GoName + ` != ""` + } + + if field.QueryWhere == WhereModeBetween || field.QueryWhere == WhereModeNotBetween { + linkMode = `len(in.` + field.GoName + `) == 2` + } + + buffer.WriteString(fmt.Sprintf(LogicWhereComments, field.Dc)) + + // 如果是关联表重新转换字段 + columnName = field.GoName + if isLink { + columnName = gstr.CaseCamel(field.Name) + } + + switch field.QueryWhere { + case WhereModeEq: + whereTag = "\tif " + linkMode + " {\n\t\tmod = mod.Where(" + alias + "dao." + daoName + ".Columns()." + columnName + ", in." + field.GoName + ")\n\t}" + case WhereModeNeq: + whereTag = "\tif " + linkMode + " {\n\t\tmod = mod.WhereNot(dao." + daoName + ".Columns()." + columnName + ", in." + field.GoName + ")\n\t}" + case WhereModeGt: + whereTag = "\tif " + linkMode + " {\n\t\tmod = mod.WhereGT(dao." + daoName + ".Columns()." + columnName + ", in." + field.GoName + ")\n\t}" + case WhereModeGte: + whereTag = "\tif " + linkMode + " {\n\t\tmod = mod.WhereGTE(dao." + daoName + ".Columns()." + columnName + ", in." + field.GoName + ")\n\t}" + case WhereModeLt: + whereTag = "\tif " + linkMode + " {\n\t\tmod = mod.WhereLT(dao." + daoName + ".Columns()." + columnName + ", in." + field.GoName + ")\n\t}" + case WhereModeLte: + whereTag = "\tif " + linkMode + " {\n\t\tmod = mod.WhereLTE(dao." + daoName + ".Columns()." + columnName + ", in." + field.GoName + ")\n\t}" + case WhereModeIn: + whereTag = "\tif " + linkMode + " {\n\t\tmod = mod.WhereIn(dao." + daoName + ".Columns()." + columnName + ", in." + field.GoName + ")\n\t}" + case WhereModeNotIn: + whereTag = "\tif " + linkMode + " {\n\t\tmod = mod.WhereNotIn(dao." + daoName + ".Columns()." + columnName + ", in." + field.GoName + ")\n\t}" + case WhereModeBetween: + whereTag = "\tif " + linkMode + " {\n\t\tmod = mod.WhereBetween(dao." + daoName + ".Columns()." + columnName + ", in." + field.GoName + "[0], in." + field.GoName + "[1])\n\t}" + case WhereModeNotBetween: + whereTag = "\tif " + linkMode + " {\n\t\tmod = mod.WhereNotBetween(dao." + daoName + ".Columns()." + columnName + ", in." + field.GoName + "[0], in." + field.GoName + "[1])\n\t}" + case WhereModeLike: + whereTag = "\tif " + linkMode + " {\n\t\tmod = mod.WhereLike(dao." + daoName + ".Columns()." + columnName + ", in." + field.GoName + ")\n\t}" + case WhereModeLikeAll: + val := `"%"+in.` + field.GoName + `+"%"` + whereTag = "\tif " + linkMode + " {\n\t\tmod = mod.WhereLike(dao." + daoName + ".Columns()." + columnName + ", " + val + ")\n\t}" + case WhereModeNotLike: + whereTag = "\tif " + linkMode + " {\n\t\tmod = mod.WhereNotLike(dao." + daoName + ".Columns()." + columnName + ", in." + field.GoName + ")\n\t}" + case WhereModeJsonContains: + val := "fmt.Sprintf(`JSON_CONTAINS(%s,'%v')`, dao." + daoName + ".Columns()." + columnName + ", in." + field.GoName + ")" + whereTag = "\tif in." + field.GoName + linkMode + " {\n\t\tmod = mod.Where(" + val + ")\n\t}" + + default: + buffer.WriteString(fmt.Sprintf(LogicWhereNoSupport, field.QueryWhere)) + } + + buffer.WriteString(whereTag + "\n") + } +} diff --git a/server/internal/library/hggen/views/curd_generate_web_edit.go b/server/internal/library/hggen/views/curd_generate_web_edit.go new file mode 100644 index 0000000..72c6683 --- /dev/null +++ b/server/internal/library/hggen/views/curd_generate_web_edit.go @@ -0,0 +1,158 @@ +// Package views +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2022 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package views + +import ( + "bytes" + "context" + "fmt" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/text/gstr" + "hotgo/internal/consts" +) + +func (l *gCurd) webEditTplData(ctx context.Context, in *CurdPreviewInput) (data g.Map, err error) { + data = make(g.Map) + data["formItem"] = l.generateWebEditFormItem(ctx, in) + data["script"] = l.generateWebEditScript(ctx, in) + return +} + +func (l *gCurd) generateWebEditFormItem(ctx context.Context, in *CurdPreviewInput) string { + buffer := bytes.NewBuffer(nil) + for k, field := range in.masterFields { + if !field.IsEdit { + continue + } + + if field.Index == consts.GenCodesIndexPK { + continue + } + + var ( + defaultComponent = fmt.Sprintf("\n \n ", field.Dc, field.TsName, field.Dc, field.TsName) + component string + ) + + switch field.FormMode { + case FormModeInput: + component = defaultComponent + + case FormModeInputNumber: + component = fmt.Sprintf("\n \n ", field.Dc, field.TsName, field.Dc, field.TsName) + + case FormModeInputTextarea: + component = fmt.Sprintf("\n \n ", field.Dc, field.TsName, field.Dc, field.TsName) + + case FormModeInputEditor: + component = fmt.Sprintf("\n \n ", field.Dc, field.TsName, field.TsName) + + case FormModeInputDynamic: + component = fmt.Sprintf("\n \n ", field.Dc, field.TsName, field.TsName) + + case FormModeDate: + component = fmt.Sprintf("\n \n ", field.Dc, field.TsName, field.TsName) + + //case FormModeDateRange: // 必须要有两个字段,后面优化下 + + case FormModeTime: + component = fmt.Sprintf("\n \n ", field.Dc, field.TsName, field.TsName) + + //case FormModeTimeRange: // 必须要有两个字段,后面优化下 + + case FormModeRadio: + component = fmt.Sprintf("\n \n \n \n ", field.Dc, field.TsName, field.TsName, field.TsName, field.TsName, in.options.dictMap[field.TsName], field.TsName, field.TsName, field.TsName) + + case FormModeCheckbox: + component = fmt.Sprintf("\n \n \n \n \n \n ", field.Dc, field.TsName, field.TsName, in.options.dictMap[field.TsName]) + + case FormModeSelect: + component = fmt.Sprintf("\n \n ", field.Dc, field.TsName, field.TsName, in.options.dictMap[field.TsName]) + + case FormModeSelectMultiple: + component = fmt.Sprintf("\n \n ", field.Dc, field.TsName, field.TsName, in.options.dictMap[field.TsName]) + + case FormModeUploadImage: + component = fmt.Sprintf("\n \n ", field.Dc, field.TsName, field.TsName) + + case FormModeUploadImages: + component = fmt.Sprintf("\n \n ", field.Dc, field.TsName, field.TsName) + + case FormModeUploadFile: + component = fmt.Sprintf("\n \n ", field.Dc, field.TsName, field.TsName) + + case FormModeUploadFiles: + component = fmt.Sprintf("\n \n ", field.Dc, field.TsName, field.TsName) + + case FormModeSwitch: + component = fmt.Sprintf("\n \n ", field.Dc, field.TsName, field.TsName) + + case FormModeRate: + component = fmt.Sprintf("\n \n ", field.Dc, field.TsName, field.TsName, field.GoName) + + default: + component = defaultComponent + } + + if len(in.masterFields) == k { + buffer.WriteString(" " + component) + } else { + buffer.WriteString(" " + component + "\n\n") + } + + } + return buffer.String() +} + +func (l *gCurd) generateWebEditScript(ctx context.Context, in *CurdPreviewInput) g.Map { + var ( + data = make(g.Map) + importBuffer = bytes.NewBuffer(nil) + setupBuffer = bytes.NewBuffer(nil) + ) + + if in.options.Step.HasMaxSort { + importBuffer.WriteString(" import { onMounted, ref, computed, watch } from 'vue';\n") + importBuffer.WriteString(" import { Edit, MaxSort } from '@/api/" + gstr.LcFirst(in.In.VarName) + "';\n") + setupBuffer.WriteString(" watch(\n () => params.value,\n (value) => {\n if (value.id === 0) {\n MaxSort().then((res) => {\n params.value.sort = res.sort;\n });\n }\n }\n );\n\n") + } else { + importBuffer.WriteString(" import { onMounted, ref, computed } from 'vue';\n") + importBuffer.WriteString(" import { Edit } from '@/api/" + gstr.LcFirst(in.In.VarName) + "';\n") + } + + for _, field := range in.masterFields { + if !field.IsEdit { + continue + } + switch field.FormMode { + case FormModeDate, FormModeDateRange, FormModeTime, FormModeTimeRange: + if !gstr.Contains(importBuffer.String(), `import DatePicker`) { + importBuffer.WriteString(" import DatePicker from '@/components/DatePicker/datePicker.vue';\n") + } + case FormModeInputEditor: + if !gstr.Contains(importBuffer.String(), `import Editor`) { + importBuffer.WriteString(" import Editor from '@/components/Editor/editor.vue';\n") + } + case FormModeUploadImage, FormModeUploadImages: + if !gstr.Contains(importBuffer.String(), `import UploadImage`) { + importBuffer.WriteString(" import UploadImage from '@/components/Upload/uploadImage.vue';\n") + } + case FormModeUploadFile, FormModeUploadFiles: + if !gstr.Contains(importBuffer.String(), `import UploadFile`) { + importBuffer.WriteString(" import UploadFile from '@/components/Upload/uploadFile.vue';\n") + } + case FormModeRate: + setupBuffer.WriteString(fmt.Sprintf(" function update%s(num) {\n params.value.%s = num;\n }\n", field.GoName, field.TsName)) + } + + } + + data["import"] = importBuffer.String() + data["setup"] = setupBuffer.String() + + return data +} diff --git a/server/internal/library/hggen/views/curd_generate_web_index.go b/server/internal/library/hggen/views/curd_generate_web_index.go new file mode 100644 index 0000000..fe7bcbf --- /dev/null +++ b/server/internal/library/hggen/views/curd_generate_web_index.go @@ -0,0 +1,17 @@ +// Package views +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2022 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package views + +import ( + "context" + "github.com/gogf/gf/v2/frame/g" +) + +func (l *gCurd) webIndexTplData(ctx context.Context, in *CurdPreviewInput) (data g.Map, err error) { + data = make(g.Map) + return +} diff --git a/server/internal/library/hggen/views/curd_generate_web_model.go b/server/internal/library/hggen/views/curd_generate_web_model.go new file mode 100644 index 0000000..040c48e --- /dev/null +++ b/server/internal/library/hggen/views/curd_generate_web_model.go @@ -0,0 +1,285 @@ +// Package views +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2022 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package views + +import ( + "bytes" + "context" + "fmt" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/text/gstr" + "hotgo/internal/model/input/sysin" + "hotgo/utility/convert" +) + +const ( + ModelLoadOptionsTemplate = "async function loadOptions() {\n options.value = await Dicts({\n types: [\n %v ],\n });\n for (const item of schemas.value) {\n switch (item.field) {\n%v }\n }\n}\n\nawait loadOptions();" +) + +func (l *gCurd) webModelTplData(ctx context.Context, in *CurdPreviewInput) (data g.Map, err error) { + data = make(g.Map) + data["state"] = l.generateWebModelState(ctx, in) + data["defaultState"] = l.generateWebModelDefaultState(ctx, in) + data["rules"] = l.generateWebModelRules(ctx, in) + data["formSchema"] = l.generateWebModelFormSchema(ctx, in) + data["columns"] = l.generateWebModelColumns(ctx, in) + return +} + +func (l *gCurd) generateWebModelState(ctx context.Context, in *CurdPreviewInput) string { + buffer := bytes.NewBuffer(nil) + buffer.WriteString("export interface State {\n") + for _, field := range in.masterFields { + buffer.WriteString(fmt.Sprintf(" %s: %s;\n", field.TsName, field.TsType)) + } + buffer.WriteString("}") + + return buffer.String() +} + +func (l *gCurd) generateWebModelDefaultState(ctx context.Context, in *CurdPreviewInput) string { + buffer := bytes.NewBuffer(nil) + buffer.WriteString("export const defaultState = {\n") + for _, field := range in.masterFields { + var value = field.DefaultValue + if value == nil { + value = "null" + } + if value == "" { + value = "''" + } + buffer.WriteString(fmt.Sprintf(" %s: %v,\n", field.TsName, value)) + } + buffer.WriteString("};") + + return buffer.String() +} + +func (l *gCurd) generateWebModelDictOptions(ctx context.Context, in *CurdPreviewInput) (g.Map, error) { + type DictType struct { + Id int64 `json:"id"` + Type string `json:"type"` + } + + var ( + options = make(g.Map) + dictTypeIds []int64 + dictTypeList []*DictType + ) + + for _, field := range in.masterFields { + if field.DictType > 0 { + dictTypeIds = append(dictTypeIds, field.DictType) + } + } + + dictTypeIds = convert.UniqueSliceInt64(dictTypeIds) + if len(dictTypeIds) == 0 { + options["has"] = false + return options, nil + } + + err := g.Model("sys_dict_type").Ctx(ctx). + Fields("id", "type"). + WhereIn("id", dictTypeIds). + Scan(&dictTypeList) + if err != nil { + return nil, err + } + + if len(dictTypeList) == 0 { + options["has"] = false + return options, nil + } + + options["has"] = true + + var ( + awaitLoadOptions string + switchLoadOptions string + ) + + constOptionsBuffer := bytes.NewBuffer(nil) + constOptionsBuffer.WriteString("export const options = ref({\n") + + for _, v := range dictTypeList { + // 字段映射字典 + for _, field := range in.masterFields { + if field.DictType > 0 && v.Id == field.DictType { + in.options.dictMap[field.TsName] = v.Type + switchLoadOptions = fmt.Sprintf("%s case '%s':\n item.componentProps.options = options.value.%s;\n break;\n", switchLoadOptions, field.TsName, v.Type) + } + } + + awaitLoadOptions = fmt.Sprintf("%s '%s',\n", awaitLoadOptions, v.Type) + constOptionsBuffer.WriteString(" " + v.Type + ": [],\n") + } + + constOptionsBuffer.WriteString("});\n") + + loadOptionsBuffer := bytes.NewBuffer(nil) + loadOptionsBuffer.WriteString(fmt.Sprintf(ModelLoadOptionsTemplate, awaitLoadOptions, switchLoadOptions)) + + options["const"] = constOptionsBuffer.String() + options["load"] = loadOptionsBuffer.String() + + return options, nil +} + +func (l *gCurd) generateWebModelRules(ctx context.Context, in *CurdPreviewInput) string { + buffer := bytes.NewBuffer(nil) + buffer.WriteString("export const rules = {\n") + for _, field := range in.masterFields { + if field.FormRole == "" || field.FormRole == FormRoleNone { + continue + } + + buffer.WriteString(fmt.Sprintf(" %s: {\n required: %v,\n trigger: ['blur', 'input'],\n message: '请输入%s',\n validator: validate.%v,\n },\n", field.TsName, field.Required, field.Dc, field.FormRole)) + } + buffer.WriteString("};\n") + return buffer.String() +} + +func (l *gCurd) generateWebModelFormSchema(ctx context.Context, in *CurdPreviewInput) string { + buffer := bytes.NewBuffer(nil) + buffer.WriteString("export const schemas = ref([\n") + + // 主表 + l.generateWebModelFormSchemaEach(buffer, in.masterFields) + + // 关联表 + if len(in.options.Join) > 0 { + for _, v := range in.options.Join { + if !isEffectiveJoin(v) { + continue + } + l.generateWebModelFormSchemaEach(buffer, v.Columns) + } + } + + buffer.WriteString("]);\n") + return buffer.String() +} + +func (l *gCurd) generateWebModelFormSchemaEach(buffer *bytes.Buffer, fields []*sysin.GenCodesColumnListModel) { + for _, field := range fields { + if !field.IsQuery { + continue + } + + var ( + defaultComponent = fmt.Sprintf(" {\n field: '%s',\n component: '%s',\n label: '%s',\n componentProps: {\n placeholder: '请输入%s',\n onUpdateValue: (e: any) => {\n console.log(e);\n },\n },\n },\n", field.TsName, "NInput", field.Dc, field.Dc) + component string + ) + + // 这里根据编辑表单组件来进行推断,如果没有则使用默认input,这可能会导致和查询条件所需参数不符的情况 + switch field.FormMode { + case FormModeInput, FormModeInputTextarea, FormModeInputEditor: + component = defaultComponent + + case FormModeInputNumber: + component = fmt.Sprintf(" {\n field: '%s',\n component: '%s',\n label: '%s',\n componentProps: {\n placeholder: '请输入%s',\n onUpdateValue: (e: any) => {\n console.log(e);\n },\n },\n },\n", field.TsName, "NInputNumber", field.Dc, field.Dc) + + case FormModeDate: + component = fmt.Sprintf(" {\n field: '%s',\n component: '%s',\n label: '%s',\n componentProps: {\n type: '%s',\n clearable: true,\n shortcuts: %s,\n onUpdateValue: (e: any) => {\n console.log(e);\n },\n },\n },\n", field.TsName, "NDatePicker", field.Dc, "date", "defShortcuts()") + + case FormModeDateRange: + component = fmt.Sprintf(" {\n field: '%s',\n component: '%s',\n label: '%s',\n componentProps: {\n type: '%s',\n clearable: true,\n shortcuts: %s,\n onUpdateValue: (e: any) => {\n console.log(e);\n },\n },\n },\n", field.TsName, "NDatePicker", field.Dc, "daterange", "defRangeShortcuts()") + + case FormModeTime: + component = fmt.Sprintf(" {\n field: '%s',\n component: '%s',\n label: '%s',\n componentProps: {\n type: '%s',\n clearable: true,\n shortcuts: %s,\n onUpdateValue: (e: any) => {\n console.log(e);\n },\n },\n },\n", field.TsName, "NDatePicker", field.Dc, "datetime", "defShortcuts()") + + case FormModeTimeRange: + component = fmt.Sprintf(" {\n field: '%s',\n component: '%s',\n label: '%s',\n componentProps: {\n type: '%s',\n clearable: true,\n shortcuts: %s,\n onUpdateValue: (e: any) => {\n console.log(e);\n },\n },\n },\n", field.TsName, "NDatePicker", field.Dc, "datetimerange", "defRangeShortcuts()") + + case FormModeRadio: + component = fmt.Sprintf(" {\n field: '%s',\n component: '%s',\n label: '%s',\n giProps: {\n //span: 24,\n },\n componentProps: {\n options: [],\n onUpdateChecked: (e: any) => {\n console.log(e);\n },\n },\n },\n", field.TsName, "NRadioGroup", field.Dc) + + case FormModeCheckbox: + component = fmt.Sprintf(" {\n field: '%s',\n component: '%s',\n label: '%s',\n giProps: {\n span: 1,\n },\n componentProps: {\n placeholder: '请选择%s',\n options: [],\n onUpdateChecked: (e: any) => {\n console.log(e);\n },\n },\n },\n", field.TsName, "NCheckbox", field.Dc, field.Dc) + + case FormModeSelect: + component = fmt.Sprintf(" {\n field: '%s',\n component: '%s',\n label: '%s',\n defaultValue: null,\n componentProps: {\n placeholder: '请选择%s',\n options: [],\n onUpdateValue: (e: any) => {\n console.log(e);\n },\n },\n },\n", field.TsName, "NSelect", field.Dc, field.Dc) + + case FormModeSelectMultiple: + component = fmt.Sprintf(" {\n field: '%s',\n component: '%s',\n label: '%s',\n defaultValue: null,\n componentProps: {\n multiple: true,\n placeholder: '请选择%s',\n options: [],\n onUpdateValue: (e: any) => {\n console.log(e);\n },\n },\n },\n", field.TsName, "NSelect", field.Dc, field.Dc) + + default: + component = defaultComponent + } + + buffer.WriteString(component) + } +} + +func (l *gCurd) generateWebModelColumns(ctx context.Context, in *CurdPreviewInput) string { + buffer := bytes.NewBuffer(nil) + buffer.WriteString("export const columns = [\n") + + // 主表 + l.generateWebModelColumnsEach(buffer, in, in.masterFields) + + // 关联表 + if len(in.options.Join) > 0 { + for _, v := range in.options.Join { + if !isEffectiveJoin(v) { + continue + } + l.generateWebModelColumnsEach(buffer, in, v.Columns) + } + } + + buffer.WriteString("];\n") + return buffer.String() +} + +func (l *gCurd) generateWebModelColumnsEach(buffer *bytes.Buffer, in *CurdPreviewInput, fields []*sysin.GenCodesColumnListModel) { + for _, field := range fields { + if !field.IsList { + continue + } + var ( + defaultComponent = fmt.Sprintf(" {\n title: '%s',\n key: '%s',\n },\n", field.Dc, field.TsName) + component string + ) + + // 这里根据编辑表单组件来进行推断,如果没有则使用默认input,这可能会导致和查询条件所需参数不符的情况 + switch field.FormMode { + case FormModeDate: + component = fmt.Sprintf(" {\n title: '%s',\n key: '%s',\n render(row) {\n return formatToDate(row.%s);\n },\n },\n", field.Dc, field.TsName, field.TsName) + + case FormModeSelect: + component = fmt.Sprintf(" {\n title: '%s',\n key: '%s',\n render(row) {\n if (isNullObject(row.%s)) {\n return ``;\n }\n return h(\n NTag,\n {\n style: {\n marginRight: '6px',\n },\n type: getOptionTag(options.value.%s, row.%s),\n bordered: false,\n },\n {\n default: () => getOptionLabel(options.value.%s, row.%s),\n }\n );\n },\n },\n", field.Dc, field.TsName, field.TsName, in.options.dictMap[field.TsName], field.TsName, in.options.dictMap[field.TsName], field.TsName) + + case FormModeSelectMultiple: + component = fmt.Sprintf(" {\n title: '%s',\n key: '%s',\n render(row) {\n if (isNullObject(row.%s) || !isArray(row.%s)) {\n return ``;\n }\n return row.%s.map((tagKey) => {\n return h(\n NTag,\n {\n style: {\n marginRight: '6px',\n },\n type: getOptionTag(options.value.%s, tagKey),\n bordered: false,\n },\n {\n default: () => getOptionLabel(options.value.%s, tagKey),\n }\n );\n });\n },\n },\n", field.Dc, field.TsName, field.TsName, field.TsName, field.TsName, in.options.dictMap[field.TsName], in.options.dictMap[field.TsName]) + + case FormModeUploadImage: + component = fmt.Sprintf(" {\n title: '%s',\n key: '%s',\n render(row) {\n return h(%s, {\n width: 32,\n height: 32,\n src: row.%s,\n style: {\n width: '32px',\n height: '32px',\n 'max-width': '100%%',\n 'max-height': '100%%',\n },\n });\n },\n },\n", field.Dc, field.TsName, "NImage", field.TsName) + + case FormModeUploadImages: + component = fmt.Sprintf(" {\n title: '%s',\n key: '%s',\n render(row) {\n if (isNullObject(row.%s)) {\n return ``;\n }\n return row.%s.map((image) => {\n return h(%s, {\n width: 32,\n height: 32,\n src: image,\n style: {\n width: '32px',\n height: '32px',\n 'max-width': '100%%',\n 'max-height': '100%%',\n 'margin-left': '2px',\n },\n });\n });\n },\n },\n", field.Dc, field.TsName, field.TsName, field.TsName, "NImage") + + case FormModeUploadFile: + component = fmt.Sprintf(" {\n title: '%s',\n key: '%s',\n render(row) {\n if (row.%s === '') {\n return ``;\n }\n return h(\n %s,\n {\n size: 'small',\n },\n {\n default: () => getFileExt(row.%s),\n }\n );\n },\n },\n", field.Dc, field.TsName, field.TsName, "NAvatar", field.TsName) + + case FormModeUploadFiles: + component = fmt.Sprintf(" {\n title: '%s',\n key: '%s',\n render(row) {\n if (isNullObject(row.%s)) {\n return ``;\n }\n return row.%s.map((attachfile) => {\n return h(\n %s,\n {\n size: 'small',\n style: {\n 'margin-left': '2px',\n },\n },\n {\n default: () => getFileExt(attachfile),\n }\n );\n });\n },\n },\n", field.Dc, field.TsName, field.TsName, field.TsName, "NAvatar") + + case FormModeSwitch: + component = fmt.Sprintf(" {\n title: '%s',\n key: '%s',\n width: 100,\n render(row) {\n return h(%s, {\n value: row.%s === 1,\n checked: '开启',\n unchecked: '关闭',\n disabled: !hasPermission(['%s']),\n onUpdateValue: function (e) {\n console.log('onUpdateValue e:' + JSON.stringify(e));\n row.%s = e ? 1 : 2;\n Switch({ %s: row.%s, key: '%s', value: row.%s }).then((_res) => {\n $message.success('操作成功');\n });\n },\n });\n },\n },\n", field.Dc, field.TsName, "NSwitch", field.TsName, "/"+gstr.LcFirst(in.In.VarName)+"/switch", field.TsName, in.pk.TsName, in.pk.TsName, field.TsName, field.TsName) + + case FormModeRate: + component = fmt.Sprintf(" {\n title: '%s',\n key: '%s',\n render(row) {\n return h(%s, {\n allowHalf: true,\n readonly: true,\n defaultValue: row.%s,\n });\n },\n },\n", field.Dc, field.TsName, "NRate", field.TsName) + + default: + component = defaultComponent + } + + buffer.WriteString(component) + } +} diff --git a/server/internal/library/hggen/views/curd_generate_web_view.go b/server/internal/library/hggen/views/curd_generate_web_view.go new file mode 100644 index 0000000..26fdc7a --- /dev/null +++ b/server/internal/library/hggen/views/curd_generate_web_view.go @@ -0,0 +1,76 @@ +// Package views +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2022 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package views + +import ( + "bytes" + "context" + "fmt" + "github.com/gogf/gf/v2/frame/g" +) + +func (l *gCurd) webViewTplData(ctx context.Context, in *CurdPreviewInput) (data g.Map, err error) { + data = make(g.Map) + data["item"] = l.generateWebViewItem(ctx, in) + return +} + +func (l *gCurd) generateWebViewItem(ctx context.Context, in *CurdPreviewInput) string { + buffer := bytes.NewBuffer(nil) + for _, field := range in.masterFields { + if !field.IsEdit { + continue + } + + var ( + defaultComponent = fmt.Sprintf("\n \n {{ formValue.%s }}\n ", field.Dc, field.TsName) + component string + ) + + switch field.FormMode { + + case FormModeInputTextarea, FormModeInputEditor: + component = fmt.Sprintf("\n \n ", field.Dc, field.TsName) + + case FormModeInputDynamic: + component = defaultComponent + + case FormModeDate: + component = defaultComponent + + case FormModeTime: + component = defaultComponent + + case FormModeRadio, FormModeCheckbox, FormModeSelect, FormModeSelectMultiple: + component = fmt.Sprintf("\n \n ", field.Dc, field.TsName, in.options.dictMap[field.TsName], in.options.dictMap[field.TsName]) + + case FormModeUploadImage: + component = fmt.Sprintf("\n \n ", field.Dc, field.TsName) + + case FormModeUploadImages: + component = fmt.Sprintf("\n \n \n \n \n \n \n \n \n ", field.Dc, field.TsName) + + case FormModeUploadFile: + component = fmt.Sprintf("\n \n \n

\n
\n
\n {{ getFileExt(formValue.%s) }}\n
\n
\n
\n
\n ", field.Dc, field.TsName, field.TsName, field.TsName) + + case FormModeUploadFiles: + component = fmt.Sprintf("\n \n
\n \n \n
\n
\n {{\n getFileExt(item)\n }}\n
\n
\n
\n \n \n
", field.Dc, field.TsName) + + case FormModeSwitch: + component = fmt.Sprintf("\n ", field.Dc, field.TsName) + + case FormModeRate: + component = fmt.Sprintf("", field.Dc, field.TsName) + + default: + component = defaultComponent + } + + buffer.WriteString(" " + component + "\n\n") + } + return buffer.String() +} diff --git a/server/internal/library/hggen/views/utils.go b/server/internal/library/hggen/views/utils.go new file mode 100644 index 0000000..30e682a --- /dev/null +++ b/server/internal/library/hggen/views/utils.go @@ -0,0 +1,96 @@ +// Package hggen +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2022 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package views + +import ( + "context" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/text/gstr" + "hotgo/internal/consts" + "hotgo/internal/model/input/sysin" + "io/ioutil" + "strings" +) + +// parseServFunName 解析业务服务名称 +func (l *gCurd) parseServFunName(templateGroup, varName string) string { + templateGroup = gstr.UcFirst(templateGroup) + if gstr.HasPrefix(varName, templateGroup) && varName != templateGroup { + return varName + } + + return templateGroup + varName +} + +// getPkField 获取主键 +func (l *gCurd) getPkField(in *CurdPreviewInput) *sysin.GenCodesColumnListModel { + if len(in.masterFields) == 0 { + panic("getPkField masterFields uninitialized.") + } + for _, field := range in.masterFields { + if field.Index == consts.GenCodesIndexPK { + return field + } + } + return nil +} + +// hasEffectiveJoin 存在有效的关联表 +func hasEffectiveJoins(joins []*CurdOptionsJoin) bool { + for _, join := range joins { + if isEffectiveJoin(join) { + return true + } + } + return false +} + +func isEffectiveJoin(join *CurdOptionsJoin) bool { + return join.Alias != "" && join.Field != "" && join.LinkTable != "" && join.MasterField != "" && join.DaoName != "" && join.LinkMode > 0 +} + +// formatComment formats the comment string to fit the golang code without any lines. +func formatComment(comment string) string { + comment = gstr.ReplaceByArray(comment, g.SliceStr{ + "\n", " ", + "\r", " ", + }) + comment = gstr.Replace(comment, `\n`, " ") + comment = gstr.Trim(comment) + return comment +} + +// 移除末尾的换行符 +func removeEndWrap(comment string) string { + if len(comment) > 2 && comment[len(comment)-2:] == " \n" { + comment = comment[:len(comment)-2] + } + return comment +} + +// ImportSql 导出sql文件 +func ImportSql(ctx context.Context, path string) error { + rows, err := ioutil.ReadFile(path) + if err != nil { + return err + } + + sqlArr := strings.Split(string(rows), "\n") + for _, sql := range sqlArr { + sql = strings.TrimSpace(sql) + if sql == "" || strings.HasPrefix(sql, "--") { + continue + } + exec, err := g.DB().Exec(ctx, sql) + g.Log().Infof(ctx, "views.ImportSql sql:%v, exec:%+v, err:%+v", sql, exec, err) + if err != nil { + return err + } + } + + return nil +} diff --git a/server/internal/library/hgorm/dao.go b/server/internal/library/hgorm/dao.go new file mode 100644 index 0000000..678e84c --- /dev/null +++ b/server/internal/library/hgorm/dao.go @@ -0,0 +1,247 @@ +// Package hgorm +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2023 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package hgorm + +// dao. +import ( + "context" + "errors" + "fmt" + "github.com/gogf/gf/v2/database/gdb" + "github.com/gogf/gf/v2/errors/gerror" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/text/gstr" + "hotgo/utility/convert" + "hotgo/utility/tree" +) + +// GenJoinOnRelation 生成关联表关联条件 +func GenJoinOnRelation(masterTable, masterField, joinTable, alias, onField string) []string { + return []string{ + joinTable, + alias, + fmt.Sprintf("`%s`.`%s` = `%s`.`%s`", alias, onField, masterTable, masterField), + } +} + +type daoInstance interface { + Table() string + Ctx(ctx context.Context) *gdb.Model +} + +// Join 关联表属性 +type Join struct { + Dao interface{} // 关联表dao实例 + Alias string // 别名 + fields map[string]*gdb.TableField // 表字段列表 +} + +// GenJoinSelect 生成关联表select +// 这里会将实体中的字段驼峰转为下划线于数据库进行匹配,意味着数据库字段必须全部是小写字母+下划线的格式 +func GenJoinSelect(ctx context.Context, entity interface{}, masterDao interface{}, joins []*Join) (allFields string, err error) { + var tmpFields []string + + md, ok := masterDao.(daoInstance) + if !ok { + err = errors.New("masterDao unimplemented interface format.daoInstance") + return + } + + if len(joins) == 0 { + err = errors.New("JoinFields joins len = 0") + return + } + + for _, v := range joins { + jd, ok := v.Dao.(daoInstance) + if !ok { + err = errors.New("joins index unimplemented interface format.daoInstance") + return + } + v.fields, err = jd.Ctx(ctx).TableFields(jd.Table()) + if err != nil { + return + } + } + + masterFields, err := md.Ctx(ctx).TableFields(md.Table()) + if err != nil { + return + } + + entityFields, err := convert.GetEntityFieldTags(entity) + if err != nil { + return "", err + } + + if len(entityFields) == 0 { + return "*", nil + } + + // 是否为关联表字段 + getJoinAttribute := func(field string) (*Join, string) { + for _, v := range joins { + if gstr.HasPrefix(field, v.Alias) { + return v, gstr.CaseSnakeFirstUpper(gstr.StrEx(field, v.Alias)) + } + } + return nil, "" + } + + for _, field := range entityFields { + // 关联表 + jd, joinField := getJoinAttribute(field) + if jd != nil { + if _, ok := jd.fields[joinField]; ok { + tmpFields = append(tmpFields, fmt.Sprintf("`%s`.`%s` as `%s`", jd.Alias, joinField, field)) + continue + } + } + + // 主表 + originalField := gstr.CaseSnakeFirstUpper(field) + if _, ok := masterFields[originalField]; ok { + tmpFields = append(tmpFields, fmt.Sprintf("`%s`.`%s`", md.Table(), originalField)) + continue + } + } + + return gstr.Implode(",", convert.UniqueSliceString(tmpFields)), nil +} + +// GenSelect 生成select +// 这里会将实体中的字段驼峰转为下划线于数据库进行匹配,意味着数据库字段必须全部是小写字母+下划线的格式 +func GenSelect(ctx context.Context, entity interface{}, dao interface{}) (allFields string, err error) { + var tmpFields []string + + md, ok := dao.(daoInstance) + if !ok { + err = errors.New("dao unimplemented interface format.daoInstance") + return + } + + fields, err := md.Ctx(ctx).TableFields(md.Table()) + if err != nil { + return + } + + entityFields, err := convert.GetEntityFieldTags(entity) + if err != nil { + return "", err + } + + if len(entityFields) == 0 { + return "*", nil + } + + for _, field := range entityFields { + originalField := gstr.CaseSnakeFirstUpper(field) + if _, ok := fields[originalField]; ok { + tmpFields = append(tmpFields, fmt.Sprintf("`%s`", originalField)) + continue + } + } + + return gstr.Implode(",", convert.UniqueSliceString(tmpFields)), nil +} + +// GetPkField 获取dao实例中的主键名称 +func GetPkField(ctx context.Context, dao daoInstance) (string, error) { + fields, err := dao.Ctx(ctx).TableFields(dao.Table()) + if err != nil { + return "", err + } + if len(fields) == 0 { + return "", errors.New("field not found") + } + + for _, field := range fields { + if field.Key == "PRI" { + return field.Name, nil + } + } + + return "", errors.New("no primary key") +} + +// IsUnique 是否唯一 +func IsUnique(ctx context.Context, dao interface{}, where g.Map, message string, pkId ...interface{}) error { + d, ok := dao.(daoInstance) + if !ok { + return errors.New("IsUnique dao unimplemented interface format.daoInstance") + } + + if len(where) == 0 { + return errors.New("where condition cannot be empty") + } + + m := d.Ctx(ctx).Where(where) + if len(pkId) > 0 { + field, err := GetPkField(ctx, d) + if err != nil { + return err + } + m = m.WhereNot(field, pkId[0]) + } + + count, err := m.Count(1) + if err != nil { + return err + } + + if count > 0 { + if message == "" { + for k, _ := range where { + message = fmt.Sprintf("in the table:%s, %v not uniqued", d.Table(), where[k]) + break + } + } + return errors.New(message) + } + return nil +} + +// GenSubTree 生成下级关系树 +func GenSubTree(ctx context.Context, dao interface{}, oldPid int64) (newPid int64, newLevel int, subTree string, err error) { + // 顶级树 + if oldPid == 0 { + return 0, 1, "", nil + } + + d, ok := dao.(daoInstance) + if !ok { + return 0, 0, "", errors.New("GenTree dao unimplemented interface format.daoInstance") + } + field, err := GetPkField(ctx, d) + if err != nil { + return 0, 0, "", err + } + + models, err := d.Ctx(ctx).WhereNot(field, oldPid).One() + if err != nil { + return 0, 0, "", err + } + + if models.IsEmpty() { + return 0, 0, "", gerror.New("上级信息不存在") + } + + level, ok := models["level"] + if !ok { + return 0, 0, "", gerror.New("表中必须包含`level`字段") + } + + supTree, ok := models["tree"] + if !ok { + return 0, 0, "", gerror.New("表中必须包含`tree`字段") + } + + newPid = oldPid + newLevel = level.Int() + 1 + subTree = tree.GenLabel(supTree.String(), oldPid) + return +} diff --git a/server/internal/library/hgorm/handler.go b/server/internal/library/hgorm/handler.go new file mode 100644 index 0000000..dc90116 --- /dev/null +++ b/server/internal/library/hgorm/handler.go @@ -0,0 +1,91 @@ +// Package hgorm +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2022 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package hgorm + +// 预处理 +import ( + "fmt" + "github.com/gogf/gf/v2/database/gdb" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/text/gstr" + "hotgo/internal/consts" + "hotgo/internal/library/contexts" + "hotgo/internal/model/entity" +) + +// HandlerFilterAuth 过滤数据权限 +// 通过上下文中的用户角色权限和表中是否含有需要过滤的字段附加查询条件 +func HandlerFilterAuth(m *gdb.Model) *gdb.Model { + var ( + needAuth bool + filterField string + roleModel *entity.AdminRole + ctx = m.GetCtx() + fields = escapeFieldsToSlice(m.GetFieldsStr()) + co = contexts.Get(ctx) + ) + + if co == nil || co.User == nil { + return m + } + + // 优先级:created_by > member_id + if gstr.InArray(fields, "created_by") { + needAuth = true + filterField = "created_by" + } + + if !needAuth && gstr.InArray(fields, "member_id") { + needAuth = true + filterField = "member_id" + } + + if !needAuth { + return m + } + + err := g.Model("admin_role").Where("id", co.User.RoleId).Scan(&roleModel) + if err != nil { + panic(fmt.Sprintf("HandlerFilterAuth Failed to role information err:%+v", err)) + } + + if roleModel == nil { + panic(fmt.Sprintf("HandlerFilterAuth Failed to role information err2:%+v", err)) + } + + switch roleModel.DataScope { + case consts.RoleDataAll: // 全部权限 + // ... + case consts.RoleDataNowDept: // 当前部门 + m = m.Where(filterField, co.User.DeptId) + case consts.RoleDataDeptAndSub: // 当前部门及以下部门 + //m = m.Where(filterField, 1) + case consts.RoleDataDeptCustom: // 自定义部门 + m = m.WhereIn(filterField, roleModel.CustomDept.Var().Ints()) + case consts.RoleDataSelf: // 仅自己 + m = m.Where(filterField, co.User.Id) + case consts.RoleDataSelfAndSub: // 自己和直属下级 + //m = m.Where(filterField, 1) + case consts.RoleDataSelfAndAllSub: // 自己和全部下级 + //m = m.Where(filterField, 1) + + default: + panic("HandlerFilterAuth dataScope is not registered") + } + + return m +} + +// HandlerForceCache 强制缓存 +func HandlerForceCache(m *gdb.Model) *gdb.Model { + return m.Cache(gdb.CacheOption{Duration: -1, Force: true}) +} + +// escapeFieldsToSlice 将转义过的字段转换为字段集切片 +func escapeFieldsToSlice(s string) []string { + return gstr.Explode(",", gstr.Replace(gstr.Replace(s, "`,`", ","), "`", "")) +} diff --git a/server/internal/library/hgorm/hook.go b/server/internal/library/hgorm/hook.go new file mode 100644 index 0000000..8a4c45e --- /dev/null +++ b/server/internal/library/hgorm/hook.go @@ -0,0 +1,9 @@ +// Package hgorm +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2022 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package hgorm + +// 常用钩子 diff --git a/server/internal/library/jwt/jwt.go b/server/internal/library/jwt/jwt.go index dc2d071..24e7270 100644 --- a/server/internal/library/jwt/jwt.go +++ b/server/internal/library/jwt/jwt.go @@ -25,25 +25,27 @@ import ( // GenerateLoginToken 为指定用户生成token func GenerateLoginToken(ctx context.Context, user *model.Identity, isRefresh bool) (interface{}, error) { var ( - jwtVersion, _ = g.Cfg().Get(ctx, "jwt.version", "1.0") - jwtSign, _ = g.Cfg().Get(ctx, "jwt.sign", "hotGo") - token = j.NewWithClaims(j.SigningMethodHS256, j.MapClaims{ - "id": user.Id, - "username": user.Username, - "realname": user.RealName, - "avatar": user.Avatar, - "email": user.Email, - "mobile": user.Mobile, - "last_time": user.LastTime, - "last_ip": user.LastIp, - "exp": user.Exp, - "expires": user.Expires, - "app": user.App, - "role": user.Role, - "role_key": user.RoleKey, - "visit_count": user.VisitCount, - "is_refresh": isRefresh, - "jwt_version": jwtVersion.String(), + jwtVersion = g.Cfg().MustGet(ctx, "jwt.version", "1.0") + jwtSign = g.Cfg().MustGet(ctx, "jwt.sign", "hotGo") + token = j.NewWithClaims(j.SigningMethodHS256, j.MapClaims{ + "id": user.Id, + "pid": user.Pid, + "deptId": user.DeptId, + "roleId": user.RoleId, + "roleKey": user.RoleKey, + "username": user.Username, + "realName": user.RealName, + "avatar": user.Avatar, + "email": user.Email, + "mobile": user.Mobile, + "lastTime": user.LastTime, + "lastIp": user.LastIp, + "exp": user.Exp, + "expires": user.Expires, + "app": user.App, + "visitCount": user.VisitCount, + "isRefresh": isRefresh, + "jwtVersion": jwtVersion.String(), }) ) @@ -81,7 +83,7 @@ func ParseToken(tokenString string, secret []byte) (j.MapClaims, error) { } token, err := j.Parse(tokenString, func(token *j.Token) (interface{}, error) { if _, ok := token.Method.(*j.SigningMethodHMAC); !ok { - return nil, fmt.Errorf("unexpected signing method: %v", token.Header["alg"]) + return nil, gerror.Newf("unexpected signing method: %v", token.Header["alg"]) } return secret, nil }) diff --git a/server/internal/library/location/geocode.go b/server/internal/library/location/geocode.go new file mode 100644 index 0000000..c120bc6 --- /dev/null +++ b/server/internal/library/location/geocode.go @@ -0,0 +1,90 @@ +package location + +import ( + "context" + "fmt" + "github.com/gogf/gf/v2/errors/gerror" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/util/gconv" +) + +type AMapGeocodeAddressRes struct { + Status string `json:"status"` + Info string `json:"info"` + Infocode string `json:"infocode"` + Count string `json:"count"` + Geocodes []struct { + FormattedAddress string `json:"formatted_address"` + Country string `json:"country"` + Province string `json:"province"` + Citycode string `json:"citycode"` + City string `json:"city"` + District string `json:"district"` + Township []interface{} `json:"township"` + Neighborhood struct { + Name []interface{} `json:"name"` + Type []interface{} `json:"type"` + } `json:"neighborhood"` + Building struct { + Name []interface{} `json:"name"` + Type []interface{} `json:"type"` + } `json:"building"` + Adcode string `json:"adcode"` + Street []interface{} `json:"street"` + Number []interface{} `json:"number"` + Location string `json:"location"` + Level string `json:"level"` + } `json:"geocodes"` +} + +type AddressRegion struct { + ProvinceName string `json:"provinceName"` + CityName string `json:"cityName"` + CountyName string `json:"countyName"` + ProvinceCode string `json:"provinceCode"` + CityCode string `json:"cityCode"` + CountyCode string `json:"countyCode"` +} + +// AnalysisAddress 将地址解析出省市区编码 +func AnalysisAddress(ctx context.Context, address, key string) (region *AddressRegion, err error) { + var ( + url = fmt.Sprintf("https://restapi.amap.com/v3/geocode/geo?address=%v&output=JSON&key=%v", address, key) + responseMap = make(g.Map) + response *AMapGeocodeAddressRes + ) + + err = g.Client().GetVar(ctx, url).Scan(&responseMap) + if err != nil { + return nil, gerror.Newf("AMap AnalysisAddress err:%+v", err) + } + + err = gconv.Scan(responseMap, &response) + if err != nil { + return nil, err + } + // 异常状态码 + if response.Status != "1" { + return nil, gerror.Newf("AMap AnalysisAddress 错误码:%+v, 错误提示:%+v", response.Status, response.Info) + } + + if len(response.Geocodes) == 0 { + return nil, gerror.New("AMap AnalysisAddress 没有解析到地区信息") + } + + region = new(AddressRegion) + region.ProvinceName = response.Geocodes[0].Province + region.CityName = response.Geocodes[0].City + region.CountyName = response.Geocodes[0].District + + // 有效区域编码 + if len(response.Geocodes[0].Adcode) == 6 { + code := gconv.Int64(response.Geocodes[0].Adcode) + if code > 0 { + region.ProvinceCode = gconv.String(code / 10000 * 10000) + region.CityCode = gconv.String(code / 100 * 100) + region.CountyCode = response.Geocodes[0].Adcode + } + } + return +} diff --git a/server/internal/library/location/location.go b/server/internal/library/location/location.go index 1cb4503..6c96787 100644 --- a/server/internal/library/location/location.go +++ b/server/internal/library/location/location.go @@ -8,8 +8,8 @@ package location import ( "context" + "fmt" "github.com/axgle/mahonia" - "github.com/gogf/gf/v2/errors/gerror" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/net/ghttp" "github.com/gogf/gf/v2/text/gstr" @@ -23,6 +23,11 @@ import ( "time" ) +const ( + whoisApi = "https://whois.pconline.com.cn/ipJson.jsp?json=true&ip=" + dyndns = "http://members.3322.org/dyndns/getip" +) + type IpLocationData struct { Ip string `json:"ip"` Country string `json:"country"` @@ -35,49 +40,42 @@ type IpLocationData struct { AreaCode int64 `json:"area_code"` } +type WhoisRegionData struct { + Ip string `json:"ip"` + Pro string `json:"pro" ` + ProCode string `json:"proCode" ` + City string `json:"city" ` + CityCode string `json:"cityCode"` + Region string `json:"region"` + RegionCode string `json:"regionCode"` + Addr string `json:"addr"` + Err string `json:"err"` +} + // WhoisLocation 通过Whois接口查询IP归属地 -func WhoisLocation(ctx context.Context, ip string) IpLocationData { - - type whoisRegionData struct { - Ip string `json:"ip"` - Pro string `json:"pro" ` - ProCode string `json:"proCode" ` - City string `json:"city" ` - CityCode string `json:"cityCode"` - Region string `json:"region"` - RegionCode string `json:"regionCode"` - Addr string `json:"addr"` - Err string `json:"err"` - } - +func WhoisLocation(ctx context.Context, ip string) (*IpLocationData, error) { if !validate.IsIp(ip) { - return IpLocationData{} + return nil, fmt.Errorf("invalid input ip:%v", ip) } - response, err := g.Client().Timeout(10*time.Second).Get(ctx, "http://whois.pconline.com.cn/ipJson.jsp?ip="+ip+"&json=true") + response, err := g.Client().Timeout(10*time.Second).Get(ctx, whoisApi+ip) if err != nil { - err = gerror.New(err.Error()) - return IpLocationData{ - Ip: ip, - } + return nil, err } defer response.Close() - var enc mahonia.Decoder - enc = mahonia.NewDecoder("gbk") - data := enc.ConvertString(response.ReadAllString()) - whoisData := whoisRegionData{} - if err := gconv.Struct(data, &whoisData); err != nil { - err = gerror.New(err.Error()) + var ( + whoisData *WhoisRegionData + enc = mahonia.NewDecoder("gbk") + data = enc.ConvertString(response.ReadAllString()) + ) - g.Log().Print(ctx, "err:", err) - return IpLocationData{ - Ip: ip, - } + if err = gconv.Struct(data, &whoisData); err != nil { + return nil, err } - return IpLocationData{ + return &IpLocationData{ Ip: whoisData.Ip, //Country string `json:"country"` Region: whoisData.Addr, @@ -87,32 +85,26 @@ func WhoisLocation(ctx context.Context, ip string) IpLocationData { CityCode: gconv.Int64(whoisData.CityCode), Area: whoisData.Region, AreaCode: gconv.Int64(whoisData.RegionCode), - } + }, nil } // Cz88Find 通过Cz88的IP库查询IP归属地 -func Cz88Find(ctx context.Context, ip string) IpLocationData { +func Cz88Find(ctx context.Context, ip string) (*IpLocationData, error) { if !validate.IsIp(ip) { - g.Log().Print(ctx, "ip格式错误:", ip) - return IpLocationData{} + return nil, fmt.Errorf("invalid input ip:%v", ip) } - loc, err := iploc.OpenWithoutIndexes("./storage/ip/qqwry-utf8.dat") + loc, err := iploc.OpenWithoutIndexes("./resource/ip/qqwry-utf8.dat") if err != nil { - err = gerror.New(err.Error()) - return IpLocationData{ - Ip: ip, - } + return nil, fmt.Errorf("%v for help, please go to: https://github.com/kayon/iploc", err.Error()) } detail := loc.Find(ip) if detail == nil { - return IpLocationData{ - Ip: ip, - } + return nil, fmt.Errorf("no ip data is queried. procedure:%v", ip) } - locationData := IpLocationData{ + locationData := &IpLocationData{ Ip: ip, Country: detail.Country, Region: detail.Region, @@ -121,18 +113,12 @@ func Cz88Find(ctx context.Context, ip string) IpLocationData { Area: detail.County, } - if gstr.LenRune(locationData.Province) == 0 { - return locationData - } - - return locationData + return locationData, nil } // IsJurisByIpTitle 判断地区名称是否为直辖市 func IsJurisByIpTitle(title string) bool { - lists := []string{"北京市", "天津市", "重庆市", "上海市"} - for i := 0; i < len(lists); i++ { if gstr.Contains(lists[i], title) { return true @@ -142,9 +128,8 @@ func IsJurisByIpTitle(title string) bool { } // GetLocation 获取IP归属地信息 -func GetLocation(ctx context.Context, ip string) IpLocationData { - method, _ := g.Cfg().Get(ctx, "hotgo.ipMethod", "cz88") - +func GetLocation(ctx context.Context, ip string) (*IpLocationData, error) { + method := g.Cfg().MustGet(ctx, "hotgo.ipMethod", "cz88") if method.String() == "whois" { return WhoisLocation(ctx, ip) } @@ -152,16 +137,28 @@ func GetLocation(ctx context.Context, ip string) IpLocationData { } // GetPublicIP 获取公网IP -func GetPublicIP() (ip string, err error) { - response, err := http.Get("http://members.3322.org/dyndns/getip") +func GetPublicIP(ctx context.Context) (ip string, err error) { + var data *WhoisRegionData + err = g.Client().Timeout(10*time.Second).GetVar(ctx, whoisApi).Scan(&data) + if err != nil { + g.Log().Warningf(ctx, "GetPublicIP alternatives are being tried err:%+v", err) + return GetPublicIP2() + } + return data.Ip, nil +} + +func GetPublicIP2() (ip string, err error) { + response, err := http.Get(dyndns) if err != nil { return } defer response.Body.Close() - body, _ := ioutil.ReadAll(response.Body) - ip = string(body) - ip = strings.ReplaceAll(ip, "\n", "") + body, err := ioutil.ReadAll(response.Body) + if err != nil { + return + } + ip = strings.ReplaceAll(string(body), "\n", "") return } diff --git a/server/internal/library/queue/init.go b/server/internal/library/queue/init.go index a8527f3..6194764 100644 --- a/server/internal/library/queue/init.go +++ b/server/internal/library/queue/init.go @@ -79,11 +79,7 @@ var ( func init() { mqProducerInstanceMap = make(map[string]MqProducer) mqConsumerInstanceMap = make(map[string]MqConsumer) - get, err := g.Cfg().Get(ctx, "queue") - if err != nil { - g.Log().Fatalf(ctx, "queue config load fail, err .%v", err) - return - } + get := g.Cfg().MustGet(ctx, "queue") get.Scan(&config) } @@ -123,7 +119,7 @@ func NewProducer(groupName string) (mqClient MqProducer, err error) { Version: config.Kafka.Version, }) case "redis": - address, _ := g.Cfg().Get(ctx, "queue.redis.address", nil) + address := g.Cfg().MustGet(ctx, "queue.redis.address", nil) if len(address.String()) == 0 { g.Log().Fatal(ctx, "queue redis address is not support") } diff --git a/server/internal/library/queue/rocketmq.go b/server/internal/library/queue/rocketmq.go index 705361b..475c2e8 100644 --- a/server/internal/library/queue/rocketmq.go +++ b/server/internal/library/queue/rocketmq.go @@ -26,7 +26,7 @@ type RocketMq struct { // rewriteLog 重写日志 func rewriteLog() { - level, _ := g.Cfg().Get(ctx, "queue.rocketmq.logLevel", "debug") + level := g.Cfg().MustGet(ctx, "queue.rocketmq.logLevel", "debug") rlog.SetLogger(&RocketMqLogger{Flag: "[rocket_mq]", LevelLog: level.String()}) } diff --git a/server/internal/library/response/response.go b/server/internal/library/response/response.go index 9a7ce1f..a9383e3 100644 --- a/server/internal/library/response/response.go +++ b/server/internal/library/response/response.go @@ -7,9 +7,9 @@ package response import ( + "github.com/gogf/gf/v2/errors/gcode" "github.com/gogf/gf/v2/net/ghttp" "github.com/gogf/gf/v2/os/gctx" - "hotgo/internal/consts" "hotgo/internal/library/contexts" "hotgo/internal/model" "time" @@ -33,7 +33,7 @@ func RJson(r *ghttp.Request, code int, message string, data ...interface{}) { if len(data) > 0 { responseData = data[0] } - Res := &model.Response{ + res := &model.Response{ Code: code, Message: message, Timestamp: time.Now().Unix(), @@ -41,36 +41,38 @@ func RJson(r *ghttp.Request, code int, message string, data ...interface{}) { } // 如果不是正常的返回,则将data转为error - if consts.CodeOK == code { - Res.Data = responseData + if gcode.CodeOK.Code() == code { + res.Data = responseData } else { - Res.Error = responseData + res.Error = responseData } // 清空响应 r.Response.ClearBuffer() // 写入响应 - r.Response.WriteJson(Res) + r.Response.WriteJson(res) // 加入到上下文 - contexts.SetResponse(r.Context(), Res) + contexts.SetResponse(r.Context(), res) } // SusJson 返回成功JSON func SusJson(isExit bool, r *ghttp.Request, message string, data ...interface{}) { if isExit { - JsonExit(r, consts.CodeOK, message, data...) + JsonExit(r, gcode.CodeOK.Code(), message, data...) + return } - RJson(r, consts.CodeOK, message, data...) + RJson(r, gcode.CodeOK.Code(), message, data...) } // FailJson 返回失败JSON func FailJson(isExit bool, r *ghttp.Request, message string, data ...interface{}) { if isExit { - JsonExit(r, consts.CodeNil, message, data...) + JsonExit(r, gcode.CodeNil.Code(), message, data...) + return } - RJson(r, consts.CodeNil, message, data...) + RJson(r, gcode.CodeNil.Code(), message, data...) } // Redirect 重定向 diff --git a/server/internal/logic/admin/dept.go b/server/internal/logic/admin/dept.go index c224ad4..9ce6232 100644 --- a/server/internal/logic/admin/dept.go +++ b/server/internal/logic/admin/dept.go @@ -19,6 +19,7 @@ import ( "hotgo/internal/service" "hotgo/utility/convert" "hotgo/utility/tree" + "hotgo/utility/validate" ) type sAdminDept struct{} @@ -47,16 +48,7 @@ func (s *sAdminDept) NameUnique(ctx context.Context, in adminin.DeptNameUniqueIn // Delete 删除 func (s *sAdminDept) Delete(ctx context.Context, in adminin.DeptDeleteInp) error { - - exist, err := dao.AdminRoleDept.Ctx(ctx).Where("dept_id", in.Id).One() - if err != nil { - err = gerror.Wrap(err, consts.ErrorORM) - return err - } - if !exist.IsEmpty() { - return gerror.New("请先解除该部门下所有已关联用户关联关系!") - } - _, err = dao.AdminDept.Ctx(ctx).Where("id", in.Id).Delete() + _, err := dao.AdminDept.Ctx(ctx).Where("id", in.Id).Delete() if err != nil { err = gerror.Wrap(err, consts.ErrorORM) return err @@ -118,7 +110,7 @@ func (s *sAdminDept) Status(ctx context.Context, in adminin.DeptStatusInp) (err return err } - if !convert.InSliceInt(consts.StatusMap, in.Status) { + if !validate.InSliceInt(consts.StatusMap, in.Status) { err = gerror.New("状态不正确") return err } diff --git a/server/internal/logic/admin/member.go b/server/internal/logic/admin/member.go index c695c68..fe17e90 100644 --- a/server/internal/logic/admin/member.go +++ b/server/internal/logic/admin/member.go @@ -25,7 +25,8 @@ import ( "hotgo/internal/model/entity" "hotgo/internal/model/input/adminin" "hotgo/internal/service" - "hotgo/utility/convert" + "hotgo/utility/tree" + "hotgo/utility/validate" ) type sAdminMember struct{} @@ -38,11 +39,11 @@ func init() { service.RegisterAdminMember(NewAdminMember()) } -// UpdateProfile 修改登录密码 +// UpdateProfile 更新会员资料 func (s *sAdminMember) UpdateProfile(ctx context.Context, in adminin.MemberUpdateProfileInp) (err error) { memberId := contexts.Get(ctx).User.Id if memberId <= 0 { - err := gerror.New("获取用户信息失败!") + err = gerror.New("获取用户信息失败!") return err } @@ -55,9 +56,9 @@ func (s *sAdminMember) UpdateProfile(ctx context.Context, in adminin.MemberUpdat _, err = dao.AdminMember.Ctx(ctx). Where("id", memberId). Data(g.Map{ - "mobile": in.Mobile, - "email": in.Email, - "realname": in.Realname, + "mobile": in.Mobile, + "email": in.Email, + "real_name": in.Realname, }). Update() @@ -99,11 +100,18 @@ func (s *sAdminMember) UpdatePwd(ctx context.Context, in adminin.MemberUpdatePwd // ResetPwd 重置密码 func (s *sAdminMember) ResetPwd(ctx context.Context, in adminin.MemberResetPwdInp) (err error) { - var memberInfo entity.AdminMember + var ( + memberInfo entity.AdminMember + memberId = contexts.GetUserId(ctx) + ) if err = dao.AdminMember.Ctx(ctx).Where("id", in.Id).Scan(&memberInfo); err != nil { err = gerror.Wrap(err, consts.ErrorORM) return err } + if memberInfo.Pid != memberId && !s.VerifySuperId(ctx, memberId) { + err = gerror.New("操作非法") + return err + } _, err = dao.AdminMember.Ctx(ctx). Where("id", in.Id). @@ -161,7 +169,7 @@ func (s *sAdminMember) NameUnique(ctx context.Context, in adminin.MemberNameUniq // VerifySuperId 验证是否为超管 func (s *sAdminMember) VerifySuperId(ctx context.Context, verifyId int64) bool { - superIds, _ := g.Cfg().Get(ctx, "hotgo.admin.superIds") + superIds := g.Cfg().MustGet(ctx, "hotgo.admin.superIds") for _, id := range superIds.Int64s() { if id == verifyId { return true @@ -176,7 +184,12 @@ func (s *sAdminMember) Delete(ctx context.Context, in adminin.MemberDeleteInp) e return gerror.New("超管账号禁止删除!") } - _, err := dao.AdminMember.Ctx(ctx).Where("id", in.Id).Delete() + memberId := contexts.GetUserId(ctx) + if memberId <= 0 { + return gerror.New("获取用户信息失败!") + } + + _, err := dao.AdminMember.Ctx(ctx).Where("id", in.Id).Where("pid", memberId).Delete() if err != nil { err = gerror.Wrap(err, consts.ErrorORM) return err @@ -187,7 +200,10 @@ func (s *sAdminMember) Delete(ctx context.Context, in adminin.MemberDeleteInp) e // Edit 修改/新增 func (s *sAdminMember) Edit(ctx context.Context, in adminin.MemberEditInp) (err error) { - + opMemberId := contexts.GetUserId(ctx) + if opMemberId <= 0 { + return gerror.New("获取用户信息失败!") + } if in.Username == "" { return gerror.New("帐号不能为空") } @@ -197,7 +213,7 @@ func (s *sAdminMember) Edit(ctx context.Context, in adminin.MemberEditInp) (err return gerror.Wrap(err, consts.ErrorORM) } if !uniqueName { - return gerror.New("帐号已存在") + return gerror.New("用户名已存在") } if in.Mobile != "" { @@ -221,12 +237,18 @@ func (s *sAdminMember) Edit(ctx context.Context, in adminin.MemberEditInp) (err } // 修改 - in.UpdatedAt = gtime.Now() if in.Id > 0 { if s.VerifySuperId(ctx, in.Id) { return gerror.New("超管账号禁止编辑!") } - _, err = dao.AdminMember.Ctx(ctx).Where("id", in.Id).Data(in).Update() + + // 权限验证 + var mm = dao.AdminMember.Ctx(ctx).Where("id", in.Id) + if !s.VerifySuperId(ctx, opMemberId) { + mm = mm.Where("pid", opMemberId) + } + + _, err = mm.Data(in).Update() if err != nil { return gerror.Wrap(err, consts.ErrorORM) } @@ -238,26 +260,25 @@ func (s *sAdminMember) Edit(ctx context.Context, in adminin.MemberEditInp) (err return nil } - // 新增 - in.CreatedAt = gtime.Now() - // 新增用户时的额外属性 var data adminin.MemberAddInp data.MemberEditInp = in data.Salt = grand.S(6) data.PasswordHash = gmd5.MustEncryptString(data.Password + data.Salt) - insert, err := dao.AdminMember.Ctx(ctx).Data(data).Insert() + // 关系树 + data.Pid = opMemberId + data.Level, data.Tree, err = s.genTree(ctx, opMemberId) + if err != nil { + return err + } + + id, err := dao.AdminMember.Ctx(ctx).Data(data).InsertAndGetId() if err != nil { err = gerror.Wrap(err, consts.ErrorORM) return err } - // 更新岗位 - id, err := insert.LastInsertId() - if err != nil { - return err - } err = dao.AdminMemberPost.UpdatePostIds(ctx, id, in.PostIds) if err != nil { return err @@ -292,11 +313,11 @@ func (s *sAdminMember) View(ctx context.Context, in adminin.MemberViewInp) (res } // List 获取列表 -func (s *sAdminMember) List(ctx context.Context, in adminin.MemberListInp) (list []*adminin.MemberListModel, totalCount int64, err error) { +func (s *sAdminMember) List(ctx context.Context, in adminin.MemberListInp) (list []*adminin.MemberListModel, totalCount int, err error) { g.Log().Printf(ctx, "in:%#v", in) mod := dao.AdminMember.Ctx(ctx) if in.Realname != "" { - mod = mod.WhereLike("realname", "%"+in.Realname+"%") + mod = mod.WhereLike("real_name", "%"+in.Realname+"%") } if in.Username != "" { mod = mod.WhereLike("username", "%"+in.Username+"%") @@ -325,7 +346,7 @@ func (s *sAdminMember) List(ctx context.Context, in adminin.MemberListInp) (list return list, totalCount, nil } - if err = mod.Page(int(in.Page), int(in.PerPage)).Order("id desc").Scan(&list); err != nil { + if err = mod.Page(in.Page, in.PerPage).Order("id desc").Scan(&list); err != nil { return nil, 0, gerror.Wrap(err, consts.ErrorORM) } @@ -344,7 +365,7 @@ func (s *sAdminMember) List(ctx context.Context, in adminin.MemberListInp) (list // 角色 roleName, err := dao.AdminRole.Ctx(ctx). Fields("name"). - Where("id", list[i].Role). + Where("id", list[i].RoleId). Value() if err != nil { return nil, 0, gerror.Wrap(err, consts.ErrorORM) @@ -352,43 +373,62 @@ func (s *sAdminMember) List(ctx context.Context, in adminin.MemberListInp) (list list[i].RoleName = roleName.String() // 岗位 - post, err := dao.AdminMemberPost.Ctx(ctx). + posts, err := dao.AdminMemberPost.Ctx(ctx). Fields("post_id"). Where("member_id", list[i].Id). - Value() + Array() if err != nil { return nil, 0, gerror.Wrap(err, consts.ErrorORM) } - list[i].PostIds = post.Int64s() + + for _, v := range posts { + list[i].PostIds = append(list[i].PostIds, v.Int64()) + } } return list, totalCount, nil } +// genTree 生成关系树 +func (s *sAdminMember) genTree(ctx context.Context, pid int64) (level int, newTree string, err error) { + var ( + pInfo *entity.AdminMember + ) + err = dao.AdminMember.Ctx(ctx).Where("id", pid).Scan(&pInfo) + if err != nil { + return + } + + if pInfo == nil { + err = gerror.New("上级信息不存在") + return + } + + level = pInfo.Level + 1 + newTree = tree.GenLabel(pInfo.Tree, pInfo.Id) + + return +} + // LoginMemberInfo 获取登录用户信息 func (s *sAdminMember) LoginMemberInfo(ctx context.Context, req *member.InfoReq) (res *adminin.MemberLoginModel, err error) { - - var ( - permissions adminin.MemberLoginPermissions - identity *model.Identity - ) - - identity = contexts.Get(ctx).User - + identity := contexts.Get(ctx).User if identity == nil { err = gerror.New("用户身份异常,请重新登录!") return } - permissions.Label = "主控台" - permissions.Value = "value" + permissions, err := service.AdminMenu().LoginPermissions(ctx, identity.Id) + if err != nil { + return + } res = &adminin.MemberLoginModel{ UserId: identity.Id, Username: identity.Username, RealName: identity.RealName, Avatar: identity.Avatar, - Permissions: []adminin.MemberLoginPermissions{permissions}, + Permissions: permissions, Token: jwt.GetAuthorization(ghttp.RequestFromCtx(ctx)), } @@ -429,7 +469,7 @@ func (s *sAdminMember) Login(ctx context.Context, in adminin.MemberLoginInp) (re err = dao.AdminRole.Ctx(ctx). Fields("id,key,status"). - Where("id", memberInfo.Role). + Where("id", memberInfo.RoleId). Scan(&roleInfo) if err != nil { err = gerror.Wrap(err, consts.ErrorORM) @@ -445,30 +485,26 @@ func (s *sAdminMember) Login(ctx context.Context, in adminin.MemberLoginInp) (re return } - // 生成token - jwtExpires, err := g.Cfg().Get(ctx, "jwt.expires", 1) - if err != nil { - err := gerror.New(err.Error()) - return nil, err - } // 有效期 - expires := jwtExpires.Int64() + expires := g.Cfg().MustGet(ctx, "jwt.expires", 1).Int64() // 过期时间戳 exp := gconv.Int64(gtime.Timestamp()) + expires identity = &model.Identity{ Id: memberInfo.Id, + Pid: memberInfo.Pid, + DeptId: memberInfo.DeptId, + RoleId: roleInfo.Id, + RoleKey: roleInfo.Key, Username: memberInfo.Username, - RealName: memberInfo.Realname, + RealName: memberInfo.RealName, Avatar: memberInfo.Avatar, Email: memberInfo.Email, Mobile: memberInfo.Mobile, VisitCount: memberInfo.VisitCount, LastTime: memberInfo.LastTime, LastIp: memberInfo.LastIp, - Role: roleInfo.Id, - RoleKey: roleInfo.Key, Exp: exp, Expires: expires, App: consts.AppAdmin, @@ -509,7 +545,7 @@ func (s *sAdminMember) Login(ctx context.Context, in adminin.MemberLoginInp) (re } // RoleMemberList 获取角色下的会员列表 -func (s *sAdminMember) RoleMemberList(ctx context.Context, in adminin.RoleMemberListInp) (list []*adminin.MemberListModel, totalCount int64, err error) { +func (s *sAdminMember) RoleMemberList(ctx context.Context, in adminin.RoleMemberListInp) (list []*adminin.MemberListModel, totalCount int, err error) { mod := dao.AdminMember.Ctx(ctx) if in.Role > 0 { mod = mod.Where("role", in.Role) @@ -521,7 +557,7 @@ func (s *sAdminMember) RoleMemberList(ctx context.Context, in adminin.RoleMember return list, totalCount, err } - err = mod.Page(int(in.Page), int(in.PerPage)).Order("id desc").Scan(&list) + err = mod.Page(in.Page, in.PerPage).Order("id desc").Scan(&list) if err != nil { err = gerror.Wrap(err, consts.ErrorORM) return list, totalCount, err @@ -546,7 +582,7 @@ func (s *sAdminMember) Status(ctx context.Context, in adminin.MemberStatusInp) ( return err } - if !convert.InSliceInt(consts.StatusMap, in.Status) { + if !validate.InSliceInt(consts.StatusMap, in.Status) { err = gerror.New("状态不正确") return err } diff --git a/server/internal/logic/admin/menu.go b/server/internal/logic/admin/menu.go index 32eb002..73c3aba 100644 --- a/server/internal/logic/admin/menu.go +++ b/server/internal/logic/admin/menu.go @@ -10,6 +10,7 @@ import ( "context" "github.com/gogf/gf/v2/errors/gerror" "github.com/gogf/gf/v2/os/gtime" + "github.com/gogf/gf/v2/text/gstr" "github.com/gogf/gf/v2/util/gconv" "hotgo/api/backend/menu" "hotgo/api/backend/role" @@ -198,8 +199,8 @@ func (s *sAdminMenu) Edit(ctx context.Context, req *menu.EditReq) (err error) { err = gerror.New("菜单名称不能为空") return err } - if req.Path == "" { - err = gerror.New("菜单路径不能为空") + if req.Type != 3 && req.Path == "" { + err = gerror.New("路由地址不能为空") return err } if req.Name == "" { @@ -367,3 +368,50 @@ func (s *sAdminMenu) GetMenuList(ctx context.Context, memberId int64) (lists rol lists.List = append(lists.List, s.genNaiveMenus(menus)...) return } + +// LoginPermissions 获取登录成功后的细分权限 +func (s *sAdminMenu) LoginPermissions(ctx context.Context, memberId int64) (lists []*adminin.MemberLoginPermissions, err error) { + // 空跑 + lists = append(lists, &adminin.MemberLoginPermissions{ + Value: "value", + }) + + type Permissions struct { + Permissions string `json:"permissions"` + } + + var ( + allPermissions []*Permissions + mod = dao.AdminMenu.Ctx(ctx).Fields("permissions").Where("status", consts.StatusEnabled).Where("permissions != ?", "") + ) + + // 非超管验证允许的菜单列表 + if !service.AdminMember().VerifySuperId(ctx, memberId) { + array, err := dao.AdminRoleMenu.Ctx(ctx). + Fields("menu_id"). + Where("role_id", contexts.GetRoleId(ctx)). + Array() + if err != nil { + return nil, err + } + mod = mod.Where("id", array) + } + + if err = mod.Scan(&allPermissions); err != nil { + return lists, err + } + + if len(allPermissions) == 0 { + return + } + + for _, v := range allPermissions { + for _, p := range gstr.Explode(`,`, v.Permissions) { + lists = append(lists, &adminin.MemberLoginPermissions{ + Value: p, + }) + } + } + + return +} diff --git a/server/internal/logic/admin/notice.go b/server/internal/logic/admin/notice.go index 76dc8fa..82e6692 100644 --- a/server/internal/logic/admin/notice.go +++ b/server/internal/logic/admin/notice.go @@ -16,8 +16,8 @@ import ( "hotgo/internal/service" "hotgo/internal/websocket" "hotgo/utility/charset" - "hotgo/utility/convert" "hotgo/utility/simple" + "hotgo/utility/validate" "strings" ) @@ -100,7 +100,7 @@ func (s *sAdminNotice) Status(ctx context.Context, in adminin.NoticeStatusInp) ( return err } - if !convert.InSliceInt(consts.StatusMap, in.Status) { + if !validate.InSliceInt(consts.StatusMap, in.Status) { err = gerror.New("状态不正确") return err } @@ -140,7 +140,7 @@ func (s *sAdminNotice) View(ctx context.Context, in adminin.NoticeViewInp) (res } // List 获取列表 -func (s *sAdminNotice) List(ctx context.Context, in adminin.NoticeListInp) (list []*adminin.NoticeListModel, totalCount int64, err error) { +func (s *sAdminNotice) List(ctx context.Context, in adminin.NoticeListInp) (list []*adminin.NoticeListModel, totalCount int, err error) { mod := dao.AdminNotice.Ctx(ctx) // 访问路径 @@ -168,7 +168,7 @@ func (s *sAdminNotice) List(ctx context.Context, in adminin.NoticeListInp) (list return list, totalCount, nil } - if err = mod.Page(int(in.Page), int(in.PerPage)).Order("id desc").Scan(&list); err != nil { + if err = mod.Page(in.Page, in.PerPage).Order("id desc").Scan(&list); err != nil { err = gerror.Wrap(err, consts.ErrorORM) return list, totalCount, err } diff --git a/server/internal/logic/admin/post.go b/server/internal/logic/admin/post.go index ee60cc6..eff5347 100644 --- a/server/internal/logic/admin/post.go +++ b/server/internal/logic/admin/post.go @@ -14,7 +14,7 @@ import ( "hotgo/internal/dao" "hotgo/internal/model/input/adminin" "hotgo/internal/service" - "hotgo/utility/convert" + "hotgo/utility/validate" ) type sAdminPost struct{} @@ -153,7 +153,7 @@ func (s *sAdminPost) View(ctx context.Context, in adminin.PostViewInp) (res *adm } // List 获取列表 -func (s *sAdminPost) List(ctx context.Context, in adminin.PostListInp) (list []*adminin.PostListModel, totalCount int64, err error) { +func (s *sAdminPost) List(ctx context.Context, in adminin.PostListInp) (list []*adminin.PostListModel, totalCount int, err error) { mod := dao.AdminPost.Ctx(ctx) // 访问路径 @@ -181,7 +181,7 @@ func (s *sAdminPost) List(ctx context.Context, in adminin.PostListInp) (list []* return list, totalCount, nil } - if err = mod.Page(int(in.Page), int(in.PerPage)).Order("id desc").Scan(&list); err != nil { + if err = mod.Page(in.Page, in.PerPage).Order("id desc").Scan(&list); err != nil { err = gerror.Wrap(err, consts.ErrorORM) return list, totalCount, err } @@ -226,7 +226,7 @@ func (s *sAdminPost) Status(ctx context.Context, in adminin.PostStatusInp) (err return err } - if !convert.InSliceInt(consts.StatusMap, in.Status) { + if !validate.InSliceInt(consts.StatusMap, in.Status) { err = gerror.New("状态不正确") return err } diff --git a/server/internal/logic/admin/role.go b/server/internal/logic/admin/role.go index afe8173..16b749b 100644 --- a/server/internal/logic/admin/role.go +++ b/server/internal/logic/admin/role.go @@ -9,6 +9,7 @@ package admin import ( "context" "github.com/gogf/gf/v2/database/gdb" + "github.com/gogf/gf/v2/encoding/gjson" "github.com/gogf/gf/v2/errors/gerror" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/os/gtime" @@ -17,9 +18,14 @@ import ( "hotgo/internal/dao" "hotgo/internal/library/casbin" "hotgo/internal/library/contexts" + "hotgo/internal/library/hgorm" + "hotgo/internal/model/entity" "hotgo/internal/model/input/adminin" + "hotgo/internal/model/input/form" "hotgo/internal/service" "hotgo/utility/auth" + "hotgo/utility/convert" + "sort" ) type sAdminRole struct{} @@ -38,9 +44,9 @@ func (s *sAdminRole) Verify(ctx context.Context, path, method string) bool { return true } var ( - user = contexts.Get(ctx).User - superRoleKey, _ = g.Cfg().Get(ctx, "hotgo.admin.superRoleKey") - err error + user = contexts.Get(ctx).User + superRoleKey = g.Cfg().MustGet(ctx, "hotgo.admin.superRoleKey") + err error ) if user == nil { @@ -61,7 +67,7 @@ func (s *sAdminRole) Verify(ctx context.Context, path, method string) bool { } // List 获取列表 -func (s *sAdminRole) List(ctx context.Context, in adminin.RoleListInp) (list []*adminin.RoleListModel, totalCount int64, err error) { +func (s *sAdminRole) List(ctx context.Context, in adminin.RoleListInp) (list []*adminin.RoleListModel, totalCount int, err error) { mod := dao.AdminRole.Ctx(ctx) totalCount, err = mod.Count() if err != nil { @@ -69,7 +75,7 @@ func (s *sAdminRole) List(ctx context.Context, in adminin.RoleListInp) (list []* return list, totalCount, err } - err = mod.Page(int(in.Page), int(in.PerPage)).Order("id asc").Scan(&list) + err = mod.Page(in.Page, in.PerPage).Order("id asc").Scan(&list) if err != nil { err = gerror.Wrap(err, consts.ErrorORM) return list, totalCount, err @@ -128,7 +134,7 @@ func (s *sAdminRole) GetPermissions(ctx context.Context, reqInfo *role.GetPermis // UpdatePermissions 更改角色菜单权限 func (s *sAdminRole) UpdatePermissions(ctx context.Context, reqInfo *role.UpdatePermissionsReq) error { - return dao.AdminRoleMenu.Transaction(ctx, func(ctx context.Context, tx *gdb.TX) (err error) { + return dao.AdminRoleMenu.Transaction(ctx, func(ctx context.Context, tx gdb.TX) (err error) { _, err = dao.AdminRoleMenu.Ctx(ctx).Where("role_id", reqInfo.RoleId).Delete() if err != nil { err = gerror.Wrap(err, consts.ErrorORM) @@ -185,6 +191,11 @@ func (s *sAdminRole) Edit(ctx context.Context, in *role.EditReq) (err error) { return err } + in.Pid, in.Level, in.Tree, err = hgorm.GenSubTree(ctx, dao.AdminRole, in.Pid) + if err != nil { + return err + } + // 修改 in.UpdatedAt = gtime.Now() if in.Id > 0 { @@ -219,3 +230,58 @@ func (s *sAdminRole) Delete(ctx context.Context, in *role.DeleteReq) (err error) return nil } + +func (s *sAdminRole) DataScopeSelect(ctx context.Context) (res form.Selects) { + for k, v := range consts.RoleDataNameMap { + res = append(res, &form.Select{ + Value: k, + Name: v, + Label: v, + }) + } + sort.Sort(res) + return res +} + +func (s *sAdminRole) DataScopeEdit(ctx context.Context, in *adminin.DataScopeEditInp) (err error) { + if in.Id <= 0 { + return gerror.New("角色ID不正确!") + } + + var ( + models *entity.AdminRole + superRoleKey = g.Cfg().MustGet(ctx, "hotgo.admin.superRoleKey") + ) + + err = dao.AdminRole.Ctx(ctx).Where("id", in.Id).Scan(&models) + if err != nil { + return + } + + if models == nil { + return gerror.New("角色不存在") + } + + if models.Key == superRoleKey.String() { + return gerror.New("超管角色拥有全部权限,无需修改!") + } + + if in.DataScope == consts.RoleDataDeptCustom && len(convert.UniqueSliceInt64(in.CustomDept)) == 0 { + return gerror.New("自定义权限必须配置自定义部门!") + } + + models.DataScope = in.DataScope + models.CustomDept = gjson.New(convert.UniqueSliceInt64(in.CustomDept)) + + _, err = dao.AdminRole.Ctx(ctx). + Fields(dao.AdminRole.Columns().DataScope, dao.AdminRole.Columns().CustomDept). + Where("id", in.Id). + Data(models). + Update() + if err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return err + } + + return nil +} diff --git a/server/internal/logic/admin/test.go b/server/internal/logic/admin/test.go new file mode 100644 index 0000000..7b0eac7 --- /dev/null +++ b/server/internal/logic/admin/test.go @@ -0,0 +1,266 @@ +// Package admin +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2022 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package admin + +import ( + "context" + "fmt" + "github.com/gogf/gf/v2/database/gdb" + "github.com/gogf/gf/v2/errors/gerror" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gctx" + "github.com/gogf/gf/v2/util/gconv" + "hotgo/internal/consts" + "hotgo/internal/dao" + "hotgo/internal/library/contexts" + "hotgo/internal/library/hgorm" + "hotgo/internal/model/input/adminin" + "hotgo/internal/model/input/form" + "hotgo/internal/service" + "hotgo/utility/convert" + "hotgo/utility/excel" + "hotgo/utility/validate" +) + +type sAdminTest struct{} + +func NewAdminTest() *sAdminTest { + return &sAdminTest{} +} + +func init() { + service.RegisterAdminTest(NewAdminTest()) +} + +// Model Orm模型 +func (s *sAdminTest) Model(ctx context.Context) *gdb.Model { + return dao.Test.Ctx(ctx) +} + +// List 获取列表 +func (s *sAdminTest) List(ctx context.Context, in adminin.TestListInp) (list []*adminin.TestListModel, totalCount int, err error) { + mod := dao.Test.Ctx(ctx) + + if in.Title != "" { + mod = mod.WhereLike(dao.Test.Columns().Title, "%"+in.Title+"%") + } + + if in.Content != "" { + mod = mod.WhereLike(dao.Test.Columns().Content, "%"+in.Content+"%") + } + + if in.Status > 0 { + mod = mod.Where(dao.Test.Columns().Status, in.Status) + } + + if in.Switch > 0 { + mod = mod.Where(dao.Test.Columns().Switch, in.Switch) + } + + if len(in.Price) > 0 { + if in.Price[0] > float64(0) && in.Price[1] > float64(0) { + mod = mod.WhereBetween(dao.Test.Columns().Price, in.Price[0], in.Price[1]) + } else if in.Price[0] > float64(0) && in.Price[1] == float64(0) { + mod = mod.WhereGTE(dao.Test.Columns().Price, in.Price[0]) + } else if in.Price[0] == float64(0) && in.Price[1] > float64(0) { + mod = mod.WhereLTE(dao.Test.Columns().Price, in.Price[1]) + } + } + + if in.ActivityAt != nil { + mod = mod.Where(dao.Test.Columns().ActivityAt, in.ActivityAt) + } + + if len(in.CreatedAt) == 2 { + mod = mod.WhereBetween(dao.Test.Columns().CreatedAt, in.CreatedAt[0], in.CreatedAt[1]) + } + + if !in.Flag.IsNil() { + mod = mod.Where(fmt.Sprintf(`JSON_CONTAINS(%s,'%v')`, dao.Test.Columns().Flag, in.Flag)) + } + + if !in.Hobby.IsNil() { + mod = mod.Where(fmt.Sprintf(`JSON_CONTAINS(%s,'%v')`, dao.Test.Columns().Hobby, in.Hobby)) + } + + //// 关联表testCategory + //mod = mod.LeftJoin(hgorm.GenJoinOnRelation( + // dao.Test.Table(), dao.Test.Columns().CategoryId, // 主表表名,关联条件 + // dao.TestCategory.Table(), "testCategory", dao.TestCategory.Columns().Id, // 关联表表名,别名,关联条件 + //)...) + // + //mod = mod.Where(`testCategory.`+dao.TestCategory.Columns().Name, "微信公众号") + + totalCount, err = mod.Clone().Count(1) + if err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return list, totalCount, err + } + + if totalCount == 0 { + return list, totalCount, nil + } + + ////关联表select + //fields, err := hgorm.GenJoinSelect(ctx, adminin.TestListModel{}, dao.Test, []*hgorm.Join{ + // {Dao: dao.TestCategory, Alias: "testCategory"}, + // //{Dao: dao.TestCategory, Alias: "testCategory"}, + //}) + + fields, err := hgorm.GenSelect(ctx, adminin.TestListModel{}, dao.Test) + if err != nil { + return nil, 0, err + } + + if err = mod.Fields(fields).Handler(hgorm.HandlerFilterAuth, hgorm.HandlerForceCache).Page(in.Page, in.PerPage).OrderAsc(dao.Test.Columns().Sort).OrderDesc(dao.Test.Columns().Id).Scan(&list); err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return list, totalCount, err + } + + return list, totalCount, err +} + +// Export 导出 +func (s *sAdminTest) Export(ctx context.Context, in adminin.TestListInp) (err error) { + list, totalCount, err := s.List(ctx, in) + if err != nil { + return err + } + + // 字段的排序是依据tags的字段顺序,如果你不想使用默认的排序方式,可以直接定义 tags = []string{"字段名称", "字段名称2", ...} + tags, err := convert.GetEntityDescTags(adminin.TestExportModel{}) + if err != nil { + return err + } + + var ( + fileName = "测试导出-" + gctx.CtxId(ctx) + ".xlsx" + sheetName = fmt.Sprintf("索引条件共%v行,共%v页,当前导出是第%v页,本页共%v行", totalCount, form.CalPageCount(totalCount, in.PerPage), in.Page, len(list)) + exports []adminin.TestExportModel + ) + + err = gconv.Scan(list, &exports) + if err != nil { + return err + } + if err = excel.ExportByStructs(ctx, tags, exports, fileName, sheetName); err != nil { + return + } + return +} + +// Edit 修改/新增 +func (s *sAdminTest) Edit(ctx context.Context, in adminin.TestEditInp) (err error) { + if err = hgorm.IsUnique(ctx, dao.Test, g.Map{dao.Test.Columns().Qq: in.Qq}, "QQ号码已存在,请换一个", in.Id); err != nil { + if err != nil { + return err + } + } + + // 修改 + if in.Id > 0 { + in.UpdatedBy = contexts.GetUserId(ctx) + _, err = dao.Test.Ctx(ctx).Where(dao.Test.Columns().Id, in.Id).Data(in).Update() + if err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return err + } + + return nil + } + + // 新增 + in.CreatedBy = contexts.GetUserId(ctx) + _, err = dao.Test.Ctx(ctx).Data(in).Insert() + if err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return err + } + + return nil +} + +// Delete 删除 +func (s *sAdminTest) Delete(ctx context.Context, in adminin.TestDeleteInp) (err error) { + _, err = dao.Test.Ctx(ctx).Where(dao.Test.Columns().Id, in.Id).Delete() + if err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return err + } + + return nil +} + +// Status 更新状态 +func (s *sAdminTest) Status(ctx context.Context, in adminin.TestStatusInp) (err error) { + if in.Id <= 0 { + err = gerror.New("ID不能为空") + return err + } + + if in.Status <= 0 { + err = gerror.New("状态不能为空") + return err + } + + if !validate.InSliceInt(consts.StatusMap, in.Status) { + err = gerror.New("状态不正确") + return err + } + + // 修改 + _, err = dao.Test.Ctx(ctx).Where(dao.Test.Columns().Id, in.Id).Data(dao.Test.Columns().Status, in.Status).Update() + if err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return err + } + + return nil +} + +// Switch 更新开关状态 +func (s *sAdminTest) Switch(ctx context.Context, in adminin.TestSwitchInp) (err error) { + var fields = []string{ + dao.Test.Columns().Switch, + // ... + } + + if !validate.InSliceString(fields, in.Key) { + err = gerror.New("开关键名不在白名单") + return err + } + + // 修改 + _, err = dao.Test.Ctx(ctx).Where(dao.Test.Columns().Id, in.Id).Data(in.Key, in.Value).Update() + if err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return err + } + + return nil +} + +// MaxSort 最大排序 +func (s *sAdminTest) MaxSort(ctx context.Context, in adminin.TestMaxSortInp) (res *adminin.TestMaxSortModel, err error) { + if err = dao.Test.Ctx(ctx).Fields(dao.Test.Columns().Sort).OrderDesc(dao.Test.Columns().Sort).Scan(&res); err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return nil, err + } + + res.Sort = res.Sort + g.Cfg().MustGet(ctx, "hotgo.admin.maxSortIncrement").Int() + return res, nil +} + +// View 获取指定字典类型信息 +func (s *sAdminTest) View(ctx context.Context, in adminin.TestViewInp) (res *adminin.TestViewModel, err error) { + if err = dao.Test.Ctx(ctx).Where(dao.Test.Columns().Id, in.Id).Scan(&res); err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return nil, err + } + + return res, nil +} diff --git a/server/internal/logic/common/upload.go b/server/internal/logic/common/upload.go index a3f8b5e..c8c724b 100644 --- a/server/internal/logic/common/upload.go +++ b/server/internal/logic/common/upload.go @@ -8,19 +8,25 @@ package common import ( "context" - "fmt" "github.com/gogf/gf/v2/errors/gerror" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/net/ghttp" + "github.com/gogf/gf/v2/os/gfile" + "github.com/gogf/gf/v2/os/gtime" "github.com/gogf/gf/v2/util/gconv" + "github.com/gogf/gf/v2/util/grand" + ufile "github.com/ufilesdk-dev/ufile-gosdk" "hotgo/internal/consts" "hotgo/internal/dao" + "hotgo/internal/model" "hotgo/internal/model/input/sysin" "hotgo/internal/service" "hotgo/utility/encrypt" f "hotgo/utility/file" "hotgo/utility/format" + "hotgo/utility/url" "hotgo/utility/validate" + "strconv" "strings" "time" ) @@ -35,6 +41,38 @@ func init() { service.RegisterCommonUpload(NewCommonUpload()) } +// UploadFile 上传文件 +func (s *sCommonUpload) UploadFile(ctx context.Context, file *ghttp.UploadFile) (result *sysin.AttachmentListModel, err error) { + if file == nil { + err = gerror.New("文件必须!") + return + } + + meta, err := s.fileMeta(file) + if err != nil { + return + } + + _, err = f.GetFileType(meta.Ext) + if err != nil { + return nil, err + } + + conf, err := service.SysConfig().GetUpload(ctx) + if err != nil { + return + } + + switch conf.Drive { + case consts.UploadDriveLocal: + return s.UploadLocal(ctx, conf, file, meta) + case consts.UploadDriveUCloud: + return s.UploadUCloud(ctx, conf, file, meta) + default: + return nil, gerror.Newf("暂不支持上传驱动:%v", conf.Drive) + } +} + // UploadImage 上传图片 func (s *sCommonUpload) UploadImage(ctx context.Context, file *ghttp.UploadFile) (result *sysin.AttachmentListModel, err error) { if file == nil { @@ -50,11 +88,28 @@ func (s *sCommonUpload) UploadImage(ctx context.Context, file *ghttp.UploadFile) if !f.IsImgType(meta.Ext) { return nil, gerror.New("上传的文件不是图片") } - return s.UploadLocal(ctx, file, meta) + + if meta.Size > 2*1024*1024 { + return nil, gerror.New("图片大小不能超过2MB") + } + + conf, err := service.SysConfig().GetUpload(ctx) + if err != nil { + return + } + + switch conf.Drive { + case consts.UploadDriveLocal: + return s.UploadLocal(ctx, conf, file, meta) + case consts.UploadDriveUCloud: + return s.UploadUCloud(ctx, conf, file, meta) + default: + return nil, gerror.Newf("暂不支持上传驱动:%v", conf.Drive) + } } // UploadLocal 上传本地 -func (s *sCommonUpload) UploadLocal(ctx context.Context, file *ghttp.UploadFile, meta *sysin.UploadFileMeta) (result *sysin.AttachmentListModel, err error) { +func (s *sCommonUpload) UploadLocal(ctx context.Context, conf *model.UploadConfig, file *ghttp.UploadFile, meta *sysin.UploadFileMeta) (result *sysin.AttachmentListModel, err error) { result, err = dao.SysAttachment.GetMd5File(ctx, meta.Md5) if err != nil { err = gerror.Wrap(err, consts.ErrorORM) @@ -66,8 +121,8 @@ func (s *sCommonUpload) UploadLocal(ctx context.Context, file *ghttp.UploadFile, } var ( - value, _ = g.Cfg().Get(ctx, "server.serverRoot") - nowDate = time.Now().Format("2006-01-02") + value = g.Cfg().MustGet(ctx, "server.serverRoot") + nowDate = time.Now().Format("2006-01-02") ) if value.IsEmpty() { @@ -75,21 +130,89 @@ func (s *sCommonUpload) UploadLocal(ctx context.Context, file *ghttp.UploadFile, return } + if conf.LocalPath == "" { + err = gerror.New("本地上传驱动必须配置本地存储路径!") + return + } + // 包含静态文件夹的路径 - fullDirPath := strings.Trim(value.String(), "/") + "/attachment/" + nowDate + fullDirPath := strings.Trim(value.String(), "/") + "/" + conf.LocalPath + nowDate fileName, err := file.Save(fullDirPath, true) if err != nil { return } // 不含静态文件夹的路径 - fullPath := "attachment/" + nowDate + "/" + fileName + fullPath := conf.LocalPath + nowDate + "/" + fileName attachment, err := service.SysAttachment().Add(ctx, meta, fullPath, consts.UploadDriveLocal) if err != nil { return nil, err } - attachment.FileUrl = s.LastUrl(ctx, attachment.FileUrl, attachment.Drive) + attachment.FileUrl = s.LastUrl(ctx, conf, attachment.FileUrl, attachment.Drive) + result = &sysin.AttachmentListModel{ + SysAttachment: *attachment, + SizeFormat: format.FileSize(attachment.Size), + } + return +} + +// UploadUCloud 上传UCloud对象存储 +func (s *sCommonUpload) UploadUCloud(ctx context.Context, conf *model.UploadConfig, file *ghttp.UploadFile, meta *sysin.UploadFileMeta) (result *sysin.AttachmentListModel, err error) { + result, err = dao.SysAttachment.GetMd5File(ctx, meta.Md5) + if err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return + } + + if result != nil { + return + } + + if conf.UCloudPath == "" { + err = gerror.New("UCloud存储驱动必须配置存储路径!") + return + } + + nowDate := time.Now().Format("2006-01-02") + fileName := gfile.Basename(file.Filename) + fileName = strings.ToLower(strconv.FormatInt(gtime.TimestampNano(), 36) + grand.S(6)) + fileName = fileName + gfile.Ext(file.Filename) + fullPath := conf.UCloudPath + nowDate + "/" + fileName + config := &ufile.Config{ + PublicKey: conf.UCloudPublicKey, + PrivateKey: conf.UCloudPrivateKey, + BucketHost: conf.UCloudBucketHost, + BucketName: conf.UCloudBucketName, + FileHost: conf.UCloudFileHost, + Endpoint: conf.UCloudEndpoint, + VerifyUploadMD5: false, + } + req, err := ufile.NewFileRequest(config, nil) + if err != nil { + return nil, err + } + // 流式上传本地小文件 + f2, err := file.Open() + defer func() { + _ = f2.Close() + }() + if err != nil { + return nil, err + } + + if err = req.IOPut(f2, fullPath, ""); err != nil { + return nil, err + } + + g.Log().Warningf(ctx, "ras:%+v", string(req.LastResponseBody)) + + attachment, err := service.SysAttachment().Add(ctx, meta, fullPath, consts.UploadDriveUCloud) + if err != nil { + return nil, err + } + + attachment.FileUrl = s.LastUrl(ctx, conf, attachment.FileUrl, attachment.Drive) result = &sysin.AttachmentListModel{ SysAttachment: *attachment, SizeFormat: format.FileSize(attachment.Size), @@ -98,16 +221,19 @@ func (s *sCommonUpload) UploadLocal(ctx context.Context, file *ghttp.UploadFile, } // LastUrl 根据驱动获取最终文件访问地址 -func (s *sCommonUpload) LastUrl(ctx context.Context, fullPath, drive string) string { +func (s *sCommonUpload) LastUrl(ctx context.Context, conf *model.UploadConfig, fullPath, drive string) string { if validate.IsURL(fullPath) { return fullPath } - if drive == consts.UploadDriveLocal { - return fmt.Sprintf("http://%s/", g.RequestFromCtx(ctx).Host) + "/" + fullPath + switch drive { + case consts.UploadDriveLocal: + return url.GetAddr(ctx) + "/" + fullPath + case consts.UploadDriveUCloud: + return conf.UCloudEndpoint + "/" + fullPath + default: + return fullPath } - - return fullPath } // fileMeta 上传文件元数据 diff --git a/server/internal/logic/middleware/admin_auth.go b/server/internal/logic/middleware/admin_auth.go index 9fee66b..ada1db1 100644 --- a/server/internal/logic/middleware/admin_auth.go +++ b/server/internal/logic/middleware/admin_auth.go @@ -26,7 +26,7 @@ func (s *sMiddleware) AdminAuth(r *ghttp.Request) { ) // 替换掉模块前缀 - routerPrefix, _ := g.Cfg().Get(ctx, "router.admin.prefix", "/admin") + routerPrefix := g.Cfg().MustGet(ctx, "router.admin.prefix", "/admin") path := gstr.Replace(r.URL.Path, routerPrefix.String(), "", 1) /// 不需要验证登录的路由地址 diff --git a/server/internal/logic/middleware/api_auth.go b/server/internal/logic/middleware/api_auth.go index 2a5b88e..b7129a3 100644 --- a/server/internal/logic/middleware/api_auth.go +++ b/server/internal/logic/middleware/api_auth.go @@ -24,7 +24,7 @@ func (s *sMiddleware) ApiAuth(r *ghttp.Request) { ) // 替换掉模块前缀 - routerPrefix, _ := g.Cfg().Get(ctx, "router.api.prefix", "/api") + routerPrefix := g.Cfg().MustGet(ctx, "router.api.prefix", "/api") path := gstr.Replace(r.URL.Path, routerPrefix.String(), "", 1) /// 不需要验证登录的路由地址 @@ -39,9 +39,9 @@ func (s *sMiddleware) ApiAuth(r *ghttp.Request) { } //// 验证路由访问权限 - //verify := adminService.Role.Verify(ctx, customCtx.User.Id, path) + //verify := service.AdminRole().Verify(ctx, path, r.Method) //if !verify { - // response.JsonExit(r, gcode.CodeSecurityReason.Code(), "你没有访问权限!") + // response.JsonExit(r, consts.CodeSecurityReason, "你没有访问权限!") // return //} diff --git a/server/internal/logic/middleware/init.go b/server/internal/logic/middleware/init.go index e7cd5ea..4eff0fb 100644 --- a/server/internal/logic/middleware/init.go +++ b/server/internal/logic/middleware/init.go @@ -75,7 +75,7 @@ func (s *sMiddleware) CORS(r *ghttp.Request) { // DemoLimit 演示系統操作限制 func (s *sMiddleware) DemoLimit(r *ghttp.Request) { - isDemo, _ := g.Cfg().Get(r.Context(), "hotgo.isDemo", false) + isDemo := g.Cfg().MustGet(r.Context(), "hotgo.isDemo", false) if !isDemo.Bool() { r.Middleware.Next() return @@ -86,7 +86,7 @@ func (s *sMiddleware) DemoLimit(r *ghttp.Request) { r.Middleware.Next() return } - response.JsonExit(r, gcode.CodeInvalidRequest.Code(), "演示系統禁止操作!") + response.JsonExit(r, gcode.CodeNotSupported.Code(), "演示系统禁止操作!") return } @@ -109,7 +109,7 @@ func inspectAuth(r *ghttp.Request, appName string) error { // 获取jwtToken jwtToken := consts.RedisJwtToken + gmd5.MustEncryptString(authorization) - jwtSign, _ := g.Cfg().Get(ctx, "jwt.sign", "hotgo") + jwtSign := g.Cfg().MustGet(ctx, "jwt.sign", "hotgo") data, ParseErr := jwt.ParseToken(authorization, jwtSign.Bytes()) if ParseErr != nil { @@ -131,7 +131,7 @@ func inspectAuth(r *ghttp.Request, appName string) error { } // 是否开启多端登录 - if multiPort, _ := g.Cfg().Get(ctx, "jwt.multiPort", true); !multiPort.Bool() { + if multiPort := g.Cfg().MustGet(ctx, "jwt.multiPort", true); !multiPort.Bool() { key := consts.RedisJwtUserBind + appName + ":" + gconv.String(user.Id) originJwtToken, originErr := c.Get(ctx, key) if originErr != nil { @@ -151,6 +151,10 @@ func inspectAuth(r *ghttp.Request, appName string) error { if user != nil { customCtx.User = &model.Identity{ Id: user.Id, + Pid: user.Pid, + DeptId: user.DeptId, + RoleId: user.RoleId, + RoleKey: user.RoleKey, Username: user.Username, RealName: user.RealName, Avatar: user.Avatar, @@ -159,8 +163,6 @@ func inspectAuth(r *ghttp.Request, appName string) error { VisitCount: user.VisitCount, LastTime: user.LastTime, LastIp: user.LastIp, - Role: user.Role, - RoleKey: user.RoleKey, Exp: user.Exp, Expires: user.Expires, App: user.App, diff --git a/server/internal/logic/middleware/response.go b/server/internal/logic/middleware/response.go index f4cb78e..0cb06f3 100644 --- a/server/internal/logic/middleware/response.go +++ b/server/internal/logic/middleware/response.go @@ -8,9 +8,9 @@ package middleware import ( "github.com/gogf/gf/v2/errors/gcode" + "github.com/gogf/gf/v2/errors/gerror" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/net/ghttp" - "hotgo/internal/consts" "hotgo/internal/library/contexts" "hotgo/internal/library/response" "hotgo/utility/charset" @@ -35,15 +35,6 @@ func (s *sMiddleware) ResponseHandler(r *ghttp.Request) { return } - if err := r.GetError(); err != nil { - g.Log().Print(ctx, err) - // 记录到自定义错误日志文件 - //g.Log("exception").Error(err) - ////返回固定的友好信息 - //r.Response.ClearBuffer() - //r.Response.Writeln("服务器居然开小差了,请稍后再试吧!") - } - // 已存在响应内容,且是comResponse返回的时,中断运行 if r.Response.BufferLength() > 0 && comResponse != nil { return @@ -51,26 +42,15 @@ func (s *sMiddleware) ResponseHandler(r *ghttp.Request) { if err = r.GetError(); err != nil { // 记录到自定义错误日志文件 - g.Log("exception").Print(r.Context(), "exception:", err) + g.Log("exception").Print(ctx, "exception:", err) - code = consts.CodeInternalError - message = "服务器居然开小差了,请稍后再试吧!" + code = gerror.Code(err).Code() + message = err.Error() // 是否输出错误到页面 - if debug, _ := g.Cfg().Get(ctx, "hotgo.debug", true); debug.Bool() { + if g.Cfg().MustGet(ctx, "hotgo.debug", true).Bool() { data = charset.GetStack(err) - message = err.Error() } - - //} else if data, err = r.GetHandlerResponse(); err != nil { - // errCode := gerror.Code(err) - // if errCode == gcode.CodeNil { - // errCode = gcode.CodeInternalError - // } - // code = errCode.Code() - // message = err.Error() - //} - } else { data = r.GetHandlerResponse() } diff --git a/server/internal/logic/middleware/weboscket.go b/server/internal/logic/middleware/weboscket.go index 1a74b86..0078b52 100644 --- a/server/internal/logic/middleware/weboscket.go +++ b/server/internal/logic/middleware/weboscket.go @@ -24,7 +24,7 @@ func (s *sMiddleware) WebSocketToken(r *ghttp.Request) { ) // 替换掉模块前缀 - routerPrefix, _ := g.Cfg().Get(ctx, "router.ws.prefix", "/socket") + routerPrefix := g.Cfg().MustGet(ctx, "router.ws.prefix", "/socket") path := gstr.Replace(r.URL.Path, routerPrefix.String(), "", 1) /// 不需要验证登录的路由地址 diff --git a/server/internal/logic/sys/attachment.go b/server/internal/logic/sys/attachment.go index 45874a1..4854fc9 100644 --- a/server/internal/logic/sys/attachment.go +++ b/server/internal/logic/sys/attachment.go @@ -16,8 +16,8 @@ import ( "hotgo/internal/model/entity" "hotgo/internal/model/input/sysin" "hotgo/internal/service" - "hotgo/utility/convert" "hotgo/utility/format" + "hotgo/utility/validate" ) type sSysAttachment struct{} @@ -82,7 +82,7 @@ func (s *sSysAttachment) Status(ctx context.Context, in sysin.AttachmentStatusIn return err } - if !convert.InSliceInt(consts.StatusMap, in.Status) { + if !validate.InSliceInt(consts.StatusMap, in.Status) { err = gerror.New("状态不正确") return err } @@ -124,7 +124,7 @@ func (s *sSysAttachment) View(ctx context.Context, in sysin.AttachmentViewInp) ( } // List 获取列表 -func (s *sSysAttachment) List(ctx context.Context, in sysin.AttachmentListInp) (list []*sysin.AttachmentListModel, totalCount int64, err error) { +func (s *sSysAttachment) List(ctx context.Context, in sysin.AttachmentListInp) (list []*sysin.AttachmentListModel, totalCount int, err error) { mod := dao.SysAttachment.Ctx(ctx) // 访问路径 @@ -152,14 +152,18 @@ func (s *sSysAttachment) List(ctx context.Context, in sysin.AttachmentListInp) ( return list, totalCount, nil } - if err = mod.Page(int(in.Page), int(in.PerPage)).Order("id desc").Scan(&list); err != nil { + if err = mod.Page(in.Page, in.PerPage).Order("updated_at desc").Scan(&list); err != nil { err = gerror.Wrap(err, consts.ErrorORM) return list, totalCount, err } + conf, err := service.SysConfig().GetUpload(ctx) + if err != nil { + return list, totalCount, err + } for _, v := range list { v.SizeFormat = format.FileSize(v.Size) - v.FileUrl = service.CommonUpload().LastUrl(ctx, v.FileUrl, consts.UploadDriveLocal) + v.FileUrl = service.CommonUpload().LastUrl(ctx, conf, v.FileUrl, v.Drive) } return list, totalCount, err diff --git a/server/internal/logic/sys/blacklist.go b/server/internal/logic/sys/blacklist.go index 21dc533..9cc8586 100644 --- a/server/internal/logic/sys/blacklist.go +++ b/server/internal/logic/sys/blacklist.go @@ -14,7 +14,7 @@ import ( "hotgo/internal/dao" "hotgo/internal/model/input/sysin" "hotgo/internal/service" - "hotgo/utility/convert" + "hotgo/utility/validate" ) type sSysBlacklist struct{} @@ -79,7 +79,7 @@ func (s *sSysBlacklist) Status(ctx context.Context, in sysin.BlacklistStatusInp) return err } - if !convert.InSliceInt(consts.StatusMap, in.Status) { + if !validate.InSliceInt(consts.StatusMap, in.Status) { err = gerror.New("状态不正确") return err } @@ -118,7 +118,7 @@ func (s *sSysBlacklist) View(ctx context.Context, in sysin.BlacklistViewInp) (re } // List 获取列表 -func (s *sSysBlacklist) List(ctx context.Context, in sysin.BlacklistListInp) (list []*sysin.BlacklistListModel, totalCount int64, err error) { +func (s *sSysBlacklist) List(ctx context.Context, in sysin.BlacklistListInp) (list []*sysin.BlacklistListModel, totalCount int, err error) { mod := dao.SysBlacklist.Ctx(ctx) // 访问路径 @@ -141,7 +141,7 @@ func (s *sSysBlacklist) List(ctx context.Context, in sysin.BlacklistListInp) (li return list, totalCount, nil } - if err = mod.Page(int(in.Page), int(in.PerPage)).Order("id desc").Scan(&list); err != nil { + if err = mod.Page(in.Page, in.PerPage).Order("id desc").Scan(&list); err != nil { err = gerror.Wrap(err, consts.ErrorORM) return list, totalCount, err } diff --git a/server/internal/logic/sys/config.go b/server/internal/logic/sys/config.go index fd95027..4ee6084 100644 --- a/server/internal/logic/sys/config.go +++ b/server/internal/logic/sys/config.go @@ -32,6 +32,55 @@ func init() { service.RegisterSysConfig(NewSysConfig()) } +// GetLoadGenerate 获取本地生成配置 +func (s *sSysConfig) GetLoadGenerate(ctx context.Context) (conf *model.GenerateConfig, err error) { + generate := g.Cfg().MustGet(ctx, "hggen") + if err = gconv.Struct(generate, &conf); err != nil { + return nil, err + } + + return conf, nil +} + +// GetSms 获取短信配置 +func (s *sSysConfig) GetSms(ctx context.Context) (conf *model.SmsConfig, err error) { + models, err := s.GetConfigByGroup(ctx, sysin.GetConfigInp{Group: "sms"}) + if err != nil { + return nil, err + } + if err = gconv.Struct(models.List, &conf); err != nil { + return nil, err + } + + return conf, nil +} + +// GetGeo 获取地理配置 +func (s *sSysConfig) GetGeo(ctx context.Context) (conf *model.GeoConfig, err error) { + models, err := s.GetConfigByGroup(ctx, sysin.GetConfigInp{Group: "geo"}) + if err != nil { + return nil, err + } + if err = gconv.Struct(models.List, &conf); err != nil { + return nil, err + } + + return conf, nil +} + +// GetUpload 获取上传配置 +func (s *sSysConfig) GetUpload(ctx context.Context) (conf *model.UploadConfig, err error) { + models, err := s.GetConfigByGroup(ctx, sysin.GetConfigInp{Group: "upload"}) + if err != nil { + return nil, err + } + if err = gconv.Struct(models.List, &conf); err != nil { + return nil, err + } + + return conf, nil +} + // GetSmtp 获取邮件配置 func (s *sSysConfig) GetSmtp(ctx context.Context) (conf *model.EmailConfig, err error) { models, err := s.GetConfigByGroup(ctx, sysin.GetConfigInp{Group: "smtp"}) @@ -47,6 +96,22 @@ func (s *sSysConfig) GetSmtp(ctx context.Context) (conf *model.EmailConfig, err return conf, nil } +// GetLoadSSL 获取本地日志配置 +func (s *sSysConfig) GetLoadSSL(ctx context.Context) (conf *model.SSLConfig, err error) { + if err = g.Cfg().MustGet(ctx, "hotgo.ssl").Struct(&conf); err != nil { + return nil, err + } + return conf, nil +} + +// GetLoadLog 获取本地日志配置 +func (s *sSysConfig) GetLoadLog(ctx context.Context) (conf *model.LogConfig, err error) { + if err = g.Cfg().MustGet(ctx, "hotgo.log").Struct(&conf); err != nil { + return nil, err + } + return conf, nil +} + // GetConfigByGroup 获取指定分组的配置 func (s *sSysConfig) GetConfigByGroup(ctx context.Context, in sysin.GetConfigInp) (*sysin.GetConfigModel, error) { if in.Group == "" { @@ -60,7 +125,7 @@ func (s *sSysConfig) GetConfigByGroup(ctx context.Context, in sysin.GetConfigInp if err := mod.Fields("key", "value", "type").Where("group", in.Group).Scan(&models); err != nil { return nil, err } - isDemo, _ := g.Cfg().Get(ctx, "hotgo.isDemo", false) + isDemo := g.Cfg().MustGet(ctx, "hotgo.isDemo", false) if len(models) > 0 { res.List = make(g.Map, len(models)) @@ -84,19 +149,7 @@ func (s *sSysConfig) ConversionType(ctx context.Context, models *entity.SysConfi if models == nil { return nil, gerror.New("数据不存在") } - - switch models.Type { - case consts.ConfigTypeInt: - value = gconv.Int64(models.Value) - return - case consts.ConfigTypeBool: - value = gconv.Bool(models.Value) - return - default: - value = gconv.String(models.Value) - } - - return value, nil + return consts.ConvType(models.Value, models.Type), nil } // UpdateConfigByGroup 更新指定分组的配置 @@ -112,7 +165,7 @@ func (s *sSysConfig) UpdateConfigByGroup(ctx context.Context, in sysin.UpdateCon return err } - err := dao.SysConfig.Transaction(ctx, func(ctx context.Context, tx *gdb.TX) error { + err := dao.SysConfig.Transaction(ctx, func(ctx context.Context, tx gdb.TX) error { for k, v := range in.List { row := s.getConfigByKey(k, models) // 新增 diff --git a/server/internal/logic/sys/cron.go b/server/internal/logic/sys/cron.go index d470e8f..7a2977e 100644 --- a/server/internal/logic/sys/cron.go +++ b/server/internal/logic/sys/cron.go @@ -17,7 +17,7 @@ import ( "hotgo/internal/model/entity" "hotgo/internal/model/input/sysin" "hotgo/internal/service" - "hotgo/utility/convert" + "hotgo/utility/validate" ) type sSysCron struct{} @@ -103,7 +103,7 @@ func (s *sSysCron) Status(ctx context.Context, in sysin.CronStatusInp) (err erro return err } - if !convert.InSliceInt(consts.StatusMap, in.Status) { + if !validate.InSliceInt(consts.StatusMap, in.Status) { err = gerror.New("状态不正确") return err } @@ -147,7 +147,7 @@ func (s *sSysCron) View(ctx context.Context, in sysin.CronViewInp) (res *sysin.C } // List 获取列表 -func (s *sSysCron) List(ctx context.Context, in sysin.CronListInp) (list []*sysin.CronListModel, totalCount int64, err error) { +func (s *sSysCron) List(ctx context.Context, in sysin.CronListInp) (list []*sysin.CronListModel, totalCount int, err error) { mod := dao.SysCron.Ctx(ctx) // 访问路径 @@ -170,7 +170,7 @@ func (s *sSysCron) List(ctx context.Context, in sysin.CronListInp) (list []*sysi return list, totalCount, nil } - if err = mod.Page(int(in.Page), int(in.PerPage)).Order("id desc").Scan(&list); err != nil { + if err = mod.Page(in.Page, in.PerPage).Order("id desc").Scan(&list); err != nil { err = gerror.Wrap(err, consts.ErrorORM) return list, totalCount, err } diff --git a/server/internal/logic/sys/cron_group.go b/server/internal/logic/sys/cron_group.go index 9be889a..62827bd 100644 --- a/server/internal/logic/sys/cron_group.go +++ b/server/internal/logic/sys/cron_group.go @@ -16,8 +16,8 @@ import ( "hotgo/internal/model/entity" "hotgo/internal/model/input/sysin" "hotgo/internal/service" - "hotgo/utility/convert" "hotgo/utility/tree" + "hotgo/utility/validate" ) type sSysCronGroup struct{} @@ -82,7 +82,7 @@ func (s *sSysCronGroup) Status(ctx context.Context, in sysin.CronGroupStatusInp) return err } - if !convert.InSliceInt(consts.StatusMap, in.Status) { + if !validate.InSliceInt(consts.StatusMap, in.Status) { err = gerror.New("状态不正确") return err } @@ -125,7 +125,7 @@ func (s *sSysCronGroup) View(ctx context.Context, in sysin.CronGroupViewInp) (re } // List 获取列表 -func (s *sSysCronGroup) List(ctx context.Context, in sysin.CronGroupListInp) (list []*sysin.CronGroupListModel, totalCount int64, err error) { +func (s *sSysCronGroup) List(ctx context.Context, in sysin.CronGroupListInp) (list []*sysin.CronGroupListModel, totalCount int, err error) { mod := dao.SysCronGroup.Ctx(ctx) // 访问路径 @@ -148,7 +148,7 @@ func (s *sSysCronGroup) List(ctx context.Context, in sysin.CronGroupListInp) (li return list, totalCount, nil } - if err = mod.Page(int(in.Page), int(in.PerPage)).Order("id desc").Scan(&list); err != nil { + if err = mod.Page(in.Page, in.PerPage).Order("id desc").Scan(&list); err != nil { err = gerror.Wrap(err, consts.ErrorORM) return list, totalCount, err } diff --git a/server/internal/logic/sys/curd_demo.go b/server/internal/logic/sys/curd_demo.go new file mode 100644 index 0000000..a2a14db --- /dev/null +++ b/server/internal/logic/sys/curd_demo.go @@ -0,0 +1,242 @@ +// Package sys +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2023 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// @AutoGenerate Version 2.1.0 +// @AutoGenerate Date 2023-01-18 15:19:42 +// +package sys + +import ( + "context" + "fmt" + "hotgo/internal/consts" + "hotgo/internal/dao" + "hotgo/internal/library/contexts" + "hotgo/internal/library/hgorm" + "hotgo/internal/model/input/form" + "hotgo/internal/model/input/sysin" + "hotgo/internal/service" + "hotgo/utility/convert" + "hotgo/utility/excel" + "hotgo/utility/validate" + + "github.com/gogf/gf/v2/database/gdb" + "github.com/gogf/gf/v2/errors/gerror" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gctx" + "github.com/gogf/gf/v2/util/gconv" +) + +type sSysCurdDemo struct{} + +func NewSysCurdDemo() *sSysCurdDemo { + return &sSysCurdDemo{} +} + +func init() { + service.RegisterSysCurdDemo(NewSysCurdDemo()) +} + +// Model 生成演示Orm模型 +func (s *sSysCurdDemo) Model(ctx context.Context) *gdb.Model { + return dao.SysGenCurdDemo.Ctx(ctx) +} + +// List 获取生成演示列表 +func (s *sSysCurdDemo) List(ctx context.Context, in sysin.CurdDemoListInp) (list []*sysin.CurdDemoListModel, totalCount int, err error) { + mod := dao.SysGenCurdDemo.Ctx(ctx) + + // 查询ID + if in.Id > 0 { + mod = mod.Where(dao.SysGenCurdDemo.Columns().Id, in.Id) + } + + // 查询状态 + if in.Status > 0 { + mod = mod.Where(dao.SysGenCurdDemo.Columns().Status, in.Status) + } + + // 查询创建时间 + if len(in.CreatedAt) == 2 { + mod = mod.WhereBetween(dao.SysGenCurdDemo.Columns().CreatedAt, in.CreatedAt[0], in.CreatedAt[1]) + } + + // 查询分类名称 + if in.TestCategoryName != "" { + mod = mod.WhereLike(dao.TestCategory.Columns().Name, in.TestCategoryName) + } + + // 关联表testCategory + mod = mod.LeftJoin(hgorm.GenJoinOnRelation( + dao.SysGenCurdDemo.Table(), dao.SysGenCurdDemo.Columns().CategoryId, // 主表表名,关联条件 + dao.TestCategory.Table(), "testCategory", dao.TestCategory.Columns().Id, // 关联表表名,别名,关联条件 + )...) + + totalCount, err = mod.Clone().Count(1) + if err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return list, totalCount, err + } + + if totalCount == 0 { + return list, totalCount, nil + } + + //关联表select + fields, err := hgorm.GenJoinSelect(ctx, sysin.CurdDemoListModel{}, dao.SysGenCurdDemo, []*hgorm.Join{ + {Dao: dao.TestCategory, Alias: "testCategory"}, + }) + if err = mod.Fields(fields).Handler(hgorm.HandlerFilterAuth).Page(in.Page, in.PerPage).OrderAsc(dao.SysGenCurdDemo.Columns().Sort).OrderDesc(dao.SysGenCurdDemo.Columns().Id).Scan(&list); err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return list, totalCount, err + } + + return list, totalCount, err +} + +// Export 导出生成演示 +func (s *sSysCurdDemo) Export(ctx context.Context, in sysin.CurdDemoListInp) (err error) { + list, totalCount, err := s.List(ctx, in) + if err != nil { + return err + } + + // 字段的排序是依据tags的字段顺序,如果你不想使用默认的排序方式,可以直接定义 tags = []string{"字段名称", "字段名称2", ...} + tags, err := convert.GetEntityDescTags(sysin.CurdDemoExportModel{}) + if err != nil { + return err + } + + var ( + fileName = "导出生成演示-" + gctx.CtxId(ctx) + ".xlsx" + sheetName = fmt.Sprintf("索引条件共%v行,共%v页,当前导出是第%v页,本页共%v行", totalCount, form.CalPageCount(totalCount, in.PerPage), in.Page, len(list)) + exports []sysin.CurdDemoExportModel + ) + + err = gconv.Scan(list, &exports) + if err != nil { + return err + } + if err = excel.ExportByStructs(ctx, tags, exports, fileName, sheetName); err != nil { + return + } + return +} + +// Edit 修改/新增生成演示 +func (s *sSysCurdDemo) Edit(ctx context.Context, in sysin.CurdDemoEditInp) (err error) { + // 修改 + if in.Id > 0 { + in.UpdatedBy = contexts.GetUserId(ctx) + _, err = dao.SysGenCurdDemo.Ctx(ctx). + FieldsEx( + dao.SysGenCurdDemo.Columns().Id, + dao.SysGenCurdDemo.Columns().CreatedBy, + dao.SysGenCurdDemo.Columns().CreatedAt, + dao.SysGenCurdDemo.Columns().DeletedAt, + ). + Where(dao.SysGenCurdDemo.Columns().Id, in.Id).Data(in).Update() + if err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return err + } + return nil + } + + // 新增 + in.CreatedBy = contexts.GetUserId(ctx) + _, err = dao.SysGenCurdDemo.Ctx(ctx). + FieldsEx( + dao.SysGenCurdDemo.Columns().Id, + dao.SysGenCurdDemo.Columns().UpdatedBy, + dao.SysGenCurdDemo.Columns().DeletedAt, + ). + Data(in).Insert() + if err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return err + } + return +} + +// Delete 删除生成演示 +func (s *sSysCurdDemo) Delete(ctx context.Context, in sysin.CurdDemoDeleteInp) (err error) { + _, err = dao.SysGenCurdDemo.Ctx(ctx).Where(dao.SysGenCurdDemo.Columns().Id, in.Id).Delete() + if err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return err + } + + return nil +} + +// MaxSort 获取生成演示最大排序 +func (s *sSysCurdDemo) MaxSort(ctx context.Context, in sysin.CurdDemoMaxSortInp) (res *sysin.CurdDemoMaxSortModel, err error) { + if err = dao.SysGenCurdDemo.Ctx(ctx).Fields(dao.SysGenCurdDemo.Columns().Sort).OrderDesc(dao.SysGenCurdDemo.Columns().Sort).Scan(&res); err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return nil, err + } + + res.Sort = res.Sort + g.Cfg().MustGet(ctx, "hotgo.admin.maxSortIncrement").Int() + return res, nil +} + +// View 获取生成演示指定信息 +func (s *sSysCurdDemo) View(ctx context.Context, in sysin.CurdDemoViewInp) (res *sysin.CurdDemoViewModel, err error) { + if err = dao.SysGenCurdDemo.Ctx(ctx).Where(dao.SysGenCurdDemo.Columns().Id, in.Id).Scan(&res); err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return nil, err + } + + return res, nil +} + +// Status 更新生成演示状态 +func (s *sSysCurdDemo) Status(ctx context.Context, in sysin.CurdDemoStatusInp) (err error) { + if in.Id <= 0 { + err = gerror.New("ID不能为空") + return err + } + + if in.Status <= 0 { + err = gerror.New("状态不能为空") + return err + } + + if !validate.InSliceInt(consts.StatusMap, in.Status) { + err = gerror.New("状态不正确") + return err + } + + _, err = dao.SysGenCurdDemo.Ctx(ctx).Where(dao.SysGenCurdDemo.Columns().Id, in.Id).Data(dao.SysGenCurdDemo.Columns().Status, in.Status).Update() + if err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return err + } + + return nil +} + +// Switch 更新生成演示开关 +func (s *sSysCurdDemo) Switch(ctx context.Context, in sysin.CurdDemoSwitchInp) (err error) { + var fields = []string{ + dao.SysGenCurdDemo.Columns().Switch, + + // ... + } + + if !validate.InSliceString(fields, in.Key) { + err = gerror.New("开关键名不在白名单") + return err + } + + _, err = dao.SysGenCurdDemo.Ctx(ctx).Where(dao.SysGenCurdDemo.Columns().Id, in.Id).Data(in.Key, in.Value).Update() + if err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return err + } + + return nil +} diff --git a/server/internal/logic/sys/dict_data.go b/server/internal/logic/sys/dict_data.go index 394d0c9..398bfd8 100644 --- a/server/internal/logic/sys/dict_data.go +++ b/server/internal/logic/sys/dict_data.go @@ -82,7 +82,7 @@ func (s *sSysDictData) Edit(ctx context.Context, in sysin.DictDataEditInp) (err } // List 获取列表 -func (s *sSysDictData) List(ctx context.Context, in sysin.DictDataListInp) (list []*sysin.DictDataListModel, totalCount int64, err error) { +func (s *sSysDictData) List(ctx context.Context, in sysin.DictDataListInp) (list []*sysin.DictDataListModel, totalCount int, err error) { mod := dao.SysDictData.Ctx(ctx) // 类型ID if in.TypeID > 0 { @@ -117,7 +117,7 @@ func (s *sSysDictData) List(ctx context.Context, in sysin.DictDataListInp) (list return list, totalCount, nil } - if err = mod.Page(int(in.Page), int(in.PerPage)).Order("id desc").Scan(&list); err != nil { + if err = mod.Page(in.Page, in.PerPage).Order("sort asc,id desc").Scan(&list); err != nil { err = gerror.Wrap(err, consts.ErrorORM) return list, totalCount, err } @@ -128,3 +128,22 @@ func (s *sSysDictData) List(ctx context.Context, in sysin.DictDataListInp) (list return list, totalCount, err } + +// Select 获取列表 +func (s *sSysDictData) Select(ctx context.Context, in sysin.DataSelectInp) (list sysin.DataSelectModel, err error) { + mod := dao.SysDictData.Ctx(ctx).Where("type", in.Type) + if in.Type != "" { + mod = mod.Where("type", in.Type) + } + + if err = mod.Order("sort asc,id desc").Scan(&list); err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return list, err + } + + for k, v := range list { + list[k].Value = consts.ConvType(v.Value, v.ValueType) + list[k].Key = list[k].Value + } + return list, err +} diff --git a/server/internal/logic/sys/dict_type.go b/server/internal/logic/sys/dict_type.go index 8f560f9..2bbbe91 100644 --- a/server/internal/logic/sys/dict_type.go +++ b/server/internal/logic/sys/dict_type.go @@ -171,3 +171,40 @@ func (s *sSysDictType) Select(ctx context.Context, in sysin.DictTypeSelectInp) ( return tree.GenTree(typeList), nil } + +// TreeSelect 获取类型关系树选项 +func (s *sSysDictType) TreeSelect(ctx context.Context, in sysin.DictTreeSelectInp) (list sysin.DictTreeSelectModel, err error) { + var ( + mod = dao.SysDictType.Ctx(ctx) + models []*entity.SysDictType + typeList []g.Map + ) + + if err = mod.Order("pid asc,sort asc").Scan(&models); err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return list, err + } + + for i := 0; i < len(models); i++ { + typeList = append(typeList, g.Map{ + "index": models[i].Id, + "key": models[i].Id, + "label": models[i].Name, + "id": models[i].Id, + "pid": models[i].Pid, + "name": models[i].Name, + "sort": models[i].Sort, + "created_at": models[i].CreatedAt, + "status": models[i].Status, + }) + } + + maps := tree.GenTree(typeList) + for _, v := range maps { + // 父类一律禁止选中 + if _, ok := v["children"]; ok { + v["disabled"] = true + } + } + return tree.GenTree(typeList), nil +} diff --git a/server/internal/logic/sys/gen_codes.go b/server/internal/logic/sys/gen_codes.go new file mode 100644 index 0000000..33c6912 --- /dev/null +++ b/server/internal/logic/sys/gen_codes.go @@ -0,0 +1,259 @@ +// Package sys +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2022 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package sys + +import ( + "context" + "fmt" + "github.com/gogf/gf/v2/encoding/gjson" + "github.com/gogf/gf/v2/errors/gerror" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gtime" + "github.com/gogf/gf/v2/text/gstr" + "hotgo/internal/consts" + "hotgo/internal/dao" + "hotgo/internal/library/hggen" + "hotgo/internal/model/input/sysin" + "hotgo/internal/service" + "hotgo/utility/validate" +) + +type sSysGenCodes struct{} + +func NewSysGenCodes() *sSysGenCodes { + return &sSysGenCodes{} +} + +func init() { + service.RegisterSysGenCodes(NewSysGenCodes()) +} + +// Delete 删除 +func (s *sSysGenCodes) Delete(ctx context.Context, in sysin.GenCodesDeleteInp) error { + _, err := dao.SysGenCodes.Ctx(ctx).Where("id", in.Id).Delete() + if err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return err + } + + return nil +} + +// Edit 修改/新增 +func (s *sSysGenCodes) Edit(ctx context.Context, in sysin.GenCodesEditInp) (res *sysin.GenCodesEditModel, err error) { + if in.GenType == 0 { + err = gerror.New("生成类型不能为空") + return nil, err + } + if in.VarName == "" { + err = gerror.New("实体名称不能为空") + return nil, err + } + // 修改 + in.UpdatedAt = gtime.Now() + if in.Id > 0 { + _, err = dao.SysGenCodes.Ctx(ctx).Where("id", in.Id).Data(in).Update() + if err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return nil, err + } + return &sysin.GenCodesEditModel{SysGenCodes: in.SysGenCodes}, nil + } + + // 新增 + if in.Options.IsNil() { + in.Options = gjson.New(consts.NilJsonToString) + } + + in.MasterColumns = gjson.New("[]") + in.Status = consts.GenCodesStatusWait + in.CreatedAt = gtime.Now() + id, err := dao.SysGenCodes.Ctx(ctx).Data(in).InsertAndGetId() + if err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return nil, err + } + + in.Id = id + return &sysin.GenCodesEditModel{SysGenCodes: in.SysGenCodes}, nil +} + +// Status 更新部门状态 +func (s *sSysGenCodes) Status(ctx context.Context, in sysin.GenCodesStatusInp) (err error) { + if in.Id <= 0 { + err = gerror.New("ID不能为空") + return err + } + + if in.Status <= 0 { + err = gerror.New("状态不能为空") + return err + } + + if !validate.InSliceInt(consts.StatusMap, in.Status) { + err = gerror.New("状态不正确") + return err + } + + // 修改 + _, err = dao.SysGenCodes.Ctx(ctx).Where("id", in.Id).Data("status", in.Status).Update() + if err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return err + } + + return nil +} + +// MaxSort 最大排序 +func (s *sSysGenCodes) MaxSort(ctx context.Context, in sysin.GenCodesMaxSortInp) (*sysin.GenCodesMaxSortModel, error) { + var res sysin.GenCodesMaxSortModel + if in.Id > 0 { + if err := dao.SysGenCodes.Ctx(ctx).Where("id", in.Id).Order("sort desc").Scan(&res); err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return nil, err + } + } + res.Sort = res.Sort + 10 + return &res, nil +} + +// View 获取指定字典类型信息 +func (s *sSysGenCodes) View(ctx context.Context, in sysin.GenCodesViewInp) (res *sysin.GenCodesViewModel, err error) { + if err = dao.SysGenCodes.Ctx(ctx).Where("id", in.Id).Scan(&res); err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return nil, err + } + return res, nil +} + +// List 获取列表 +func (s *sSysGenCodes) List(ctx context.Context, in sysin.GenCodesListInp) (list []*sysin.GenCodesListModel, totalCount int, err error) { + mod := dao.SysGenCodes.Ctx(ctx) + + if in.GenType > 0 { + mod = mod.Where("gen_type", in.GenType) + } + + if in.VarName != "" { + mod = mod.Where("var_name", in.VarName) + } + + if in.Status > 0 { + mod = mod.Where("status", in.Status) + } + + totalCount, err = mod.Count() + if err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return list, totalCount, err + } + + if totalCount == 0 { + return list, totalCount, nil + } + + if err = mod.Page(in.Page, in.PerPage).Order("id desc").Scan(&list); err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return list, totalCount, err + } + + return list, totalCount, err +} + +// Selects 选项 +func (s *sSysGenCodes) Selects(ctx context.Context, in sysin.GenCodesSelectsInp) (res *sysin.GenCodesSelectsModel, err error) { + return hggen.TableSelects(ctx, in) +} + +// TableSelect 表选项 +func (s *sSysGenCodes) TableSelect(ctx context.Context, in sysin.GenCodesTableSelectInp) (res []*sysin.GenCodesTableSelectModel, err error) { + var ( + sql = "SELECT TABLE_NAME as value, TABLE_COMMENT as label FROM information_schema.`TABLES` WHERE TABLE_SCHEMA = '%s'" + config = g.DB(in.Name).GetConfig() + disableTables = g.Cfg().MustGet(ctx, "hggen.disableTables").Strings() + lists []*sysin.GenCodesTableSelectModel + ) + + err = g.DB(in.Name).Ctx(ctx).Raw(fmt.Sprintf(sql, config.Name)).Scan(&lists) + if err != nil { + return nil, err + } + + for _, v := range lists { + if gstr.InArray(disableTables, v.Value) { + continue + } + + row := new(sysin.GenCodesTableSelectModel) + row = v + row.DefTableComment = v.Label + row.DaoName = gstr.CaseCamel(gstr.SubStrFromEx(v.Value, config.Prefix)) + row.DefVarName = row.DaoName + row.DefAlias = gstr.CaseCamelLower(gstr.SubStrFromEx(v.Value, config.Prefix)) + row.Name = fmt.Sprintf("%s (%s)", v.Value, v.Label) + row.Label = row.Name + res = append(res, row) + } + return res, nil +} + +// ColumnSelect 表字段选项 +func (s *sSysGenCodes) ColumnSelect(ctx context.Context, in sysin.GenCodesColumnSelectInp) (res []*sysin.GenCodesColumnSelectModel, err error) { + var ( + sql = "select COLUMN_NAME as value,COLUMN_COMMENT as label from information_schema.COLUMNS where TABLE_SCHEMA = '%s' and TABLE_NAME = '%s'" + config = g.DB(in.Name).GetConfig() + ) + + err = g.DB(in.Name).Ctx(ctx).Raw(fmt.Sprintf(sql, config.Name, in.Table)).Scan(&res) + if err != nil { + return nil, err + } + + if len(res) == 0 { + return nil, gerror.Newf("table does not exist:%v", in.Table) + } + + for k, v := range res { + res[k].Name = fmt.Sprintf("%s (%s)", v.Value, v.Label) + res[k].Label = res[k].Name + } + return res, nil +} + +// ColumnList 表字段列表 +func (s *sSysGenCodes) ColumnList(ctx context.Context, in sysin.GenCodesColumnListInp) (res []*sysin.GenCodesColumnListModel, err error) { + return hggen.TableColumns(ctx, in) +} + +// Preview 生成预览 +func (s *sSysGenCodes) Preview(ctx context.Context, in sysin.GenCodesPreviewInp) (res *sysin.GenCodesPreviewModel, err error) { + return hggen.Preview(ctx, in) +} + +// Build 提交生成 +func (s *sSysGenCodes) Build(ctx context.Context, in sysin.GenCodesBuildInp) (err error) { + // 先保存配置 + _, err = s.Edit(ctx, sysin.GenCodesEditInp{SysGenCodes: in.SysGenCodes}) + if err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return err + } + + err = s.Status(ctx, sysin.GenCodesStatusInp{Id: in.Id, Status: consts.GenCodesStatusOk}) + if err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return err + } + + if err = hggen.Build(ctx, in); err != nil { + _ = s.Status(ctx, sysin.GenCodesStatusInp{Id: in.Id, Status: consts.GenCodesStatusFail}) + return err + } + + return +} diff --git a/server/internal/logic/sys/log.go b/server/internal/logic/sys/log.go index 6fffeaf..682cbc0 100644 --- a/server/internal/logic/sys/log.go +++ b/server/internal/logic/sys/log.go @@ -9,6 +9,7 @@ package sys import ( "context" "encoding/json" + "github.com/gogf/gf/v2/encoding/gjson" "github.com/gogf/gf/v2/errors/gerror" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/net/ghttp" @@ -21,13 +22,11 @@ import ( "hotgo/internal/library/contexts" "hotgo/internal/library/location" "hotgo/internal/library/queue" - "hotgo/internal/model" "hotgo/internal/model/entity" "hotgo/internal/model/input/sysin" "hotgo/internal/service" "hotgo/utility/excel" "hotgo/utility/validate" - "time" ) type sSysLog struct{} @@ -90,23 +89,10 @@ func (s *sSysLog) Export(ctx context.Context, in sysin.LogListInp) (err error) { exportList = append(exportList, row) } - // 强转类型 - writer := ghttp.RequestFromCtx(ctx).Response.Writer - w, _ := interface{}(writer).(*ghttp.ResponseWriter) - - if err = excel.ExportByStruct(w, titleList, gconv.Interfaces(exportList), fileName, sheetName); err != nil { - err = gerror.Wrap(err, "ExportByStruct:") + if err = excel.ExportByStructs(ctx, titleList, exportList, fileName, sheetName); err != nil { return err } - // 加入到上下文 - contexts.SetResponse(ctx, &model.Response{ - Code: consts.CodeOK, - Message: "导出成功", - Timestamp: time.Now().Unix(), - TraceID: gctx.CtxId(ctx), - }) - return } @@ -116,60 +102,42 @@ func (s *sSysLog) RealWrite(ctx context.Context, commonLog entity.SysLog) error if err != nil { return err } - - if _, err := result.LastInsertId(); err != nil { + if _, err = result.LastInsertId(); err != nil { return err } - return nil } // AutoLog 根据配置自动记录请求日志 func (s *sSysLog) AutoLog(ctx context.Context) (err error) { - // 日志开关 - logSwitch, _ := g.Cfg().Get(ctx, "hotgo.log.switch", true) - if !logSwitch.Bool() { + config, err := service.SysConfig().GetLoadLog(ctx) + if err != nil { + return err + } + + if !config.Switch { return nil } data := s.AnalysisLog(ctx) - - // 判断模块是否需要记录 - module, _ := g.Cfg().Get(ctx, "hotgo.log.module", nil) - if module == nil { - return nil - } - if exist := validate.InSliceExistStr(module.Strings(), data.Module); !exist { + if ok := validate.InSliceExistStr(config.Module, data.Module); !ok { return nil } - // 判断状态码是否需要记录 - code, _ := g.Cfg().Get(ctx, "hotgo.log.skipCode", nil) - if code != nil { - if exist := validate.InSliceExistStr(code.Strings(), gconv.String(data.ErrorCode)); exist { - return nil - } + if ok := validate.InSliceExistStr(config.SkipCode, gconv.String(data.ErrorCode)); ok { + return nil } - // 是否开启队列 - queueSwitch, _ := g.Cfg().Get(ctx, "hotgo.log.queue", true) - if queueSwitch.Bool() { - // 获取生产者实例 - queueInstance, err := queue.InstanceProducer() + if config.Queue { + q, err := queue.InstanceProducer() if err != nil { - queue.FatalLog(ctx, "InstanceProducer异常", err) + queue.FatalLog(ctx, "queue.InstanceProducer err:%+v", err) return err } - - // 生产消息 - mqMsg, err := queueInstance.SendMsg(consts.QueueLogTopic, gconv.String(data)) - - // 记录生产日志 + mqMsg, err := q.SendMsg(consts.QueueLogTopic, gconv.String(data)) queue.ProducerLog(ctx, consts.QueueLogTopic, mqMsg.MsgId, err) - return err } - return s.RealWrite(ctx, data) } @@ -185,7 +153,6 @@ func (s *sSysLog) QueueJob(ctx context.Context, mqMsg queue.MqMsg) (err error) { // AnalysisLog 解析日志数据 func (s *sSysLog) AnalysisLog(ctx context.Context) entity.SysLog { - var ( modelContext = contexts.Get(ctx) response = modelContext.Response @@ -193,15 +160,14 @@ func (s *sSysLog) AnalysisLog(ctx context.Context) entity.SysLog { request = ghttp.RequestFromCtx(ctx) module = modelContext.Module clientIp = request.GetClientIp() - locationData = location.GetLocation(ctx, clientIp) - postData = "{}" - getData = "{}" - headerData = "{}" + postData = gjson.New(consts.NilJsonToString) + getData = gjson.New(consts.NilJsonToString) + headerData = gjson.New(consts.NilJsonToString) data = entity.SysLog{} memberId int64 = 0 errorCode = 0 errorMsg = "" - errorData = "{}" + errorData = gjson.New(consts.NilJsonToString) traceID = "" timestamp int64 = 0 appId = "" @@ -214,23 +180,27 @@ func (s *sSysLog) AnalysisLog(ctx context.Context) entity.SysLog { traceID = response.TraceID timestamp = response.Timestamp if len(gconv.String(response.Error)) > 0 { - errorData = gconv.String(response.Error) + errorData = gjson.New(response.Error) } } // 请求头 if reqHeadersBytes, _ := json.Marshal(request.Header); len(gconv.String(reqHeadersBytes)) > 0 { - headerData = gconv.String(reqHeadersBytes) + headerData = gjson.New(reqHeadersBytes) } // post参数 if gconv.String(request.PostForm) != "" { - postData = gconv.String(request.PostForm) + postData = gjson.New(gconv.String(request.PostForm)) + } + + if postData.IsNil() { + postData = gjson.New(request.GetBodyString()) } // get参数 if len(request.URL.Query()) > 0 { - getData = gconv.String(request.URL.Query()) + getData = gjson.New(request.URL.Query()) } // 当前登录用户 @@ -239,6 +209,25 @@ func (s *sSysLog) AnalysisLog(ctx context.Context) entity.SysLog { appId = user.App } + var ipData = new(location.IpLocationData) + //if validate.IsPublicIp(clientIp) { + // ipData, err := location.GetLocation(ctx, clientIp) + // if err != nil { + // g.Log().Errorf(ctx, "location.GetLocation err:%+v", err) + // } + // if ipData == nil { + // ipData = new(location.IpLocationData) + // } + //} + + ipData, err := location.GetLocation(ctx, clientIp) + if err != nil { + g.Log().Errorf(ctx, "location.GetLocation err:%+v", err) + } + if ipData == nil { + ipData = new(location.IpLocationData) + } + data = entity.SysLog{ AppId: appId, MerchantId: 0, @@ -250,8 +239,8 @@ func (s *sSysLog) AnalysisLog(ctx context.Context) entity.SysLog { PostData: postData, HeaderData: headerData, Ip: clientIp, - ProvinceId: locationData.ProvinceCode, - CityId: locationData.CityCode, + ProvinceId: ipData.ProvinceCode, + CityId: ipData.CityCode, ErrorCode: errorCode, ErrorMsg: errorMsg, ErrorData: errorData, @@ -271,13 +260,13 @@ func (s *sSysLog) View(ctx context.Context, in sysin.LogViewInp) (res *sysin.Log err = gerror.Wrap(err, consts.ErrorORM) return nil, err } - isDemo, _ := g.Cfg().Get(ctx, "hotgo.isDemo", false) + isDemo := g.Cfg().MustGet(ctx, "hotgo.isDemo", false) if isDemo.Bool() { - res.HeaderData = `{ - "none": [ - "` + consts.DemoTips + `" - ] -}` + // res.HeaderData = `{ + // "none": [ + // "` + consts.DemoTips + `" + // ] + //}` } return res, nil } @@ -293,7 +282,7 @@ func (s *sSysLog) Delete(ctx context.Context, in sysin.LogDeleteInp) error { } // List 列表 -func (s *sSysLog) List(ctx context.Context, in sysin.LogListInp) (list []*sysin.LogListModel, totalCount int64, err error) { +func (s *sSysLog) List(ctx context.Context, in sysin.LogListInp) (list []*sysin.LogListModel, totalCount int, err error) { mod := dao.SysLog.Ctx(ctx) // 访问路径 @@ -353,11 +342,11 @@ func (s *sSysLog) List(ctx context.Context, in sysin.LogListInp) (list []*sysin. return list, totalCount, err } - if err = mod.Page(int(in.Page), int(in.PerPage)).Order("id desc").Scan(&list); err != nil { + if err = mod.Page(in.Page, in.PerPage).Order("id desc").Scan(&list); err != nil { err = gerror.Wrap(err, consts.ErrorORM) return list, totalCount, err } - isDemo, _ := g.Cfg().Get(ctx, "hotgo.isDemo", false) + isDemo := g.Cfg().MustGet(ctx, "hotgo.isDemo", false) for i := 0; i < len(list); i++ { // 管理员 if list[i].AppId == consts.AppAdmin { @@ -394,11 +383,11 @@ func (s *sSysLog) List(ctx context.Context, in sysin.LogListInp) (list []*sysin. } if isDemo.Bool() { - list[i].HeaderData = `{ - "none": [ - "` + consts.DemoTips + `" - ] -}` + // list[i].HeaderData = `{ + // "none": [ + // "` + consts.DemoTips + `" + // ] + //}` } } diff --git a/server/internal/logic/sys/provinces.go b/server/internal/logic/sys/provinces.go index fe0a347..624d81f 100644 --- a/server/internal/logic/sys/provinces.go +++ b/server/internal/logic/sys/provinces.go @@ -14,7 +14,7 @@ import ( "hotgo/internal/dao" "hotgo/internal/model/input/sysin" "hotgo/internal/service" - "hotgo/utility/convert" + "hotgo/utility/validate" ) type sSysProvinces struct{} @@ -80,7 +80,7 @@ func (s *sSysProvinces) Status(ctx context.Context, in sysin.ProvincesStatusInp) return err } - if !convert.InSliceInt(consts.StatusMap, in.Status) { + if !validate.InSliceInt(consts.StatusMap, in.Status) { err = gerror.New("状态不正确") return err } @@ -123,7 +123,7 @@ func (s *sSysProvinces) View(ctx context.Context, in sysin.ProvincesViewInp) (re } // List 获取列表 -func (s *sSysProvinces) List(ctx context.Context, in sysin.ProvincesListInp) (list []*sysin.ProvincesListModel, totalCount int64, err error) { +func (s *sSysProvinces) List(ctx context.Context, in sysin.ProvincesListInp) (list []*sysin.ProvincesListModel, totalCount int, err error) { mod := dao.SysProvinces.Ctx(ctx) // 访问路径 @@ -146,7 +146,7 @@ func (s *sSysProvinces) List(ctx context.Context, in sysin.ProvincesListInp) (li return list, totalCount, nil } - if err = mod.Page(int(in.Page), int(in.PerPage)).Order("id desc").Scan(&list); err != nil { + if err = mod.Page(in.Page, in.PerPage).Order("id desc").Scan(&list); err != nil { err = gerror.Wrap(err, consts.ErrorORM) return list, totalCount, err } diff --git a/server/internal/model/config.go b/server/internal/model/config.go index c2ae881..8dbddf2 100644 --- a/server/internal/model/config.go +++ b/server/internal/model/config.go @@ -20,6 +20,51 @@ type CashConfig struct { Tips string `json:"cashTips"` } +// UploadConfig 上传配置 +type UploadConfig struct { + Drive string `json:"uploadDrive"` + // 基本配置 + FileSize int64 `json:"uploadFileSize"` + FileType string `json:"uploadFileType"` + ImageSize int64 `json:"uploadImageSize"` + ImageType string `json:"uploadImageType"` + // 本地存储配置 + LocalPath string `json:"uploadLocalPath"` + // UCloud对象存储配置 + UCloudBucketHost string `json:"uploadUCloudBucketHost"` + UCloudBucketName string `json:"uploadUCloudBucketName"` + UCloudEndpoint string `json:"uploadUCloudEndpoint"` + UCloudFileHost string `json:"uploadUCloudFileHost"` + UCloudPath string `json:"uploadUCloudPath"` + UCloudPrivateKey string `json:"uploadUCloudPrivateKey"` + UCloudPublicKey string `json:"uploadUCloudPublicKey"` +} + +// GeoConfig 地理配置 +type GeoConfig struct { + GeoAmapWebKey string `json:"geoAmapWebKey"` +} + +// SmsTemplate 短信模板 +type SmsTemplate struct { + Key string `json:"key"` + Value string `json:"value"` +} + +// SmsConfig 短信配置 +type SmsConfig struct { + // 基础 + SmsDrive string `json:"smsDrive"` + SmsMinInterval int `json:"smsMinInterval"` + SmsMaxIpLimit int `json:"smsMaxIpLimit"` + SmsCodeExpire int `json:"smsCodeExpire"` + // 阿里云 + SmsAliyunAccessKeyID string `json:"smsAliyunAccessKeyID"` + SmsAliyunAccessKeySecret string `json:"smsAliyunAccessKeySecret"` + SmsAliyunSign string `json:"smsAliyunSign"` + SmsAliyunTemplate []*SmsTemplate `json:"smsAliyunTemplate"` +} + ///////////// 以下是本地配置 // SSLConfig https配置 @@ -28,3 +73,57 @@ type SSLConfig struct { CrtPath string `json:"crtPath"` KeyPath string `json:"keyPath"` } + +// LogConfig 日志配置 +type LogConfig struct { + Switch bool `json:"switch"` + Queue bool `json:"queue"` + Module []string `json:"module"` + SkipCode []string `json:"skipCode"` +} + +// GenerateAppCrudTemplate curd模板 +type GenerateAppCrudTemplate struct { + Group string `json:"group"` + TemplatePath string `json:"templatePath"` + ApiPath string `json:"apiPath"` + InputPath string `json:"inputPath"` + ControllerPath string `json:"controllerPath"` + LogicPath string `json:"logicPath"` + RouterPath string `json:"routerPath"` + SqlPath string `json:"sqlPath"` + WebApiPath string `json:"webApiPath"` + WebViewsPath string `json:"webViewsPath"` +} + +// GenerateAppQueueTemplate 消息队列模板 +type GenerateAppQueueTemplate struct { + Group string `json:"group"` + TemplatePath string `json:"templatePath"` +} + +// GenerateAppTreeTemplate 关系树列表模板 +type GenerateAppTreeTemplate struct { + Group string `json:"group"` + TemplatePath string `json:"templatePath"` +} + +// GenerateConfig 生成代码配置 +type GenerateConfig struct { + AllowedIPs []string `json:"allowedIPs"` + Application struct { + Crud struct { + Templates []*GenerateAppCrudTemplate `json:"templates"` + } `json:"crud"` + Queue struct { + Templates []*GenerateAppQueueTemplate `json:"templates"` + } `json:"queue"` + Tree struct { + Templates []*GenerateAppTreeTemplate `json:"templates"` + } `json:"tree"` + } `json:"application"` + Delimiters []string `json:"delimiters"` + DevPath string `json:"devPath"` + DisableTables []string `json:"disableTables"` + SelectDbs []string `json:"selectDbs"` +} diff --git a/server/internal/model/context.go b/server/internal/model/context.go index 602db94..05b2d70 100644 --- a/server/internal/model/context.go +++ b/server/internal/model/context.go @@ -16,23 +16,25 @@ type Context struct { TakeUpTime int64 // 请求耗时 ms User *Identity // 上下文用户信息 Response *Response // 请求响应 - Data g.Map // 自定KV变量,业务模块根据需要设置,不固定 + Data g.Map // 自定kv变量,业务模块根据需要设置,不固定 } // Identity 通用身份模型 type Identity struct { - Id int64 `json:"id" description:"会员ID"` - Username string `json:"username" description:"用户名"` - RealName string `json:"realname" description:"昵称"` - Avatar string `json:"avatar" description:"头像"` - Email string `json:"email" description:"邮箱"` - Mobile string `json:"mobile" description:"手机号码"` - VisitCount uint `json:"visit_count" description:"访问次数"` - LastTime int `json:"last_time" description:"最后一次登录时间"` - LastIp string `json:"last_ip" description:"最后一次登录ip"` - Role int64 `json:"role" description:"角色ID"` - RoleKey string `json:"role_key" description:"角色唯一标识符"` - Exp int64 `json:"exp" description:"登录有效期截止时间戳"` - Expires int64 `json:"expires" description:"登录有效期"` - App string `json:"app" description:"登录应用"` + Id int64 `json:"id" description:"会员ID"` + Pid int64 `json:"pid" description:"上级ID"` + DeptId int64 `json:"deptId" description:"部门ID"` + RoleId int64 `json:"roleId" description:"角色ID"` + RoleKey string `json:"roleKey" description:"角色唯一标识符"` + Username string `json:"username" description:"用户名"` + RealName string `json:"realName" description:"昵称"` + Avatar string `json:"avatar" description:"头像"` + Email string `json:"email" description:"邮箱"` + Mobile string `json:"mobile" description:"手机号码"` + VisitCount uint `json:"visitCount" description:"访问次数"` + LastTime int `json:"lastTime" description:"最后一次登录时间"` + LastIp string `json:"lastIp" description:"最后一次登录ip"` + Exp int64 `json:"exp" description:"登录有效期截止时间戳"` + Expires int64 `json:"expires" description:"登录有效期"` + App string `json:"app" description:"登录应用"` } diff --git a/server/internal/model/do/admin_dept.go b/server/internal/model/do/admin_dept.go index 66c8353..4b20ce1 100644 --- a/server/internal/model/do/admin_dept.go +++ b/server/internal/model/do/admin_dept.go @@ -12,8 +12,8 @@ import ( // AdminDept is the golang structure of table hg_admin_dept for DAO operations like Where/Data. type AdminDept struct { g.Meta `orm:"table:hg_admin_dept, do:true"` - Id interface{} // 部门id - Pid interface{} // 父部门id + Id interface{} // 部门ID + Pid interface{} // 父部门ID Name interface{} // 部门名称 Code interface{} // 部门编码 Type interface{} // 部门类型 diff --git a/server/internal/model/do/admin_member.go b/server/internal/model/do/admin_member.go index edc0cd6..2470091 100644 --- a/server/internal/model/do/admin_member.go +++ b/server/internal/model/do/admin_member.go @@ -12,31 +12,31 @@ import ( // AdminMember is the golang structure of table hg_admin_member for DAO operations like Where/Data. type AdminMember struct { g.Meta `orm:"table:hg_admin_member, do:true"` - Id interface{} // + Id interface{} // 管理员ID DeptId interface{} // 部门ID + RoleId interface{} // 角色ID + RealName interface{} // 真实姓名 Username interface{} // 帐号 PasswordHash interface{} // 密码 Salt interface{} // 密码盐 AuthKey interface{} // 授权令牌 PasswordResetToken interface{} // 密码重置令牌 - Type interface{} // 1:普通管理员;10超级管理员 - Realname interface{} // 真实姓名 Avatar interface{} // 头像 - Sex interface{} // 性别[1:男;2:女;3:未知] + Sex interface{} // 性别 Qq interface{} // qq Email interface{} // 邮箱 - Birthday *gtime.Time // 生日 - ProvinceId interface{} // 省 - CityId interface{} // 城市 - AreaId interface{} // 地区 - Address interface{} // 默认地址 Mobile interface{} // 手机号码 - HomePhone interface{} // 家庭号码 - DingtalkRobotToken interface{} // 钉钉机器人token + Birthday *gtime.Time // 生日 + ProvinceId interface{} // 省编码 + CityId interface{} // 城市编码 + CountyId interface{} // 区域编码 + Address interface{} // 联系地址 VisitCount interface{} // 访问次数 LastTime interface{} // 最后一次登录时间 LastIp interface{} // 最后一次登录ip - Role interface{} // 权限 + Pid interface{} // 上级管理员ID + Level interface{} // 关系树等级 + Tree interface{} // 关系树 Remark interface{} // 备注 Status interface{} // 状态 CreatedAt *gtime.Time // 创建时间 diff --git a/server/internal/model/do/admin_member_post.go b/server/internal/model/do/admin_member_post.go index 01e7da3..9bc52b4 100644 --- a/server/internal/model/do/admin_member_post.go +++ b/server/internal/model/do/admin_member_post.go @@ -11,6 +11,6 @@ import ( // AdminMemberPost is the golang structure of table hg_admin_member_post for DAO operations like Where/Data. type AdminMemberPost struct { g.Meta `orm:"table:hg_admin_member_post, do:true"` - MemberId interface{} // 用户ID + MemberId interface{} // 管理员ID PostId interface{} // 岗位ID } diff --git a/server/internal/model/do/admin_member_role.go b/server/internal/model/do/admin_member_role.go index 956c5fa..290da60 100644 --- a/server/internal/model/do/admin_member_role.go +++ b/server/internal/model/do/admin_member_role.go @@ -11,6 +11,6 @@ import ( // AdminMemberRole is the golang structure of table hg_admin_member_role for DAO operations like Where/Data. type AdminMemberRole struct { g.Meta `orm:"table:hg_admin_member_role, do:true"` - MemberId interface{} // 用户ID + MemberId interface{} // 管理员ID RoleId interface{} // 角色ID } diff --git a/server/internal/model/do/admin_menu.go b/server/internal/model/do/admin_menu.go index 5754985..771db51 100644 --- a/server/internal/model/do/admin_menu.go +++ b/server/internal/model/do/admin_menu.go @@ -31,8 +31,8 @@ type AdminMenu struct { KeepAlive interface{} // 缓存该路由 Hidden interface{} // 是否隐藏 Affix interface{} // 是否固定 - Level interface{} // 级别 - Tree interface{} // 树 + Level interface{} // 关系树等级 + Tree interface{} // 关系树 Sort interface{} // 排序 Remark interface{} // 备注 Status interface{} // 菜单状态 diff --git a/server/internal/model/do/admin_notice.go b/server/internal/model/do/admin_notice.go index 82b2c9d..da86c70 100644 --- a/server/internal/model/do/admin_notice.go +++ b/server/internal/model/do/admin_notice.go @@ -14,7 +14,7 @@ type AdminNotice struct { g.Meta `orm:"table:hg_admin_notice, do:true"` Id interface{} // 公告ID Title interface{} // 公告标题 - Type interface{} // 公告类型(1通知 2公告) + Type interface{} // 公告类型 Content interface{} // 公告内容 Receiver interface{} // 接收者 Reader interface{} // 已读人 diff --git a/server/internal/model/do/admin_role.go b/server/internal/model/do/admin_role.go index 0c8d60a..99f6d1b 100644 --- a/server/internal/model/do/admin_role.go +++ b/server/internal/model/do/admin_role.go @@ -5,22 +5,25 @@ package do import ( + "github.com/gogf/gf/v2/encoding/gjson" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/os/gtime" ) // AdminRole is the golang structure of table hg_admin_role for DAO operations like Where/Data. type AdminRole struct { - g.Meta `orm:"table:hg_admin_role, do:true"` - Id interface{} // 角色ID - Name interface{} // 角色名称 - Key interface{} // 角色权限字符串 - DataScope interface{} // 数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限) - MenuCheckStrictly interface{} // 菜单树选择项是否关联显示 - DeptCheckStrictly interface{} // 部门树选择项是否关联显示 - Remark interface{} // 备注 - Sort interface{} // 排序 - Status interface{} // 角色状态 - CreatedAt *gtime.Time // 创建时间 - UpdatedAt *gtime.Time // 更新时间 + g.Meta `orm:"table:hg_admin_role, do:true"` + Id interface{} // 角色ID + Name interface{} // 角色名称 + Key interface{} // 角色权限字符串 + DataScope interface{} // 数据范围 + CustomDept *gjson.Json // 自定义部门权限 + Pid interface{} // 上级角色ID + Level interface{} // 关系树等级 + Tree interface{} // 关系树 + Remark interface{} // 备注 + Sort interface{} // 排序 + Status interface{} // 角色状态 + CreatedAt *gtime.Time // 创建时间 + UpdatedAt *gtime.Time // 更新时间 } diff --git a/server/internal/model/do/sys_attachment.go b/server/internal/model/do/sys_attachment.go index 0583af1..414a992 100644 --- a/server/internal/model/do/sys_attachment.go +++ b/server/internal/model/do/sys_attachment.go @@ -12,18 +12,18 @@ import ( // SysAttachment is the golang structure of table hg_sys_attachment for DAO operations like Where/Data. type SysAttachment struct { g.Meta `orm:"table:hg_sys_attachment, do:true"` - Id interface{} // + Id interface{} // 文件ID AppId interface{} // 应用ID - MemberId interface{} // 用户 - CateId interface{} // 分类 - Drive interface{} // 驱动 + MemberId interface{} // 管理员ID + CateId interface{} // 上传分类 + Drive interface{} // 上传驱动 Name interface{} // 文件原始名 Kind interface{} // 上传类型 - MetaType interface{} // 类别 + MetaType interface{} // 文件类型 NaiveType interface{} // NaiveUI类型 Path interface{} // 本地路径 FileUrl interface{} // url - Size interface{} // 长度 + Size interface{} // 文件大小 Ext interface{} // 扩展名 Md5 interface{} // md5校验码 Status interface{} // 状态 diff --git a/server/internal/model/do/sys_blacklist.go b/server/internal/model/do/sys_blacklist.go index 0757b39..49b673c 100644 --- a/server/internal/model/do/sys_blacklist.go +++ b/server/internal/model/do/sys_blacklist.go @@ -12,8 +12,8 @@ import ( // SysBlacklist is the golang structure of table hg_sys_blacklist for DAO operations like Where/Data. type SysBlacklist struct { g.Meta `orm:"table:hg_sys_blacklist, do:true"` - Id interface{} // 主键 - Ip interface{} // ip地址 + Id interface{} // 黑名单ID + Ip interface{} // IP地址 Remark interface{} // 备注 Status interface{} // 状态 CreatedAt *gtime.Time // 创建时间 diff --git a/server/internal/model/do/sys_config.go b/server/internal/model/do/sys_config.go index df3a0a6..1ee1a30 100644 --- a/server/internal/model/do/sys_config.go +++ b/server/internal/model/do/sys_config.go @@ -13,15 +13,15 @@ import ( type SysConfig struct { g.Meta `orm:"table:hg_sys_config, do:true"` Id interface{} // 配置ID - Group interface{} // 分组 + Group interface{} // 配置分组 Name interface{} // 参数名称 - Type interface{} // 类型:string,text,int,bool,array,datetime,date,file + Type interface{} // 键值类型:string,int,uint,bool,datetime,date Key interface{} // 参数键名 Value interface{} // 参数键值 DefaultValue interface{} // 默认值 Sort interface{} // 排序 Tip interface{} // 变量描述 - IsDefault interface{} // 是否默认 + IsDefault interface{} // 是否为系统默认 Status interface{} // 状态 CreatedAt *gtime.Time // 创建时间 UpdatedAt *gtime.Time // 更新时间 diff --git a/server/internal/model/do/sys_cron.go b/server/internal/model/do/sys_cron.go index 8abb3ab..adc5e60 100644 --- a/server/internal/model/do/sys_cron.go +++ b/server/internal/model/do/sys_cron.go @@ -12,7 +12,7 @@ import ( // SysCron is the golang structure of table hg_sys_cron for DAO operations like Where/Data. type SysCron struct { g.Meta `orm:"table:hg_sys_cron, do:true"` - Id interface{} // 主键 + Id interface{} // 任务ID GroupId interface{} // 分组ID Name interface{} // 任务名称 Params interface{} // 函数参数 @@ -21,7 +21,7 @@ type SysCron struct { Count interface{} // 执行次数 Sort interface{} // 排序 Remark interface{} // 备注 - Status interface{} // 状态 + Status interface{} // 任务状态 CreatedAt *gtime.Time // 创建时间 UpdatedAt *gtime.Time // 更新时间 } diff --git a/server/internal/model/do/sys_cron_group.go b/server/internal/model/do/sys_cron_group.go index 0ad641b..0bbd892 100644 --- a/server/internal/model/do/sys_cron_group.go +++ b/server/internal/model/do/sys_cron_group.go @@ -12,13 +12,13 @@ import ( // SysCronGroup is the golang structure of table hg_sys_cron_group for DAO operations like Where/Data. type SysCronGroup struct { g.Meta `orm:"table:hg_sys_cron_group, do:true"` - Id interface{} // 主键 - Pid interface{} // 父类ID + Id interface{} // 任务分组ID + Pid interface{} // 父类任务分组ID Name interface{} // 分组名称 IsDefault interface{} // 是否默认 Sort interface{} // 排序 Remark interface{} // 备注 - Status interface{} // 状态 + Status interface{} // 分组状态 CreatedAt *gtime.Time // 创建时间 UpdatedAt *gtime.Time // 更新时间 } diff --git a/server/internal/model/do/sys_dict_data.go b/server/internal/model/do/sys_dict_data.go index 0ef3e50..1ef3568 100644 --- a/server/internal/model/do/sys_dict_data.go +++ b/server/internal/model/do/sys_dict_data.go @@ -12,12 +12,13 @@ import ( // SysDictData is the golang structure of table hg_sys_dict_data for DAO operations like Where/Data. type SysDictData struct { g.Meta `orm:"table:hg_sys_dict_data, do:true"` - Id interface{} // 字典编码 + Id interface{} // 字典数据ID Label interface{} // 字典标签 Value interface{} // 字典键值 + ValueType interface{} // 键值数据类型:string,int,uint,bool,datetime,date Type interface{} // 字典类型 ListClass interface{} // 表格回显样式 - IsDefault interface{} // 是否默认 + IsDefault interface{} // 是否为系统默认 Sort interface{} // 字典排序 Remark interface{} // 备注 Status interface{} // 状态 diff --git a/server/internal/model/do/sys_dict_type.go b/server/internal/model/do/sys_dict_type.go index 8fabd0d..3fe3775 100644 --- a/server/internal/model/do/sys_dict_type.go +++ b/server/internal/model/do/sys_dict_type.go @@ -12,13 +12,13 @@ import ( // SysDictType is the golang structure of table hg_sys_dict_type for DAO operations like Where/Data. type SysDictType struct { g.Meta `orm:"table:hg_sys_dict_type, do:true"` - Id interface{} // 字典主键 - Pid interface{} // 父类ID - Name interface{} // 字典名称 + Id interface{} // 字典类型ID + Pid interface{} // 父类字典类型ID + Name interface{} // 字典类型名称 Type interface{} // 字典类型 Sort interface{} // 排序 Remark interface{} // 备注 - Status interface{} // 状态 + Status interface{} // 字典类型状态 CreatedAt *gtime.Time // 创建时间 UpdatedAt *gtime.Time // 更新时间 } diff --git a/server/internal/model/do/sys_gen_codes.go b/server/internal/model/do/sys_gen_codes.go new file mode 100644 index 0000000..014d999 --- /dev/null +++ b/server/internal/model/do/sys_gen_codes.go @@ -0,0 +1,28 @@ +// ================================================================================= +// Code generated by GoFrame CLI tool. DO NOT EDIT. +// ================================================================================= + +package do + +import ( + "github.com/gogf/gf/v2/encoding/gjson" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gtime" +) + +// SysGenCodes is the golang structure of table hg_sys_gen_codes for DAO operations like Where/Data. +type SysGenCodes struct { + g.Meta `orm:"table:hg_sys_gen_codes, do:true"` + Id interface{} // 生成ID + GenType interface{} // 生成类型 + VarName interface{} // 实体命名 + Options *gjson.Json // 配置选项 + DbName interface{} // 数据库名称 + TableName interface{} // 主表名称 + TableComment interface{} // 主表注释 + DaoName interface{} // 主表dao模型 + MasterColumns *gjson.Json // 主表字段 + Status interface{} // 生成状态 + CreatedAt *gtime.Time // 创建时间 + UpdatedAt *gtime.Time // 更新时间 +} diff --git a/server/internal/model/do/sys_gen_curd_demo.go b/server/internal/model/do/sys_gen_curd_demo.go new file mode 100644 index 0000000..39692e2 --- /dev/null +++ b/server/internal/model/do/sys_gen_curd_demo.go @@ -0,0 +1,30 @@ +// ================================================================================= +// Code generated by GoFrame CLI tool. DO NOT EDIT. +// ================================================================================= + +package do + +import ( + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gtime" +) + +// SysGenCurdDemo is the golang structure of table hg_sys_gen_curd_demo for DAO operations like Where/Data. +type SysGenCurdDemo struct { + g.Meta `orm:"table:hg_sys_gen_curd_demo, do:true"` + Id interface{} // ID + CategoryId interface{} // 分类ID + Title interface{} // 标题 + Description interface{} // 描述 + Content interface{} // 内容 + Image interface{} // 单图 + Attachfile interface{} // 附件 + Switch interface{} // 显示开关 + Sort interface{} // 排序 + Status interface{} // 状态 + CreatedBy interface{} // 创建者 + UpdatedBy interface{} // 更新者 + CreatedAt *gtime.Time // 创建时间 + UpdatedAt *gtime.Time // 修改时间 + DeletedAt *gtime.Time // 删除时间 +} diff --git a/server/internal/model/do/sys_log.go b/server/internal/model/do/sys_log.go index f9de330..461fdbd 100644 --- a/server/internal/model/do/sys_log.go +++ b/server/internal/model/do/sys_log.go @@ -5,6 +5,7 @@ package do import ( + "github.com/gogf/gf/v2/encoding/gjson" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/os/gtime" ) @@ -12,23 +13,23 @@ import ( // SysLog is the golang structure of table hg_sys_log for DAO operations like Where/Data. type SysLog struct { g.Meta `orm:"table:hg_sys_log, do:true"` - Id interface{} // - AppId interface{} // 应用id - MerchantId interface{} // 商户id - MemberId interface{} // 用户id + Id interface{} // 日志ID + AppId interface{} // 应用ID + MerchantId interface{} // 商户ID + MemberId interface{} // 用户ID Method interface{} // 提交类型 - Module interface{} // 模块 + Module interface{} // 访问模块 Url interface{} // 提交url - GetData interface{} // get数据 - PostData interface{} // post数据 - HeaderData interface{} // header数据 - Ip interface{} // ip地址 + GetData *gjson.Json // get数据 + PostData *gjson.Json // post数据 + HeaderData *gjson.Json // header数据 + Ip interface{} // IP地址 ProvinceId interface{} // 省编码 CityId interface{} // 市编码 ErrorCode interface{} // 报错code ErrorMsg interface{} // 报错信息 - ErrorData interface{} // 报错日志 - ReqId interface{} // 对外id + ErrorData *gjson.Json // 报错日志 + ReqId interface{} // 对外ID Timestamp interface{} // 响应时间 UserAgent interface{} // UA信息 TakeUpTime interface{} // 请求耗时 diff --git a/server/internal/model/do/sys_provinces.go b/server/internal/model/do/sys_provinces.go index 0d6fb5a..741fb33 100644 --- a/server/internal/model/do/sys_provinces.go +++ b/server/internal/model/do/sys_provinces.go @@ -12,17 +12,17 @@ import ( // SysProvinces is the golang structure of table hg_sys_provinces for DAO operations like Where/Data. type SysProvinces struct { g.Meta `orm:"table:hg_sys_provinces, do:true"` - Id interface{} // ID - Title interface{} // 栏目名 - Pid interface{} // 父栏目 + Id interface{} // 省市区ID + Title interface{} // 栏目名称 ShortTitle interface{} // 缩写 Areacode interface{} // 区域编码 Zipcode interface{} // 邮政编码 Pinyin interface{} // 拼音 Lng interface{} // 经度 Lat interface{} // 纬度 - Level interface{} // 级别 - Tree interface{} // + Pid interface{} // 父栏目 + Level interface{} // 关系树等级 + Tree interface{} // 关系 Sort interface{} // 排序 Status interface{} // 状态 CreatedAt *gtime.Time // 创建时间 diff --git a/server/internal/model/do/test.go b/server/internal/model/do/test.go new file mode 100644 index 0000000..82b15e2 --- /dev/null +++ b/server/internal/model/do/test.go @@ -0,0 +1,52 @@ +// ================================================================================= +// Code generated by GoFrame CLI tool. DO NOT EDIT. +// ================================================================================= + +package do + +import ( + "github.com/gogf/gf/v2/encoding/gjson" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gtime" +) + +// Test is the golang structure of table hg_test for DAO operations like Where/Data. +type Test struct { + g.Meta `orm:"table:hg_test, do:true"` + Id interface{} // ID + CategoryId interface{} // 分类ID + Flag *gjson.Json // 标签 + Title interface{} // 标题 + Description interface{} // 描述 + Content interface{} // 内容 + Image interface{} // 单图 + Images *gjson.Json // 多图 + Attachfile interface{} // 附件 + Attachfiles *gjson.Json // 多附件 + Map *gjson.Json // 动态键值对 + Star interface{} // 推荐星 + Price interface{} // 价格 + Views interface{} // 浏览次数 + ActivityAt *gtime.Time // 活动时间 + StartAt *gtime.Time // 开启时间 + EndAt *gtime.Time // 结束时间 + Switch interface{} // 开关 + Sort interface{} // 排序 + Avatar interface{} // 头像 + Sex interface{} // 性别 + Qq interface{} // qq + Email interface{} // 邮箱 + Mobile interface{} // 手机号码 + Hobby *gjson.Json // 爱好 + Channel interface{} // 渠道 + Pid interface{} // 上级ID + Level interface{} // 树等级 + Tree interface{} // 关系树 + Remark interface{} // 备注 + Status interface{} // 状态 + CreatedBy interface{} // 创建者 + UpdatedBy interface{} // 更新者 + CreatedAt *gtime.Time // 创建时间 + UpdatedAt *gtime.Time // 修改时间 + DeletedAt *gtime.Time // 删除时间 +} diff --git a/server/internal/model/do/test_category.go b/server/internal/model/do/test_category.go new file mode 100644 index 0000000..54d606d --- /dev/null +++ b/server/internal/model/do/test_category.go @@ -0,0 +1,24 @@ +// ================================================================================= +// Code generated by GoFrame CLI tool. DO NOT EDIT. +// ================================================================================= + +package do + +import ( + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gtime" +) + +// TestCategory is the golang structure of table hg_test_category for DAO operations like Where/Data. +type TestCategory struct { + g.Meta `orm:"table:hg_test_category, do:true"` + Id interface{} // 分类ID + Name interface{} // 分类名称 + Description interface{} // 描述 + Sort interface{} // 排序 + Remark interface{} // 备注 + Status interface{} // 状态 + CreatedAt *gtime.Time // 创建时间 + UpdatedAt *gtime.Time // 修改时间 + DeletedAt *gtime.Time // 删除时间 +} diff --git a/server/internal/model/entity/admin_dept.go b/server/internal/model/entity/admin_dept.go index f92a287..4136b3f 100644 --- a/server/internal/model/entity/admin_dept.go +++ b/server/internal/model/entity/admin_dept.go @@ -10,8 +10,8 @@ import ( // AdminDept is the golang structure for table admin_dept. type AdminDept struct { - Id int64 `json:"id" description:"部门id"` - Pid int64 `json:"pid" description:"父部门id"` + Id int64 `json:"id" description:"部门ID"` + Pid int64 `json:"pid" description:"父部门ID"` Name string `json:"name" description:"部门名称"` Code string `json:"code" description:"部门编码"` Type string `json:"type" description:"部门类型"` diff --git a/server/internal/model/entity/admin_member.go b/server/internal/model/entity/admin_member.go index f31fbfa..fd3518e 100644 --- a/server/internal/model/entity/admin_member.go +++ b/server/internal/model/entity/admin_member.go @@ -10,31 +10,31 @@ import ( // AdminMember is the golang structure for table admin_member. type AdminMember struct { - Id int64 `json:"id" description:""` + Id int64 `json:"id" description:"管理员ID"` DeptId int64 `json:"deptId" description:"部门ID"` + RoleId int64 `json:"roleId" description:"角色ID"` + RealName string `json:"realName" description:"真实姓名"` Username string `json:"username" description:"帐号"` PasswordHash string `json:"passwordHash" description:"密码"` Salt string `json:"salt" description:"密码盐"` AuthKey string `json:"authKey" description:"授权令牌"` PasswordResetToken string `json:"passwordResetToken" description:"密码重置令牌"` - Type string `json:"type" description:"1:普通管理员;10超级管理员"` - Realname string `json:"realname" description:"真实姓名"` Avatar string `json:"avatar" description:"头像"` - Sex int `json:"sex" description:"性别[1:男;2:女;3:未知]"` + Sex int `json:"sex" description:"性别"` Qq string `json:"qq" description:"qq"` Email string `json:"email" description:"邮箱"` - Birthday *gtime.Time `json:"birthday" description:"生日"` - ProvinceId int `json:"provinceId" description:"省"` - CityId int `json:"cityId" description:"城市"` - AreaId int `json:"areaId" description:"地区"` - Address string `json:"address" description:"默认地址"` Mobile string `json:"mobile" description:"手机号码"` - HomePhone string `json:"homePhone" description:"家庭号码"` - DingtalkRobotToken string `json:"dingtalkRobotToken" description:"钉钉机器人token"` + Birthday *gtime.Time `json:"birthday" description:"生日"` + ProvinceId int64 `json:"provinceId" description:"省编码"` + CityId int64 `json:"cityId" description:"城市编码"` + CountyId int64 `json:"countyId" description:"区域编码"` + Address string `json:"address" description:"联系地址"` VisitCount uint `json:"visitCount" description:"访问次数"` LastTime int `json:"lastTime" description:"最后一次登录时间"` LastIp string `json:"lastIp" description:"最后一次登录ip"` - Role int64 `json:"role" description:"权限"` + Pid int64 `json:"pid" description:"上级管理员ID"` + Level int `json:"level" description:"关系树等级"` + Tree string `json:"tree" description:"关系树"` Remark string `json:"remark" description:"备注"` Status int `json:"status" description:"状态"` CreatedAt *gtime.Time `json:"createdAt" description:"创建时间"` diff --git a/server/internal/model/entity/admin_member_post.go b/server/internal/model/entity/admin_member_post.go index 4e19058..442d31f 100644 --- a/server/internal/model/entity/admin_member_post.go +++ b/server/internal/model/entity/admin_member_post.go @@ -6,6 +6,6 @@ package entity // AdminMemberPost is the golang structure for table admin_member_post. type AdminMemberPost struct { - MemberId int64 `json:"memberId" description:"用户ID"` + MemberId int64 `json:"memberId" description:"管理员ID"` PostId int64 `json:"postId" description:"岗位ID"` } diff --git a/server/internal/model/entity/admin_member_role.go b/server/internal/model/entity/admin_member_role.go index fbfb7e3..62af3d3 100644 --- a/server/internal/model/entity/admin_member_role.go +++ b/server/internal/model/entity/admin_member_role.go @@ -6,6 +6,6 @@ package entity // AdminMemberRole is the golang structure for table admin_member_role. type AdminMemberRole struct { - MemberId int64 `json:"memberId" description:"用户ID"` + MemberId int64 `json:"memberId" description:"管理员ID"` RoleId int64 `json:"roleId" description:"角色ID"` } diff --git a/server/internal/model/entity/admin_menu.go b/server/internal/model/entity/admin_menu.go index 98e332e..5bb0cc9 100644 --- a/server/internal/model/entity/admin_menu.go +++ b/server/internal/model/entity/admin_menu.go @@ -29,8 +29,8 @@ type AdminMenu struct { KeepAlive int `json:"keepAlive" description:"缓存该路由"` Hidden int `json:"hidden" description:"是否隐藏"` Affix int `json:"affix" description:"是否固定"` - Level int `json:"level" description:"级别"` - Tree string `json:"tree" description:"树"` + Level int `json:"level" description:"关系树等级"` + Tree string `json:"tree" description:"关系树"` Sort int `json:"sort" description:"排序"` Remark string `json:"remark" description:"备注"` Status int `json:"status" description:"菜单状态"` diff --git a/server/internal/model/entity/admin_notice.go b/server/internal/model/entity/admin_notice.go index 3a9d180..00a2622 100644 --- a/server/internal/model/entity/admin_notice.go +++ b/server/internal/model/entity/admin_notice.go @@ -12,7 +12,7 @@ import ( type AdminNotice struct { Id int64 `json:"id" description:"公告ID"` Title string `json:"title" description:"公告标题"` - Type int64 `json:"type" description:"公告类型(1通知 2公告)"` + Type int64 `json:"type" description:"公告类型"` Content string `json:"content" description:"公告内容"` Receiver string `json:"receiver" description:"接收者"` Reader string `json:"reader" description:"已读人"` diff --git a/server/internal/model/entity/admin_role.go b/server/internal/model/entity/admin_role.go index c19646f..cd3fe6e 100644 --- a/server/internal/model/entity/admin_role.go +++ b/server/internal/model/entity/admin_role.go @@ -5,20 +5,23 @@ package entity import ( + "github.com/gogf/gf/v2/encoding/gjson" "github.com/gogf/gf/v2/os/gtime" ) // AdminRole is the golang structure for table admin_role. type AdminRole struct { - Id int64 `json:"id" description:"角色ID"` - Name string `json:"name" description:"角色名称"` - Key string `json:"key" description:"角色权限字符串"` - DataScope int `json:"dataScope" description:"数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)"` - MenuCheckStrictly int `json:"menuCheckStrictly" description:"菜单树选择项是否关联显示"` - DeptCheckStrictly int `json:"deptCheckStrictly" description:"部门树选择项是否关联显示"` - Remark string `json:"remark" description:"备注"` - Sort int `json:"sort" description:"排序"` - Status int `json:"status" description:"角色状态"` - CreatedAt *gtime.Time `json:"createdAt" description:"创建时间"` - UpdatedAt *gtime.Time `json:"updatedAt" description:"更新时间"` + Id int64 `json:"id" description:"角色ID"` + Name string `json:"name" description:"角色名称"` + Key string `json:"key" description:"角色权限字符串"` + DataScope int `json:"dataScope" description:"数据范围"` + CustomDept *gjson.Json `json:"customDept" description:"自定义部门权限"` + Pid int64 `json:"pid" description:"上级角色ID"` + Level int `json:"level" description:"关系树等级"` + Tree string `json:"tree" description:"关系树"` + Remark string `json:"remark" description:"备注"` + Sort int `json:"sort" description:"排序"` + Status int `json:"status" description:"角色状态"` + CreatedAt *gtime.Time `json:"createdAt" description:"创建时间"` + UpdatedAt *gtime.Time `json:"updatedAt" description:"更新时间"` } diff --git a/server/internal/model/entity/sys_attachment.go b/server/internal/model/entity/sys_attachment.go index c7d9caf..3ca7fd3 100644 --- a/server/internal/model/entity/sys_attachment.go +++ b/server/internal/model/entity/sys_attachment.go @@ -10,18 +10,18 @@ import ( // SysAttachment is the golang structure for table sys_attachment. type SysAttachment struct { - Id int64 `json:"id" description:""` + Id int64 `json:"id" description:"文件ID"` AppId string `json:"appId" description:"应用ID"` - MemberId int64 `json:"memberId" description:"用户"` - CateId uint64 `json:"cateId" description:"分类"` - Drive string `json:"drive" description:"驱动"` + MemberId int64 `json:"memberId" description:"管理员ID"` + CateId uint64 `json:"cateId" description:"上传分类"` + Drive string `json:"drive" description:"上传驱动"` Name string `json:"name" description:"文件原始名"` Kind string `json:"kind" description:"上传类型"` - MetaType string `json:"metaType" description:"类别"` + MetaType string `json:"metaType" description:"文件类型"` NaiveType string `json:"naiveType" description:"NaiveUI类型"` Path string `json:"path" description:"本地路径"` FileUrl string `json:"fileUrl" description:"url"` - Size int64 `json:"size" description:"长度"` + Size int64 `json:"size" description:"文件大小"` Ext string `json:"ext" description:"扩展名"` Md5 string `json:"md5" description:"md5校验码"` Status int `json:"status" description:"状态"` diff --git a/server/internal/model/entity/sys_blacklist.go b/server/internal/model/entity/sys_blacklist.go index 3353821..b307c36 100644 --- a/server/internal/model/entity/sys_blacklist.go +++ b/server/internal/model/entity/sys_blacklist.go @@ -10,8 +10,8 @@ import ( // SysBlacklist is the golang structure for table sys_blacklist. type SysBlacklist struct { - Id int64 `json:"id" description:"主键"` - Ip string `json:"ip" description:"ip地址"` + Id int64 `json:"id" description:"黑名单ID"` + Ip string `json:"ip" description:"IP地址"` Remark string `json:"remark" description:"备注"` Status int `json:"status" description:"状态"` CreatedAt *gtime.Time `json:"createdAt" description:"创建时间"` diff --git a/server/internal/model/entity/sys_config.go b/server/internal/model/entity/sys_config.go index 8170431..62b3486 100644 --- a/server/internal/model/entity/sys_config.go +++ b/server/internal/model/entity/sys_config.go @@ -11,15 +11,15 @@ import ( // SysConfig is the golang structure for table sys_config. type SysConfig struct { Id int64 `json:"id" description:"配置ID"` - Group string `json:"group" description:"分组"` + Group string `json:"group" description:"配置分组"` Name string `json:"name" description:"参数名称"` - Type string `json:"type" description:"类型:string,text,int,bool,array,datetime,date,file"` + Type string `json:"type" description:"键值类型:string,int,uint,bool,datetime,date"` Key string `json:"key" description:"参数键名"` Value string `json:"value" description:"参数键值"` DefaultValue string `json:"defaultValue" description:"默认值"` Sort int `json:"sort" description:"排序"` Tip string `json:"tip" description:"变量描述"` - IsDefault int `json:"isDefault" description:"是否默认"` + IsDefault int `json:"isDefault" description:"是否为系统默认"` Status int `json:"status" description:"状态"` CreatedAt *gtime.Time `json:"createdAt" description:"创建时间"` UpdatedAt *gtime.Time `json:"updatedAt" description:"更新时间"` diff --git a/server/internal/model/entity/sys_cron.go b/server/internal/model/entity/sys_cron.go index d39afec..bed11b2 100644 --- a/server/internal/model/entity/sys_cron.go +++ b/server/internal/model/entity/sys_cron.go @@ -10,7 +10,7 @@ import ( // SysCron is the golang structure for table sys_cron. type SysCron struct { - Id int64 `json:"id" description:"主键"` + Id int64 `json:"id" description:"任务ID"` GroupId int64 `json:"groupId" description:"分组ID"` Name string `json:"name" description:"任务名称"` Params string `json:"params" description:"函数参数"` @@ -19,7 +19,7 @@ type SysCron struct { Count int64 `json:"count" description:"执行次数"` Sort int `json:"sort" description:"排序"` Remark string `json:"remark" description:"备注"` - Status int `json:"status" description:"状态"` + Status int `json:"status" description:"任务状态"` CreatedAt *gtime.Time `json:"createdAt" description:"创建时间"` UpdatedAt *gtime.Time `json:"updatedAt" description:"更新时间"` } diff --git a/server/internal/model/entity/sys_cron_group.go b/server/internal/model/entity/sys_cron_group.go index 09e8a73..7d16811 100644 --- a/server/internal/model/entity/sys_cron_group.go +++ b/server/internal/model/entity/sys_cron_group.go @@ -10,13 +10,13 @@ import ( // SysCronGroup is the golang structure for table sys_cron_group. type SysCronGroup struct { - Id int64 `json:"id" description:"主键"` - Pid int64 `json:"pid" description:"父类ID"` + Id int64 `json:"id" description:"任务分组ID"` + Pid int64 `json:"pid" description:"父类任务分组ID"` Name string `json:"name" description:"分组名称"` IsDefault int `json:"isDefault" description:"是否默认"` Sort int `json:"sort" description:"排序"` Remark string `json:"remark" description:"备注"` - Status int `json:"status" description:"状态"` + Status int `json:"status" description:"分组状态"` CreatedAt *gtime.Time `json:"createdAt" description:"创建时间"` UpdatedAt *gtime.Time `json:"updatedAt" description:"更新时间"` } diff --git a/server/internal/model/entity/sys_dict_data.go b/server/internal/model/entity/sys_dict_data.go index 812b10f..c917438 100644 --- a/server/internal/model/entity/sys_dict_data.go +++ b/server/internal/model/entity/sys_dict_data.go @@ -10,12 +10,13 @@ import ( // SysDictData is the golang structure for table sys_dict_data. type SysDictData struct { - Id int64 `json:"id" description:"字典编码"` + Id int64 `json:"id" description:"字典数据ID"` Label string `json:"label" description:"字典标签"` Value string `json:"value" description:"字典键值"` + ValueType string `json:"valueType" description:"键值数据类型:string,int,uint,bool,datetime,date"` Type string `json:"type" description:"字典类型"` ListClass string `json:"listClass" description:"表格回显样式"` - IsDefault int `json:"isDefault" description:"是否默认"` + IsDefault int `json:"isDefault" description:"是否为系统默认"` Sort int `json:"sort" description:"字典排序"` Remark string `json:"remark" description:"备注"` Status int `json:"status" description:"状态"` diff --git a/server/internal/model/entity/sys_dict_type.go b/server/internal/model/entity/sys_dict_type.go index b6bee7e..b43032b 100644 --- a/server/internal/model/entity/sys_dict_type.go +++ b/server/internal/model/entity/sys_dict_type.go @@ -10,13 +10,13 @@ import ( // SysDictType is the golang structure for table sys_dict_type. type SysDictType struct { - Id int64 `json:"id" description:"字典主键"` - Pid int64 `json:"pid" description:"父类ID"` - Name string `json:"name" description:"字典名称"` + Id int64 `json:"id" description:"字典类型ID"` + Pid int64 `json:"pid" description:"父类字典类型ID"` + Name string `json:"name" description:"字典类型名称"` Type string `json:"type" description:"字典类型"` Sort int `json:"sort" description:"排序"` Remark string `json:"remark" description:"备注"` - Status int `json:"status" description:"状态"` + Status int `json:"status" description:"字典类型状态"` CreatedAt *gtime.Time `json:"createdAt" description:"创建时间"` UpdatedAt *gtime.Time `json:"updatedAt" description:"更新时间"` } diff --git a/server/internal/model/entity/sys_gen_codes.go b/server/internal/model/entity/sys_gen_codes.go new file mode 100644 index 0000000..19563e6 --- /dev/null +++ b/server/internal/model/entity/sys_gen_codes.go @@ -0,0 +1,26 @@ +// ================================================================================= +// Code generated by GoFrame CLI tool. DO NOT EDIT. +// ================================================================================= + +package entity + +import ( + "github.com/gogf/gf/v2/encoding/gjson" + "github.com/gogf/gf/v2/os/gtime" +) + +// SysGenCodes is the golang structure for table sys_gen_codes. +type SysGenCodes struct { + Id int64 `json:"id" description:"生成ID"` + GenType uint `json:"genType" description:"生成类型"` + VarName string `json:"varName" description:"实体命名"` + Options *gjson.Json `json:"options" description:"配置选项"` + DbName string `json:"dbName" description:"数据库名称"` + TableName string `json:"tableName" description:"主表名称"` + TableComment string `json:"tableComment" description:"主表注释"` + DaoName string `json:"daoName" description:"主表dao模型"` + MasterColumns *gjson.Json `json:"masterColumns" description:"主表字段"` + Status int `json:"status" description:"生成状态"` + CreatedAt *gtime.Time `json:"createdAt" description:"创建时间"` + UpdatedAt *gtime.Time `json:"updatedAt" description:"更新时间"` +} diff --git a/server/internal/model/entity/sys_gen_curd_demo.go b/server/internal/model/entity/sys_gen_curd_demo.go new file mode 100644 index 0000000..7c9395a --- /dev/null +++ b/server/internal/model/entity/sys_gen_curd_demo.go @@ -0,0 +1,28 @@ +// ================================================================================= +// Code generated by GoFrame CLI tool. DO NOT EDIT. +// ================================================================================= + +package entity + +import ( + "github.com/gogf/gf/v2/os/gtime" +) + +// SysGenCurdDemo is the golang structure for table sys_gen_curd_demo. +type SysGenCurdDemo struct { + Id int64 `json:"id" description:"ID"` + CategoryId int64 `json:"categoryId" description:"分类ID"` + Title string `json:"title" description:"标题"` + Description string `json:"description" description:"描述"` + Content string `json:"content" description:"内容"` + Image string `json:"image" description:"单图"` + Attachfile string `json:"attachfile" description:"附件"` + Switch int `json:"switch" description:"显示开关"` + Sort int `json:"sort" description:"排序"` + Status int `json:"status" description:"状态"` + CreatedBy int64 `json:"createdBy" description:"创建者"` + UpdatedBy int64 `json:"updatedBy" description:"更新者"` + CreatedAt *gtime.Time `json:"createdAt" description:"创建时间"` + UpdatedAt *gtime.Time `json:"updatedAt" description:"修改时间"` + DeletedAt *gtime.Time `json:"deletedAt" description:"删除时间"` +} diff --git a/server/internal/model/entity/sys_log.go b/server/internal/model/entity/sys_log.go index a191940..289671a 100644 --- a/server/internal/model/entity/sys_log.go +++ b/server/internal/model/entity/sys_log.go @@ -5,28 +5,29 @@ package entity import ( + "github.com/gogf/gf/v2/encoding/gjson" "github.com/gogf/gf/v2/os/gtime" ) // SysLog is the golang structure for table sys_log. type SysLog struct { - Id int64 `json:"id" description:""` - AppId string `json:"appId" description:"应用id"` - MerchantId uint64 `json:"merchantId" description:"商户id"` - MemberId int64 `json:"memberId" description:"用户id"` + Id int64 `json:"id" description:"日志ID"` + AppId string `json:"appId" description:"应用ID"` + MerchantId uint64 `json:"merchantId" description:"商户ID"` + MemberId int64 `json:"memberId" description:"用户ID"` Method string `json:"method" description:"提交类型"` - Module string `json:"module" description:"模块"` + Module string `json:"module" description:"访问模块"` Url string `json:"url" description:"提交url"` - GetData string `json:"getData" description:"get数据"` - PostData string `json:"postData" description:"post数据"` - HeaderData string `json:"headerData" description:"header数据"` - Ip string `json:"ip" description:"ip地址"` + GetData *gjson.Json `json:"getData" description:"get数据"` + PostData *gjson.Json `json:"postData" description:"post数据"` + HeaderData *gjson.Json `json:"headerData" description:"header数据"` + Ip string `json:"ip" description:"IP地址"` ProvinceId int64 `json:"provinceId" description:"省编码"` CityId int64 `json:"cityId" description:"市编码"` ErrorCode int `json:"errorCode" description:"报错code"` ErrorMsg string `json:"errorMsg" description:"报错信息"` - ErrorData string `json:"errorData" description:"报错日志"` - ReqId string `json:"reqId" description:"对外id"` + ErrorData *gjson.Json `json:"errorData" description:"报错日志"` + ReqId string `json:"reqId" description:"对外ID"` Timestamp int64 `json:"timestamp" description:"响应时间"` UserAgent string `json:"userAgent" description:"UA信息"` TakeUpTime int64 `json:"takeUpTime" description:"请求耗时"` diff --git a/server/internal/model/entity/sys_provinces.go b/server/internal/model/entity/sys_provinces.go index 741a065..b34fe65 100644 --- a/server/internal/model/entity/sys_provinces.go +++ b/server/internal/model/entity/sys_provinces.go @@ -10,17 +10,17 @@ import ( // SysProvinces is the golang structure for table sys_provinces. type SysProvinces struct { - Id int64 `json:"id" description:"ID"` - Title string `json:"title" description:"栏目名"` - Pid int64 `json:"pid" description:"父栏目"` + Id int64 `json:"id" description:"省市区ID"` + Title string `json:"title" description:"栏目名称"` ShortTitle string `json:"shortTitle" description:"缩写"` Areacode int `json:"areacode" description:"区域编码"` Zipcode int `json:"zipcode" description:"邮政编码"` Pinyin string `json:"pinyin" description:"拼音"` Lng string `json:"lng" description:"经度"` Lat string `json:"lat" description:"纬度"` - Level int `json:"level" description:"级别"` - Tree string `json:"tree" description:""` + Pid int64 `json:"pid" description:"父栏目"` + Level int `json:"level" description:"关系树等级"` + Tree string `json:"tree" description:"关系"` Sort int `json:"sort" description:"排序"` Status int `json:"status" description:"状态"` CreatedAt *gtime.Time `json:"createdAt" description:"创建时间"` diff --git a/server/internal/model/entity/test.go b/server/internal/model/entity/test.go new file mode 100644 index 0000000..f7dbe4a --- /dev/null +++ b/server/internal/model/entity/test.go @@ -0,0 +1,50 @@ +// ================================================================================= +// Code generated by GoFrame CLI tool. DO NOT EDIT. +// ================================================================================= + +package entity + +import ( + "github.com/gogf/gf/v2/encoding/gjson" + "github.com/gogf/gf/v2/os/gtime" +) + +// Test is the golang structure for table test. +type Test struct { + Id int64 `json:"id" description:"ID"` + CategoryId int64 `json:"categoryId" description:"分类ID"` + Flag *gjson.Json `json:"flag" description:"标签"` + Title string `json:"title" description:"标题"` + Description string `json:"description" description:"描述"` + Content string `json:"content" description:"内容"` + Image string `json:"image" description:"单图"` + Images *gjson.Json `json:"images" description:"多图"` + Attachfile string `json:"attachfile" description:"附件"` + Attachfiles *gjson.Json `json:"attachfiles" description:"多附件"` + Map *gjson.Json `json:"map" description:"动态键值对"` + Star float64 `json:"star" description:"推荐星"` + Price float64 `json:"price" description:"价格"` + Views int64 `json:"views" description:"浏览次数"` + ActivityAt *gtime.Time `json:"activityAt" description:"活动时间"` + StartAt *gtime.Time `json:"startAt" description:"开启时间"` + EndAt *gtime.Time `json:"endAt" description:"结束时间"` + Switch int `json:"switch" description:"开关"` + Sort int `json:"sort" description:"排序"` + Avatar string `json:"avatar" description:"头像"` + Sex int `json:"sex" description:"性别"` + Qq string `json:"qq" description:"qq"` + Email string `json:"email" description:"邮箱"` + Mobile string `json:"mobile" description:"手机号码"` + Hobby *gjson.Json `json:"hobby" description:"爱好"` + Channel int `json:"channel" description:"渠道"` + Pid int64 `json:"pid" description:"上级ID"` + Level int `json:"level" description:"树等级"` + Tree string `json:"tree" description:"关系树"` + Remark string `json:"remark" description:"备注"` + Status int `json:"status" description:"状态"` + CreatedBy int64 `json:"createdBy" description:"创建者"` + UpdatedBy int64 `json:"updatedBy" description:"更新者"` + CreatedAt *gtime.Time `json:"createdAt" description:"创建时间"` + UpdatedAt *gtime.Time `json:"updatedAt" description:"修改时间"` + DeletedAt *gtime.Time `json:"deletedAt" description:"删除时间"` +} diff --git a/server/internal/model/entity/test_category.go b/server/internal/model/entity/test_category.go new file mode 100644 index 0000000..50acca9 --- /dev/null +++ b/server/internal/model/entity/test_category.go @@ -0,0 +1,22 @@ +// ================================================================================= +// Code generated by GoFrame CLI tool. DO NOT EDIT. +// ================================================================================= + +package entity + +import ( + "github.com/gogf/gf/v2/os/gtime" +) + +// TestCategory is the golang structure for table test_category. +type TestCategory struct { + Id int64 `json:"id" description:"分类ID"` + Name string `json:"name" description:"分类名称"` + Description string `json:"description" description:"描述"` + Sort int `json:"sort" description:"排序"` + Remark string `json:"remark" description:"备注"` + Status int `json:"status" description:"状态"` + CreatedAt *gtime.Time `json:"createdAt" description:"创建时间"` + UpdatedAt *gtime.Time `json:"updatedAt" description:"修改时间"` + DeletedAt *gtime.Time `json:"deletedAt" description:"删除时间"` +} diff --git a/server/internal/model/gen_codes.go b/server/internal/model/gen_codes.go new file mode 100644 index 0000000..0143140 --- /dev/null +++ b/server/internal/model/gen_codes.go @@ -0,0 +1,33 @@ +package model + +// GenCodesColumn 生成表字段属性 +type GenCodesColumn struct { + // 表属性 + Id int64 `json:"id" dc:"序号"` + Name string `json:"name" dc:"字段列名"` + Dc string `json:"dc" dc:"字段描述"` + DataType string `json:"dataType" dc:"字段类型"` + SqlType string `json:"sqlType" dc:"物理类型"` + Length int64 `json:"length" dc:"字段长度"` + IsAllowNull string `json:"isAllowNull" dc:"是否允许为空"` + DefaultValue interface{} `json:"defaultValue" dc:"默认值"` + Index string `json:"index" dc:"索引"` + Extra string `json:"extra" dc:"额外选项"` + // 自定义生成属性 + //Alias string `json:"alias" dc:"字段别名"` + GoName string `json:"goName" dc:"Go属性"` + GoType string `json:"goType" dc:"Go类型"` + TsName string `json:"tsName" dc:"Ts属性"` + TsType string `json:"tsType" dc:"Ts类型"` + IsList bool `json:"isList" dc:"列表"` + IsExport bool `json:"isExport" dc:"导出"` + IsSort bool `json:"isSort" dc:"排序"` + IsQuery bool `json:"isQuery" dc:"查询"` + QueryWhere string `json:"queryWhere" dc:"查询条件"` + IsEdit bool `json:"isEdit" dc:"编辑"` + Required bool `json:"required" dc:"必填"` + Unique bool `json:"unique" dc:"唯一性"` + FormMode string `json:"formMode" dc:"表单组件"` + FormRole string `json:"formRole" dc:"表单验证"` + DictType int64 `json:"dictType" dc:"字典类型ID"` +} diff --git a/server/internal/model/input/adminin/member.go b/server/internal/model/input/adminin/member.go index 9fbb4e1..09c1713 100644 --- a/server/internal/model/input/adminin/member.go +++ b/server/internal/model/input/adminin/member.go @@ -93,37 +93,38 @@ type MemberMaxSortModel struct { Sort int } -// MemberEditInp 修改/新增字典数据 +// MemberEditInp 修改/新增管理员 type MemberEditInp struct { - Id int64 `json:"id" description:""` - PostIds []int64 `json:"postIds" v:"required#岗位不能为空" description:"岗位ID"` - DeptId int64 `json:"dept_id" v:"required#部门不能为空" description:"部门ID"` - Username string `json:"username" v:"required#账号不能为空" description:"帐号"` - Password string `json:"password" description:"密码"` - Realname string `json:"realname" description:"真实姓名"` - Avatar string `json:"avatar" description:"头像"` - Sex string `json:"sex" description:"性别[0:未知;1:男;2:女]"` - Qq string `json:"qq" description:"qq"` - Email string `json:"email" description:"邮箱"` - Birthday *gtime.Time `json:"birthday" description:"生日"` - ProvinceId int `json:"province_id" description:"省"` - CityId int `json:"city_id" description:"城市"` - AreaId int `json:"area_id" description:"地区"` - Address string `json:"address" description:"默认地址"` - Mobile string `json:"mobile" description:"手机号码"` - HomePhone string `json:"home_phone" description:"家庭号码"` - DingtalkRobotToken string `json:"dingtalk_robot_token" description:"钉钉机器人token"` - Role int `json:"role" v:"required#角色不能为空" description:"权限"` - Remark string `json:"remark" description:"备注"` - Status string `json:"status" description:"状态"` - CreatedAt *gtime.Time `json:"created_at" description:"创建时间"` - UpdatedAt *gtime.Time `json:"updated_at" description:"修改时间"` + Id int64 `json:"id" description:""` + RoleId int `json:"roleId" v:"required#角色不能为空" description:"角色ID"` + PostIds []int64 `json:"postIds" v:"required#岗位不能为空" description:"岗位ID"` + DeptId int64 `json:"deptId" v:"required#部门不能为空" description:"部门ID"` + Username string `json:"username" v:"required#账号不能为空" description:"帐号"` + Password string `json:"password" description:"密码"` + Realname string `json:"realName" description:"真实姓名"` + Avatar string `json:"avatar" description:"头像"` + Sex string `json:"sex" description:"性别"` + Qq string `json:"qq" description:"qq"` + Email string `json:"email" description:"邮箱"` + Birthday *gtime.Time `json:"birthday" description:"生日"` + ProvinceId int `json:"provinceId" description:"省"` + CityId int `json:"cityId" description:"城市"` + AreaId int `json:"areaId" description:"地区"` + Address string `json:"address" description:"默认地址"` + Mobile string `json:"mobile" description:"手机号码"` + Remark string `json:"remark" description:"备注"` + Status string `json:"status" description:"状态"` + CreatedAt *gtime.Time `json:"createdAt" description:"创建时间"` + UpdatedAt *gtime.Time `json:"updatedAt" description:"修改时间"` } type MemberAddInp struct { MemberEditInp - PasswordHash string `json:"password_hash" description:"密码hash"` + PasswordHash string `json:"passwordHash" description:"密码hash"` Salt string `json:"salt" description:"密码盐"` + Pid int64 `json:"pid" description:"上级ID"` + Level int `json:"level" description:"等级"` + Tree string `json:"tree" description:"关系树"` } type MemberEditModel struct{} @@ -159,10 +160,10 @@ type MemberListInp struct { type MemberListModel struct { entity.AdminMember - DeptName string `json:"dept_name"` - RoleName string `json:"role_name"` + DeptName string `json:"deptName"` + RoleName string `json:"roleName"` PostIds []int64 `json:"postIds"` - DeptId int64 `json:"dept_id" description:"部门ID"` + DeptId int64 `json:"deptId" description:"部门ID"` } // MemberLoginInp 登录 @@ -171,12 +172,12 @@ type MemberLoginInp struct { Password string } type MemberLoginModel struct { - UserId int64 `json:"userId" description:"会员ID"` - Username string `json:"username" description:"用户名"` - RealName string `json:"realName" description:"昵称"` - Avatar string `json:"avatar" description:"头像"` - Token string `json:"token" v:"" description:"登录token"` - Permissions []MemberLoginPermissions `json:"permissions" description:"角色信息"` + UserId int64 `json:"userId" description:"会员ID"` + Username string `json:"username" description:"用户名"` + RealName string `json:"realName" description:"昵称"` + Avatar string `json:"avatar" description:"头像"` + Token string `json:"token" v:"" description:"登录token"` + Permissions []*MemberLoginPermissions `json:"permissions" description:"角色信息"` } // MemberLoginPermissions 登录用户角色信息 diff --git a/server/internal/model/input/adminin/role.go b/server/internal/model/input/adminin/role.go index 08aab32..53f582f 100644 --- a/server/internal/model/input/adminin/role.go +++ b/server/internal/model/input/adminin/role.go @@ -14,8 +14,7 @@ import ( // RoleListInp 获取列表 type RoleListInp struct { - Page int64 - PerPage int64 + form.PageReq } type RoleListModel struct { @@ -28,7 +27,7 @@ type RoleMemberListInp struct { form.RangeDateReq form.StatusReq Role int `json:"role" description:"角色ID"` - DeptId int `json:"dept_id" description:"部门ID"` + DeptId int `json:"deptId" description:"部门ID"` Mobile int `json:"mobile" description:"手机号"` Username string `json:"username" description:"用户名"` Realname string `json:"realname" description:"真实姓名"` @@ -48,3 +47,9 @@ type MenuRoleListModel struct { Menus []*model.LabelTreeMenu `json:"menus" description:"菜单列表"` CheckedKeys []int64 `json:"checkedKeys" description:"选择的菜单ID"` } + +type DataScopeEditInp struct { + Id int64 `json:"id" v:"required" dc:"角色ID"` + DataScope int `json:"dataScope" v:"required" dc:"数据范围"` + CustomDept []int64 `json:"customDept" dc:"自定义部门权限"` +} diff --git a/server/internal/model/input/adminin/test.go b/server/internal/model/input/adminin/test.go new file mode 100644 index 0000000..d9090ee --- /dev/null +++ b/server/internal/model/input/adminin/test.go @@ -0,0 +1,162 @@ +// Package adminin +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2022 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package adminin + +import ( + "context" + "errors" + "github.com/gogf/gf/v2/encoding/gjson" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gtime" + "hotgo/internal/consts" + "hotgo/internal/model/entity" + "hotgo/internal/model/input/form" + "hotgo/utility/validate" +) + +// TestEditInp 修改/新增 +type TestEditInp struct { + entity.Test +} + +type TestEditModel struct{} + +func (in *TestEditInp) Filter(ctx context.Context) (err error) { + if in.Map.IsNil() { + in.Map = gjson.New(consts.NilJsonToString) + } + if in.Flag.IsNil() { + in.Flag = gjson.New(consts.NilJsonToString) + } + if in.Images.IsNil() { + in.Images = gjson.New(consts.NilJsonToString) + } + if in.Attachfiles.IsNil() { + in.Attachfiles = gjson.New(consts.NilJsonToString) + } + if in.Hobby.IsNil() { + in.Hobby = gjson.New(consts.NilJsonToString) + } + + if in.Title == "" { + return errors.New("标题不能为空") + } + + if in.Email != "" && !validate.IsEmail(in.Email) { + return errors.New("邮箱格式不正确") + } + + if err := g.Validator().Rules("float|between:0,5").Messages("请输入一个浮点数|推荐星只能是0~5星").Data(in.Star).Run(ctx); err != nil { + return err.Current() + } + + return +} + +// TestDeleteInp 删除类型 +type TestDeleteInp struct { + Id interface{} `json:"id" v:"required#测试ID不能为空" dc:"测试ID"` +} + +type TestDeleteModel struct{} + +// TestViewInp 获取信息 +type TestViewInp struct { + Id int64 `json:"id" v:"required#测试ID不能为空" dc:"测试ID"` +} + +type TestViewModel struct { + entity.Test +} + +// TestListInp 获取列表 +type TestListInp struct { + form.PageReq + Id int64 `json:"id" description:""` + Flag *gjson.Json `json:"flag" description:"标签"` + Title string `json:"title" description:"标题"` + Content string `json:"content" description:"内容"` + Price []float64 `json:"price" description:"价格"` + ActivityAt *gtime.Time `json:"activityAt" description:"活动时间"` + Switch int `json:"switch" description:"开关"` + Hobby *gjson.Json `json:"hobby" description:"爱好"` + Status int `json:"status" description:"状态"` + CreatedAt []*gtime.Time `json:"createdAt" description:"创建时间"` +} + +type TestListModel struct { + entity.Test + TestCategoryName string `json:"testCategoryName" description:"分类名称"` + TestCategoryDescription string `json:"testCategoryDescription" description:"分类描述"` + TestCategoryRemark string `json:"testCategoryRemark" description:"分类备注"` + SysProvincesTitle string `json:"sysProvincesTitle" description:""` +} + +func (in *TestListInp) Filter(ctx context.Context) (err error) { + if !in.Flag.IsNil() { + in.Flag = gjson.New(in.Flag.Var().Ints()) + } + if !in.Hobby.IsNil() { + in.Hobby = gjson.New(in.Hobby.Var().Ints()) + } + return +} + +type TestExportModel struct { + Id int64 `json:"id" description:""` + CategoryId int64 `json:"categoryId" description:"分类ID"` + Flag *gjson.Json `json:"flag" description:"标签"` + Title string `json:"title" description:"标题"` + Star float64 `json:"star" description:"推荐星"` + Price float64 `json:"price" description:"价格"` + Views int64 `json:"views" description:"浏览次数"` + ActivityAt *gtime.Time `json:"activityAt" description:"活动时间"` + StartAt *gtime.Time `json:"startAt" description:"开启时间"` + EndAt *gtime.Time `json:"endAt" description:"结束时间"` + Switch int `json:"switch" description:"开关"` + Sort int `json:"sort" description:"排序"` + Avatar string `json:"avatar" description:"头像"` + Sex int `json:"sex" description:"性别"` + Qq string `json:"qq" description:"qq"` + Email string `json:"email" description:"邮箱"` + Mobile string `json:"mobile" description:"手机号码"` + Hobby *gjson.Json `json:"hobby" description:"爱好"` + Channel int `json:"channel" description:"渠道"` + Pid int64 `json:"pid" description:"上级ID"` + Level int `json:"level" description:"树等级"` + Tree string `json:"tree" description:"关系树"` + Remark string `json:"remark" description:"备注"` + Status int `json:"status" description:"状态"` + CreatedBy int64 `json:"createdBy" description:"创建者"` + UpdatedBy int64 `json:"updatedBy" description:"更新者"` + CreatedAt *gtime.Time `json:"createdAt" description:"创建时间"` + UpdatedAt *gtime.Time `json:"updatedAt" description:"修改时间"` + DeletedAt *gtime.Time `json:"deletedAt" description:"删除时间"` +} + +// TestMaxSortInp 最大排序 +type TestMaxSortInp struct{} + +type TestMaxSortModel struct { + Sort int `json:"sort" description:"排序"` +} + +// TestStatusInp 更新状态 +type TestStatusInp struct { + Id int64 `json:"id" v:"required#测试ID不能为空" dc:"测试ID"` + Status int `json:"status" dc:"状态"` +} + +type TestStatusModel struct{} + +// TestSwitchInp 更新开关状态 +type TestSwitchInp struct { + form.SwitchReq + Id int64 `json:"id" v:"required#测试ID不能为空" dc:"测试ID"` +} + +type TestSwitchModel struct{} diff --git a/server/internal/model/input/form/base.go b/server/internal/model/input/form/base.go index abafdac..e4dfa67 100644 --- a/server/internal/model/input/form/base.go +++ b/server/internal/model/input/form/base.go @@ -9,20 +9,21 @@ package form import ( "context" "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/util/gconv" ) var ( - page int64 - pageSize int64 + page int + pageSize int ) // DefaultPageSize 列表分页默认加载页码 -func DefaultPageSize(ctx context.Context) int64 { +func DefaultPageSize(ctx context.Context) int { if pageSize > 0 { return pageSize } - defaultPageSize, _ := g.Cfg().Get(ctx, "hotgo.admin.defaultPageSize", 10) - pageSize = defaultPageSize.Int64() + defaultPageSize := g.Cfg().MustGet(ctx, "hotgo.admin.defaultPageSize", 10) + pageSize = defaultPageSize.Int() if pageSize <= 0 { pageSize = 10 } @@ -30,26 +31,26 @@ func DefaultPageSize(ctx context.Context) int64 { } // DefaultPage 列表分页默认加载数量 -func DefaultPage(ctx context.Context) int64 { +func DefaultPage(ctx context.Context) int { if page > 0 { return page } - defaultPage, _ := g.Cfg().Get(ctx, "hotgo.admin.defaultPage", 1) - page = defaultPage.Int64() + defaultPage := g.Cfg().MustGet(ctx, "hotgo.admin.defaultPage", 1) + page = defaultPage.Int() if page <= 0 { - page = 10 + page = 1 } return page } // PageReq 分页 type PageReq struct { - Page int64 `json:"page" example:"10" d:"1" v:"min:1#页码最小值不能低于1" dc:"当前页码"` - PerPage int64 `json:"pageSize" example:"1" d:"10" v:"min:1|max:100#|每页数量最小值不能低于1|最大值不能大于100" dc:"每页数量"` + Page int `json:"page" example:"10" d:"1" v:"min:1#页码最小值不能低于1" dc:"当前页码"` + PerPage int `json:"pageSize" example:"1" d:"10" v:"min:1|max:100#|每页数量最小值不能低于1|最大值不能大于100" dc:"每页数量"` } type PageRes struct { PageReq - PageCount int64 `json:"pageCount" example:"0" dc:"全部数据量"` + PageCount int `json:"pageCount" example:"0" dc:"全部数据量"` } // RangeDateReq 时间查询 @@ -63,8 +64,14 @@ type StatusReq struct { Status int `json:"status" v:"in:-1,0,1,2,3#输入的状态是无效的" dc:"状态"` } +// SwitchReq 更新开关状态 +type SwitchReq struct { + Key string `json:"key" v:"required#测试ID不能为空" dc:"开关字段"` + Value int `json:"value" v:"in:1,2#输入的开关值是无效的" dc:"更新值"` +} + // CalPage 解析分页 -func CalPage(ctx context.Context, page, perPage int64) (newPage, newPerPage int64, offset int64) { +func CalPage(ctx context.Context, page, perPage int) (newPage, newPerPage int, offset int) { if page <= 0 { newPage = DefaultPage(ctx) } else { @@ -80,6 +87,31 @@ func CalPage(ctx context.Context, page, perPage int64) (newPage, newPerPage int6 return } -func CalPageCount(totalCount int64, perPage int64) int64 { +func CalPageCount(totalCount int, perPage int) int { return (totalCount + perPage - 1) / perPage } + +// Selects 选项 +type Selects []*Select +type Select struct { + Value interface{} `json:"value"` + Label string `json:"label"` + Name string `json:"name"` +} + +func (p Selects) Len() int { + return len(p) +} +func (p Selects) Swap(i, j int) { + p[i], p[j] = p[j], p[i] +} +func (p Selects) Less(i, j int) bool { + return gconv.Int64(p[j].Value) > gconv.Int64(p[i].Value) +} + +type SelectInt64s []*SelectInt64 +type SelectInt64 struct { + Value int64 `json:"value"` + Label string `json:"label"` + Name string `json:"name"` +} diff --git a/server/internal/model/input/sysin/config.go b/server/internal/model/input/sysin/config.go index f28e0f3..893afa3 100644 --- a/server/internal/model/input/sysin/config.go +++ b/server/internal/model/input/sysin/config.go @@ -96,6 +96,6 @@ type ConfigListInp struct { type ConfigListModel struct { entity.SysConfig - DeptName string `json:"dept_name"` - RoleName string `json:"role_name"` + DeptName string `json:"deptName"` + RoleName string `json:"roleName"` } diff --git a/server/internal/model/input/sysin/curd_demo.go b/server/internal/model/input/sysin/curd_demo.go new file mode 100644 index 0000000..18a9c33 --- /dev/null +++ b/server/internal/model/input/sysin/curd_demo.go @@ -0,0 +1,109 @@ +// Package sysin +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2023 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// @AutoGenerate Version 2.1.0 +// @AutoGenerate Date 2023-01-18 15:19:42 +// +package sysin + +import ( + "context" + "hotgo/internal/model/entity" + "hotgo/internal/model/input/form" + + "github.com/gogf/gf/v2/os/gtime" +) + +// CurdDemoEditInp 修改/新增生成演示 +type CurdDemoEditInp struct { + entity.Test +} + +func (in *CurdDemoEditInp) Filter(ctx context.Context) (err error) { + return +} + +type CurdDemoEditModel struct{} + +// CurdDemoDeleteInp 删除生成演示 +type CurdDemoDeleteInp struct { + Id interface{} `json:"id" v:"required#ID不能为空" dc:"ID"` +} + +type CurdDemoDeleteModel struct{} + +// CurdDemoViewInp 获取指定生成演示信息 +type CurdDemoViewInp struct { + Id int64 `json:"id" v:"required#ID不能为空" dc:"ID"` +} + +type CurdDemoViewModel struct { + entity.Test +} + +// CurdDemoListInp 获取生成演示列表 +type CurdDemoListInp struct { + form.PageReq + Id int64 `json:"id" dc:"ID"` + Status int `json:"status" dc:"状态"` + CreatedAt []*gtime.Time `json:"createdAt" dc:"创建时间"` + TestCategoryName string `json:"testCategoryName" dc:"分类名称"` +} + +type CurdDemoListModel struct { + Id int64 `json:"id" dc:"ID"` + CategoryId int64 `json:"categoryId" dc:"分类ID"` + Title string `json:"title" dc:"标题"` + Description string `json:"description" dc:"描述"` + Image string `json:"image" dc:"单图"` + Attachfile string `json:"attachfile" dc:"附件"` + Switch int `json:"switch" dc:"显示开关"` + Sort int `json:"sort" dc:"排序"` + Status int `json:"status" dc:"状态"` + CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间"` + TestCategoryName string `json:"testCategoryName" dc:"分类名称"` +} + +func (in *CurdDemoListInp) Filter(ctx context.Context) (err error) { + return +} + +// CurdDemoExportModel 导出生成演示 +type CurdDemoExportModel struct { + Id int64 `json:"id" dc:"ID"` + CategoryId int64 `json:"categoryId" dc:"分类ID"` + Title string `json:"title" dc:"标题"` + Description string `json:"description" dc:"描述"` + Image string `json:"image" dc:"单图"` + Attachfile string `json:"attachfile" dc:"附件"` + Switch int `json:"switch" dc:"显示开关"` + Sort int `json:"sort" dc:"排序"` + Status int `json:"status" dc:"状态"` + CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间"` + TestCategoryName string `json:"testCategoryName" dc:"分类名称"` +} + +// CurdDemoMaxSortInp 获取生成演示最大排序 +type CurdDemoMaxSortInp struct{} + +type CurdDemoMaxSortModel struct { + Sort int `json:"sort" description:"排序"` +} + +// CurdDemoStatusInp 更新生成演示状态 +type CurdDemoStatusInp struct { + Id int64 `json:"id" v:"required#ID不能为空" dc:"ID"` + Status int `json:"status" dc:"状态"` +} + +type CurdDemoStatusModel struct{} + +// CurdDemoSwitchInp 更新生成演示开关状态 +type CurdDemoSwitchInp struct { + form.SwitchReq + Id int64 `json:"id" v:"required#ID不能为空" dc:"ID"` +} + +type CurdDemoSwitchModel struct{} diff --git a/server/internal/model/input/sysin/dict_data.go b/server/internal/model/input/sysin/dict_data.go index c53d501..0b89141 100644 --- a/server/internal/model/input/sysin/dict_data.go +++ b/server/internal/model/input/sysin/dict_data.go @@ -35,6 +35,23 @@ type DictDataListInp struct { } type DictDataListModel struct { - TypeID int64 `json:"typeId"` + TypeID int64 `json:"typeId"` + Key string `json:"key"` entity.SysDictData } + +// DataSelectInp 获取指定字典选项 +type DataSelectInp struct { + Type string +} + +type DataSelectModel []*SelectData + +type SelectData struct { + Key interface{} `json:"key"` + Label string `json:"label" description:"字典标签"` + Value interface{} `json:"value" description:"字典键值"` + ValueType string `json:"valueType" description:"键值数据类型:string,int,uint,bool,datetime,date"` + Type string `json:"type" description:"字典类型"` + ListClass string `json:"listClass" description:"表格回显样式"` +} diff --git a/server/internal/model/input/sysin/dict_type.go b/server/internal/model/input/sysin/dict_type.go index bae1a75..9d746bd 100644 --- a/server/internal/model/input/sysin/dict_type.go +++ b/server/internal/model/input/sysin/dict_type.go @@ -28,3 +28,9 @@ type DictTypeSelectInp struct { } type DictTypeSelectModel []g.Map + +// DictTreeSelectInp 获取类型关系树选项 +type DictTreeSelectInp struct { +} + +type DictTreeSelectModel []g.Map diff --git a/server/internal/model/input/sysin/gen_codes.go b/server/internal/model/input/sysin/gen_codes.go new file mode 100644 index 0000000..873bd2e --- /dev/null +++ b/server/internal/model/input/sysin/gen_codes.go @@ -0,0 +1,139 @@ +// Package sysin +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2022 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package sysin + +import ( + "hotgo/internal/model" + "hotgo/internal/model/entity" + "hotgo/internal/model/input/form" +) + +// GenCodesMaxSortInp 最大排序 +type GenCodesMaxSortInp struct { + Id int64 +} + +type GenCodesMaxSortModel struct { + Sort int +} + +// GenCodesEditInp 修改/新增数据 +type GenCodesEditInp struct { + entity.SysGenCodes +} +type GenCodesEditModel struct { + entity.SysGenCodes +} + +// GenCodesDeleteInp 删除 +type GenCodesDeleteInp struct { + Id interface{} +} +type GenCodesDeleteModel struct{} + +// GenCodesViewInp 获取信息 +type GenCodesViewInp struct { + Id int64 +} + +type GenCodesViewModel struct { + entity.SysGenCodes +} + +// GenCodesListInp 获取列表 +type GenCodesListInp struct { + form.PageReq + form.StatusReq + GenType int `json:"genType"` + VarName string `json:"varName"` +} + +type GenCodesListModel struct { + entity.SysGenCodes +} + +// GenCodesStatusInp 更新状态 +type GenCodesStatusInp struct { + Id int64 `json:"id" description:"生成ID"` + Status int `json:"status" description:"生成状态"` +} +type GenCodesStatusModel struct{} + +// GenCodesSelectsInp 选项 +type GenCodesSelectsInp struct { +} +type GenCodesSelectsModel struct { + GenType form.Selects `json:"genType" dc:"生成类型"` + Db form.Selects `json:"db" dc:"数据库选项"` + Status form.Selects `json:"status" dc:"生成状态"` + LinkMode form.Selects `json:"linkMode" dc:"关联表方式"` + BuildMeth form.Selects `json:"buildMeth" dc:"生成方式"` + // 字段表格选项 + FormMode form.Selects `json:"formMode" dc:"表单组件"` + FormRole form.Selects `json:"formRole" dc:"表单验证"` + DictMode DictTreeSelectModel `json:"dictMode" dc:"字典类型"` + WhereMode form.Selects `json:"whereMode" dc:"查询条件"` +} + +// GenCodesTableSelectInp 数据库表选项 +type GenCodesTableSelectInp struct { + Name string `json:"name" dc:"数据库配置名称"` +} +type GenCodesTableSelectModel struct { + Value string `json:"value"` + Label string `json:"label"` + Name string `json:"name"` + DaoName string `json:"daoName" dc:"orm模型名称"` + DefVarName string `json:"defVarName" dc:"默认实体名称"` + DefAlias string `json:"defAlias" dc:"默认关联表别名"` + DefTableComment string `json:"defTableComment" dc:"默认菜单名称"` +} + +// GenCodesColumnSelectInp 表字段选项 +type GenCodesColumnSelectInp struct { + Name string `json:"name" dc:"数据库配置名称"` + Table string `json:"table" dc:"表名称"` +} +type GenCodesColumnSelectModel struct { + Value string `json:"value"` + Label string `json:"label"` + Name string `json:"name"` +} + +// GenCodesColumnListInp 表字段列表 +type GenCodesColumnListInp struct { + Name string `json:"name" dc:"数据库配置名称"` + Table string `json:"table" dc:"表名称"` + IsLink int64 `json:"isLink" dc:"是否是关联表"` + Alias string `json:"alias" dc:"关联表别名"` +} +type GenCodesColumnListModel struct { + model.GenCodesColumn +} + +// GenCodesPreviewInp 生成预览 +type GenCodesPreviewInp struct { + entity.SysGenCodes +} + +// GenFile 生成文件配置 +type GenFile struct { + Content string `json:"content" dc:"页面内容"` + Path string `json:"path" dc:"生成路径"` + Meth int `json:"meth" dc:"生成方式"` + Required bool `json:"required" dc:"是否是必要构建文件"` +} + +type GenCodesPreviewModel struct { + Config *model.GenerateConfig `json:"config"` + Views map[string]*GenFile `json:"views" dc:"页面"` +} + +// GenCodesBuildInp 提交生成 +type GenCodesBuildInp struct { + entity.SysGenCodes +} diff --git a/server/internal/router/admin.go b/server/internal/router/admin.go index defd406..8049cbe 100644 --- a/server/internal/router/admin.go +++ b/server/internal/router/admin.go @@ -13,13 +13,16 @@ import ( "hotgo/internal/controller/backend/admin" "hotgo/internal/controller/backend/common" "hotgo/internal/controller/backend/sys" + "hotgo/internal/router/genrouter" "hotgo/internal/service" ) func Admin(ctx context.Context, group *ghttp.RouterGroup) { - - routerPrefix, _ := g.Cfg().Get(ctx, "router.admin.prefix", "/admin") - group.Group(routerPrefix.String(), func(group *ghttp.RouterGroup) { + group.ALL("/login", func(r *ghttp.Request) { + r.Response.RedirectTo("/admin") + }) + prefix := g.Cfg().MustGet(ctx, "router.admin.prefix", "/admin") + group.Group(prefix.String(), func(group *ghttp.RouterGroup) { group.Middleware(service.Middleware().AdminAuth) group.Bind( common.Site, // 基础 @@ -35,6 +38,7 @@ func Admin(ctx context.Context, group *ghttp.RouterGroup) { sys.Cron, // 定时任务 sys.CronGroup, // 定时任务分组 sys.Blacklist, // 黑名单 + sys.GenCodes, // 生成代码 admin.Member, // 用户 admin.Monitor, // 监控 admin.Role, // 路由 @@ -42,6 +46,10 @@ func Admin(ctx context.Context, group *ghttp.RouterGroup) { admin.Menu, // 菜单 admin.Notice, // 公告 admin.Post, // 岗位 + admin.Test, // 测试 ) }) + + // 注册生成路由 + genrouter.Register(ctx, group) } diff --git a/server/internal/router/api.go b/server/internal/router/api.go index 9285b10..a513a9d 100644 --- a/server/internal/router/api.go +++ b/server/internal/router/api.go @@ -17,10 +17,8 @@ import ( // Api 前台路由 func Api(ctx context.Context, group *ghttp.RouterGroup) { - - routerPrefix, _ := g.Cfg().Get(ctx, "router.api.prefix", "/api") - - group.Group(routerPrefix.String(), func(group *ghttp.RouterGroup) { + prefix := g.Cfg().MustGet(ctx, "router.api.prefix", "/api") + group.Group(prefix.String(), func(group *ghttp.RouterGroup) { group.Middleware(service.Middleware().ApiAuth) group.Bind( user.Hello, diff --git a/server/internal/router/genrouter/curd_demo.go b/server/internal/router/genrouter/curd_demo.go new file mode 100644 index 0000000..882ca54 --- /dev/null +++ b/server/internal/router/genrouter/curd_demo.go @@ -0,0 +1,15 @@ +// Package genrouter +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2023 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// @AutoGenerate Version 2.1.0 +// @AutoGenerate Date 2023-01-18 15:19:42 +// +package genrouter + +import "hotgo/internal/controller/backend/sys" + +func init() { + LoginRequiredRouter = append(LoginRequiredRouter, sys.CurdDemo) // 生成演示 +} diff --git a/server/internal/router/genrouter/init.go b/server/internal/router/genrouter/init.go new file mode 100644 index 0000000..ceba68e --- /dev/null +++ b/server/internal/router/genrouter/init.go @@ -0,0 +1,33 @@ +// Package genrouter +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2023 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package genrouter + +import ( + "context" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/net/ghttp" + "hotgo/internal/service" +) + +var ( + NoLogin []interface{} // 无需登录 + LoginRequiredRouter []interface{} // 需要登录 +) + +// Register 注册通过代码生成的后台路由 +func Register(ctx context.Context, group *ghttp.RouterGroup) { + prefix := g.Cfg().MustGet(ctx, "router.admin.prefix", "/admin") + group.Group(prefix.String(), func(group *ghttp.RouterGroup) { + if len(NoLogin) > 0 { + group.Bind(NoLogin...) + } + group.Middleware(service.Middleware().AdminAuth) + if len(LoginRequiredRouter) > 0 { + group.Bind(LoginRequiredRouter...) + } + }) +} diff --git a/server/internal/router/home.go b/server/internal/router/home.go index efed567..d62d366 100644 --- a/server/internal/router/home.go +++ b/server/internal/router/home.go @@ -10,17 +10,22 @@ import ( "context" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/net/ghttp" + api "hotgo/api/home/base" "hotgo/internal/controller/home/base" ) // Home 前台页面路由 func Home(ctx context.Context, group *ghttp.RouterGroup) { - routerPrefix, _ := g.Cfg().Get(ctx, "router.home.prefix", "/home") + // 注册首页路由 + group.ALL("/", func(r *ghttp.Request) { + _, _ = base.Site.Index(r.Context(), &api.SiteIndexReq{}) + return + }) - group.Group(routerPrefix.String(), func(group *ghttp.RouterGroup) { + prefix := g.Cfg().MustGet(ctx, "router.home.prefix", "/home") + group.Group(prefix.String(), func(group *ghttp.RouterGroup) { group.Bind( base.Site, // 基础 ) - }) } diff --git a/server/internal/router/websocket.go b/server/internal/router/websocket.go index 7445812..571593a 100644 --- a/server/internal/router/websocket.go +++ b/server/internal/router/websocket.go @@ -19,9 +19,8 @@ import ( // WebSocket ws路由配置 func WebSocket(ctx context.Context, group *ghttp.RouterGroup) { - router, _ := g.Cfg().Get(ctx, "router.ws.prefix", "/socket") - - group.Group(router.String(), func(group *ghttp.RouterGroup) { + prefix := g.Cfg().MustGet(ctx, "router.ws.prefix", "/socket") + group.Group(prefix.String(), func(group *ghttp.RouterGroup) { group.Middleware() group.Bind( controller.Send, // 发送 diff --git a/server/internal/service/admin.go b/server/internal/service/admin.go index 66ec6a4..3121cfe 100644 --- a/server/internal/service/admin.go +++ b/server/internal/service/admin.go @@ -11,9 +11,46 @@ import ( "hotgo/api/backend/menu" "hotgo/api/backend/role" "hotgo/internal/model/input/adminin" + "hotgo/internal/model/input/form" + + "github.com/gogf/gf/v2/database/gdb" ) type ( + IAdminRole interface { + Verify(ctx context.Context, path, method string) bool + List(ctx context.Context, in adminin.RoleListInp) (list []*adminin.RoleListModel, totalCount int, err error) + GetName(ctx context.Context, RoleId int64) (name string, err error) + GetMemberList(ctx context.Context, RoleId int64) (list []*adminin.RoleListModel, err error) + GetPermissions(ctx context.Context, reqInfo *role.GetPermissionsReq) (MenuIds []int64, err error) + UpdatePermissions(ctx context.Context, reqInfo *role.UpdatePermissionsReq) error + Edit(ctx context.Context, in *role.EditReq) (err error) + Delete(ctx context.Context, in *role.DeleteReq) (err error) + DataScopeSelect(ctx context.Context) (res form.Selects) + DataScopeEdit(ctx context.Context, in *adminin.DataScopeEditInp) (err error) + } + IAdminTest interface { + Model(ctx context.Context) *gdb.Model + List(ctx context.Context, in adminin.TestListInp) (list []*adminin.TestListModel, totalCount int, err error) + Export(ctx context.Context, in adminin.TestListInp) (err error) + Edit(ctx context.Context, in adminin.TestEditInp) (err error) + Delete(ctx context.Context, in adminin.TestDeleteInp) (err error) + Status(ctx context.Context, in adminin.TestStatusInp) (err error) + Switch(ctx context.Context, in adminin.TestSwitchInp) (err error) + MaxSort(ctx context.Context, in adminin.TestMaxSortInp) (res *adminin.TestMaxSortModel, err error) + View(ctx context.Context, in adminin.TestViewInp) (res *adminin.TestViewModel, err error) + } + IAdminDept interface { + NameUnique(ctx context.Context, in adminin.DeptNameUniqueInp) (*adminin.DeptNameUniqueModel, error) + Delete(ctx context.Context, in adminin.DeptDeleteInp) error + Edit(ctx context.Context, in adminin.DeptEditInp) (err error) + Status(ctx context.Context, in adminin.DeptStatusInp) (err error) + MaxSort(ctx context.Context, in adminin.DeptMaxSortInp) (*adminin.DeptMaxSortModel, error) + View(ctx context.Context, in adminin.DeptViewInp) (res *adminin.DeptViewModel, err error) + List(ctx context.Context, in adminin.DeptListInp) (list adminin.DeptListModel, err error) + ListTree(ctx context.Context, in adminin.DeptListTreeInp) (list []*adminin.DeptListTreeModel, err error) + GetName(ctx context.Context, id int64) (name string, err error) + } IAdminMember interface { UpdateProfile(ctx context.Context, in adminin.MemberUpdateProfileInp) (err error) UpdatePwd(ctx context.Context, in adminin.MemberUpdatePwdInp) (err error) @@ -26,10 +63,10 @@ type ( Edit(ctx context.Context, in adminin.MemberEditInp) (err error) MaxSort(ctx context.Context, in adminin.MemberMaxSortInp) (*adminin.MemberMaxSortModel, error) View(ctx context.Context, in adminin.MemberViewInp) (res *adminin.MemberViewModel, err error) - List(ctx context.Context, in adminin.MemberListInp) (list []*adminin.MemberListModel, totalCount int64, err error) + List(ctx context.Context, in adminin.MemberListInp) (list []*adminin.MemberListModel, totalCount int, err error) LoginMemberInfo(ctx context.Context, req *member.InfoReq) (res *adminin.MemberLoginModel, err error) Login(ctx context.Context, in adminin.MemberLoginInp) (res *adminin.MemberLoginModel, err error) - RoleMemberList(ctx context.Context, in adminin.RoleMemberListInp) (list []*adminin.MemberListModel, totalCount int64, err error) + RoleMemberList(ctx context.Context, in adminin.RoleMemberListInp) (list []*adminin.MemberListModel, totalCount int, err error) Status(ctx context.Context, in adminin.MemberStatusInp) (err error) GetIdByCode(ctx context.Context, in adminin.GetIdByCodeInp) (res *adminin.GetIdByCodeModel, err error) } @@ -48,6 +85,7 @@ type ( View(ctx context.Context, req *menu.ViewReq) (res *menu.ViewRes, err error) List(ctx context.Context, req *menu.ListReq) (lists []map[string]interface{}, err error) GetMenuList(ctx context.Context, memberId int64) (lists role.DynamicRes, err error) + LoginPermissions(ctx context.Context, memberId int64) (lists []*adminin.MemberLoginPermissions, err error) } IAdminNotice interface { Delete(ctx context.Context, in adminin.NoticeDeleteInp) error @@ -55,7 +93,7 @@ type ( Status(ctx context.Context, in adminin.NoticeStatusInp) (err error) MaxSort(ctx context.Context, in adminin.NoticeMaxSortInp) (*adminin.NoticeMaxSortModel, error) View(ctx context.Context, in adminin.NoticeViewInp) (res *adminin.NoticeViewModel, err error) - List(ctx context.Context, in adminin.NoticeListInp) (list []*adminin.NoticeListModel, totalCount int64, err error) + List(ctx context.Context, in adminin.NoticeListInp) (list []*adminin.NoticeListModel, totalCount int, err error) } IAdminPost interface { Delete(ctx context.Context, in adminin.PostDeleteInp) error @@ -64,31 +102,10 @@ type ( NameUnique(ctx context.Context, in adminin.PostNameUniqueInp) (*adminin.PostNameUniqueModel, error) CodeUnique(ctx context.Context, in adminin.PostCodeUniqueInp) (*adminin.PostCodeUniqueModel, error) View(ctx context.Context, in adminin.PostViewInp) (res *adminin.PostViewModel, err error) - List(ctx context.Context, in adminin.PostListInp) (list []*adminin.PostListModel, totalCount int64, err error) + List(ctx context.Context, in adminin.PostListInp) (list []*adminin.PostListModel, totalCount int, err error) GetMemberByStartName(ctx context.Context, memberId int64) (name string, err error) Status(ctx context.Context, in adminin.PostStatusInp) (err error) } - IAdminRole interface { - Verify(ctx context.Context, path, method string) bool - List(ctx context.Context, in adminin.RoleListInp) (list []*adminin.RoleListModel, totalCount int64, err error) - GetName(ctx context.Context, RoleId int64) (name string, err error) - GetMemberList(ctx context.Context, RoleId int64) (list []*adminin.RoleListModel, err error) - GetPermissions(ctx context.Context, reqInfo *role.GetPermissionsReq) (MenuIds []int64, err error) - UpdatePermissions(ctx context.Context, reqInfo *role.UpdatePermissionsReq) error - Edit(ctx context.Context, in *role.EditReq) (err error) - Delete(ctx context.Context, in *role.DeleteReq) (err error) - } - IAdminDept interface { - NameUnique(ctx context.Context, in adminin.DeptNameUniqueInp) (*adminin.DeptNameUniqueModel, error) - Delete(ctx context.Context, in adminin.DeptDeleteInp) error - Edit(ctx context.Context, in adminin.DeptEditInp) (err error) - Status(ctx context.Context, in adminin.DeptStatusInp) (err error) - MaxSort(ctx context.Context, in adminin.DeptMaxSortInp) (*adminin.DeptMaxSortModel, error) - View(ctx context.Context, in adminin.DeptViewInp) (res *adminin.DeptViewModel, err error) - List(ctx context.Context, in adminin.DeptListInp) (list adminin.DeptListModel, err error) - ListTree(ctx context.Context, in adminin.DeptListTreeInp) (list []*adminin.DeptListTreeModel, err error) - GetName(ctx context.Context, id int64) (name string, err error) - } ) var ( @@ -97,10 +114,33 @@ var ( localAdminNotice IAdminNotice localAdminPost IAdminPost localAdminRole IAdminRole + localAdminTest IAdminTest localAdminDept IAdminDept localAdminMember IAdminMember ) +func AdminDept() IAdminDept { + if localAdminDept == nil { + panic("implement not found for interface IAdminDept, forgot register?") + } + return localAdminDept +} + +func RegisterAdminDept(i IAdminDept) { + localAdminDept = i +} + +func AdminMember() IAdminMember { + if localAdminMember == nil { + panic("implement not found for interface IAdminMember, forgot register?") + } + return localAdminMember +} + +func RegisterAdminMember(i IAdminMember) { + localAdminMember = i +} + func AdminMemberPost() IAdminMemberPost { if localAdminMemberPost == nil { panic("implement not found for interface IAdminMemberPost, forgot register?") @@ -156,24 +196,13 @@ func RegisterAdminRole(i IAdminRole) { localAdminRole = i } -func AdminDept() IAdminDept { - if localAdminDept == nil { - panic("implement not found for interface IAdminDept, forgot register?") +func AdminTest() IAdminTest { + if localAdminTest == nil { + panic("implement not found for interface IAdminTest, forgot register?") } - return localAdminDept + return localAdminTest } -func RegisterAdminDept(i IAdminDept) { - localAdminDept = i -} - -func AdminMember() IAdminMember { - if localAdminMember == nil { - panic("implement not found for interface IAdminMember, forgot register?") - } - return localAdminMember -} - -func RegisterAdminMember(i IAdminMember) { - localAdminMember = i +func RegisterAdminTest(i IAdminTest) { + localAdminTest = i } diff --git a/server/internal/service/common.go b/server/internal/service/common.go index 36c0a53..55dfe9b 100644 --- a/server/internal/service/common.go +++ b/server/internal/service/common.go @@ -7,6 +7,7 @@ package service import ( "context" + "hotgo/internal/model" "hotgo/internal/model/input/sysin" "github.com/gogf/gf/v2/net/ghttp" @@ -14,9 +15,11 @@ import ( type ( ICommonUpload interface { + UploadFile(ctx context.Context, file *ghttp.UploadFile) (result *sysin.AttachmentListModel, err error) UploadImage(ctx context.Context, file *ghttp.UploadFile) (result *sysin.AttachmentListModel, err error) - UploadLocal(ctx context.Context, file *ghttp.UploadFile, meta *sysin.UploadFileMeta) (result *sysin.AttachmentListModel, err error) - LastUrl(ctx context.Context, fullPath, drive string) string + UploadLocal(ctx context.Context, conf *model.UploadConfig, file *ghttp.UploadFile, meta *sysin.UploadFileMeta) (result *sysin.AttachmentListModel, err error) + UploadUCloud(ctx context.Context, conf *model.UploadConfig, file *ghttp.UploadFile, meta *sysin.UploadFileMeta) (result *sysin.AttachmentListModel, err error) + LastUrl(ctx context.Context, conf *model.UploadConfig, fullPath, drive string) string } ) diff --git a/server/internal/service/sys.go b/server/internal/service/sys.go index b5fbca0..70bd36c 100644 --- a/server/internal/service/sys.go +++ b/server/internal/service/sys.go @@ -12,6 +12,7 @@ import ( "hotgo/internal/model/entity" "hotgo/internal/model/input/sysin" + "github.com/gogf/gf/v2/database/gdb" "github.com/gogf/gf/v2/frame/g" ) @@ -24,7 +25,15 @@ type ( AnalysisLog(ctx context.Context) entity.SysLog View(ctx context.Context, in sysin.LogViewInp) (res *sysin.LogViewModel, err error) Delete(ctx context.Context, in sysin.LogDeleteInp) error - List(ctx context.Context, in sysin.LogListInp) (list []*sysin.LogListModel, totalCount int64, err error) + List(ctx context.Context, in sysin.LogListInp) (list []*sysin.LogListModel, totalCount int, err error) + } + ISysProvinces interface { + Delete(ctx context.Context, in sysin.ProvincesDeleteInp) error + Edit(ctx context.Context, in sysin.ProvincesEditInp) (err error) + Status(ctx context.Context, in sysin.ProvincesStatusInp) (err error) + MaxSort(ctx context.Context, in sysin.ProvincesMaxSortInp) (*sysin.ProvincesMaxSortModel, error) + View(ctx context.Context, in sysin.ProvincesViewInp) (res *sysin.ProvincesViewModel, err error) + List(ctx context.Context, in sysin.ProvincesListInp) (list []*sysin.ProvincesListModel, totalCount int, err error) } ISysAttachment interface { Delete(ctx context.Context, in sysin.AttachmentDeleteInp) error @@ -32,7 +41,7 @@ type ( Status(ctx context.Context, in sysin.AttachmentStatusInp) (err error) MaxSort(ctx context.Context, in sysin.AttachmentMaxSortInp) (*sysin.AttachmentMaxSortModel, error) View(ctx context.Context, in sysin.AttachmentViewInp) (res *sysin.AttachmentViewModel, err error) - List(ctx context.Context, in sysin.AttachmentListInp) (list []*sysin.AttachmentListModel, totalCount int64, err error) + List(ctx context.Context, in sysin.AttachmentListInp) (list []*sysin.AttachmentListModel, totalCount int, err error) Add(ctx context.Context, meta *sysin.UploadFileMeta, fullPath, drive string) (data *entity.SysAttachment, err error) } ISysBlacklist interface { @@ -41,7 +50,7 @@ type ( Status(ctx context.Context, in sysin.BlacklistStatusInp) (err error) MaxSort(ctx context.Context, in sysin.BlacklistMaxSortInp) (*sysin.BlacklistMaxSortModel, error) View(ctx context.Context, in sysin.BlacklistViewInp) (res *sysin.BlacklistViewModel, err error) - List(ctx context.Context, in sysin.BlacklistListInp) (list []*sysin.BlacklistListModel, totalCount int64, err error) + List(ctx context.Context, in sysin.BlacklistListInp) (list []*sysin.BlacklistListModel, totalCount int, err error) } ISysCron interface { StartCron(ctx context.Context) @@ -50,24 +59,7 @@ type ( Status(ctx context.Context, in sysin.CronStatusInp) (err error) MaxSort(ctx context.Context, in sysin.CronMaxSortInp) (*sysin.CronMaxSortModel, error) View(ctx context.Context, in sysin.CronViewInp) (res *sysin.CronViewModel, err error) - List(ctx context.Context, in sysin.CronListInp) (list []*sysin.CronListModel, totalCount int64, err error) - } - ISysDictData interface { - Delete(ctx context.Context, in sysin.DictDataDeleteInp) error - Edit(ctx context.Context, in sysin.DictDataEditInp) (err error) - List(ctx context.Context, in sysin.DictDataListInp) (list []*sysin.DictDataListModel, totalCount int64, err error) - } - ISysDictType interface { - Tree(ctx context.Context) (list []g.Map, err error) - Delete(ctx context.Context, in sysin.DictTypeDeleteInp) error - Edit(ctx context.Context, in sysin.DictTypeEditInp) (err error) - Select(ctx context.Context, in sysin.DictTypeSelectInp) (list sysin.DictTypeSelectModel, err error) - } - ISysConfig interface { - GetSmtp(ctx context.Context) (conf *model.EmailConfig, err error) - GetConfigByGroup(ctx context.Context, in sysin.GetConfigInp) (*sysin.GetConfigModel, error) - ConversionType(ctx context.Context, models *entity.SysConfig) (value interface{}, err error) - UpdateConfigByGroup(ctx context.Context, in sysin.UpdateConfigInp) error + List(ctx context.Context, in sysin.CronListInp) (list []*sysin.CronListModel, totalCount int, err error) } ISysCronGroup interface { Delete(ctx context.Context, in sysin.CronGroupDeleteInp) error @@ -75,108 +67,75 @@ type ( Status(ctx context.Context, in sysin.CronGroupStatusInp) (err error) MaxSort(ctx context.Context, in sysin.CronGroupMaxSortInp) (*sysin.CronGroupMaxSortModel, error) View(ctx context.Context, in sysin.CronGroupViewInp) (res *sysin.CronGroupViewModel, err error) - List(ctx context.Context, in sysin.CronGroupListInp) (list []*sysin.CronGroupListModel, totalCount int64, err error) + List(ctx context.Context, in sysin.CronGroupListInp) (list []*sysin.CronGroupListModel, totalCount int, err error) Select(ctx context.Context, in sysin.CronGroupSelectInp) (list sysin.CronGroupSelectModel, err error) } - ISysProvinces interface { - Delete(ctx context.Context, in sysin.ProvincesDeleteInp) error - Edit(ctx context.Context, in sysin.ProvincesEditInp) (err error) - Status(ctx context.Context, in sysin.ProvincesStatusInp) (err error) - MaxSort(ctx context.Context, in sysin.ProvincesMaxSortInp) (*sysin.ProvincesMaxSortModel, error) - View(ctx context.Context, in sysin.ProvincesViewInp) (res *sysin.ProvincesViewModel, err error) - List(ctx context.Context, in sysin.ProvincesListInp) (list []*sysin.ProvincesListModel, totalCount int64, err error) + ISysCurdDemo interface { + Model(ctx context.Context) *gdb.Model + List(ctx context.Context, in sysin.CurdDemoListInp) (list []*sysin.CurdDemoListModel, totalCount int, err error) + Export(ctx context.Context, in sysin.CurdDemoListInp) (err error) + Edit(ctx context.Context, in sysin.CurdDemoEditInp) (err error) + Delete(ctx context.Context, in sysin.CurdDemoDeleteInp) (err error) + MaxSort(ctx context.Context, in sysin.CurdDemoMaxSortInp) (res *sysin.CurdDemoMaxSortModel, err error) + View(ctx context.Context, in sysin.CurdDemoViewInp) (res *sysin.CurdDemoViewModel, err error) + Status(ctx context.Context, in sysin.CurdDemoStatusInp) (err error) + Switch(ctx context.Context, in sysin.CurdDemoSwitchInp) (err error) + } + ISysDictData interface { + Delete(ctx context.Context, in sysin.DictDataDeleteInp) error + Edit(ctx context.Context, in sysin.DictDataEditInp) (err error) + List(ctx context.Context, in sysin.DictDataListInp) (list []*sysin.DictDataListModel, totalCount int, err error) + Select(ctx context.Context, in sysin.DataSelectInp) (list sysin.DataSelectModel, err error) + } + ISysConfig interface { + GetLoadGenerate(ctx context.Context) (conf *model.GenerateConfig, err error) + GetSms(ctx context.Context) (conf *model.SmsConfig, err error) + GetGeo(ctx context.Context) (conf *model.GeoConfig, err error) + GetUpload(ctx context.Context) (conf *model.UploadConfig, err error) + GetSmtp(ctx context.Context) (conf *model.EmailConfig, err error) + GetLoadSSL(ctx context.Context) (conf *model.SSLConfig, err error) + GetLoadLog(ctx context.Context) (conf *model.LogConfig, err error) + GetConfigByGroup(ctx context.Context, in sysin.GetConfigInp) (*sysin.GetConfigModel, error) + ConversionType(ctx context.Context, models *entity.SysConfig) (value interface{}, err error) + UpdateConfigByGroup(ctx context.Context, in sysin.UpdateConfigInp) error + } + ISysDictType interface { + Tree(ctx context.Context) (list []g.Map, err error) + Delete(ctx context.Context, in sysin.DictTypeDeleteInp) error + Edit(ctx context.Context, in sysin.DictTypeEditInp) (err error) + Select(ctx context.Context, in sysin.DictTypeSelectInp) (list sysin.DictTypeSelectModel, err error) + TreeSelect(ctx context.Context, in sysin.DictTreeSelectInp) (list sysin.DictTreeSelectModel, err error) + } + ISysGenCodes interface { + Delete(ctx context.Context, in sysin.GenCodesDeleteInp) error + Edit(ctx context.Context, in sysin.GenCodesEditInp) (res *sysin.GenCodesEditModel, err error) + Status(ctx context.Context, in sysin.GenCodesStatusInp) (err error) + MaxSort(ctx context.Context, in sysin.GenCodesMaxSortInp) (*sysin.GenCodesMaxSortModel, error) + View(ctx context.Context, in sysin.GenCodesViewInp) (res *sysin.GenCodesViewModel, err error) + List(ctx context.Context, in sysin.GenCodesListInp) (list []*sysin.GenCodesListModel, totalCount int, err error) + Selects(ctx context.Context, in sysin.GenCodesSelectsInp) (res *sysin.GenCodesSelectsModel, err error) + TableSelect(ctx context.Context, in sysin.GenCodesTableSelectInp) (res []*sysin.GenCodesTableSelectModel, err error) + ColumnSelect(ctx context.Context, in sysin.GenCodesColumnSelectInp) (res []*sysin.GenCodesColumnSelectModel, err error) + ColumnList(ctx context.Context, in sysin.GenCodesColumnListInp) (res []*sysin.GenCodesColumnListModel, err error) + Preview(ctx context.Context, in sysin.GenCodesPreviewInp) (res *sysin.GenCodesPreviewModel, err error) + Build(ctx context.Context, in sysin.GenCodesBuildInp) (err error) } ) var ( localSysBlacklist ISysBlacklist localSysCron ISysCron - localSysDictData ISysDictData - localSysDictType ISysDictType - localSysLog ISysLog - localSysAttachment ISysAttachment localSysCronGroup ISysCronGroup + localSysCurdDemo ISysCurdDemo + localSysDictData ISysDictData + localSysLog ISysLog localSysProvinces ISysProvinces + localSysAttachment ISysAttachment + localSysDictType ISysDictType + localSysGenCodes ISysGenCodes localSysConfig ISysConfig ) -func SysConfig() ISysConfig { - if localSysConfig == nil { - panic("implement not found for interface ISysConfig, forgot register?") - } - return localSysConfig -} - -func RegisterSysConfig(i ISysConfig) { - localSysConfig = i -} - -func SysCronGroup() ISysCronGroup { - if localSysCronGroup == nil { - panic("implement not found for interface ISysCronGroup, forgot register?") - } - return localSysCronGroup -} - -func RegisterSysCronGroup(i ISysCronGroup) { - localSysCronGroup = i -} - -func SysProvinces() ISysProvinces { - if localSysProvinces == nil { - panic("implement not found for interface ISysProvinces, forgot register?") - } - return localSysProvinces -} - -func RegisterSysProvinces(i ISysProvinces) { - localSysProvinces = i -} - -func SysDictData() ISysDictData { - if localSysDictData == nil { - panic("implement not found for interface ISysDictData, forgot register?") - } - return localSysDictData -} - -func RegisterSysDictData(i ISysDictData) { - localSysDictData = i -} - -func SysDictType() ISysDictType { - if localSysDictType == nil { - panic("implement not found for interface ISysDictType, forgot register?") - } - return localSysDictType -} - -func RegisterSysDictType(i ISysDictType) { - localSysDictType = i -} - -func SysLog() ISysLog { - if localSysLog == nil { - panic("implement not found for interface ISysLog, forgot register?") - } - return localSysLog -} - -func RegisterSysLog(i ISysLog) { - localSysLog = i -} - -func SysAttachment() ISysAttachment { - if localSysAttachment == nil { - panic("implement not found for interface ISysAttachment, forgot register?") - } - return localSysAttachment -} - -func RegisterSysAttachment(i ISysAttachment) { - localSysAttachment = i -} - func SysBlacklist() ISysBlacklist { if localSysBlacklist == nil { panic("implement not found for interface ISysBlacklist, forgot register?") @@ -198,3 +157,102 @@ func SysCron() ISysCron { func RegisterSysCron(i ISysCron) { localSysCron = i } + +func SysCronGroup() ISysCronGroup { + if localSysCronGroup == nil { + panic("implement not found for interface ISysCronGroup, forgot register?") + } + return localSysCronGroup +} + +func RegisterSysCronGroup(i ISysCronGroup) { + localSysCronGroup = i +} + +func SysCurdDemo() ISysCurdDemo { + if localSysCurdDemo == nil { + panic("implement not found for interface ISysCurdDemo, forgot register?") + } + return localSysCurdDemo +} + +func RegisterSysCurdDemo(i ISysCurdDemo) { + localSysCurdDemo = i +} + +func SysDictData() ISysDictData { + if localSysDictData == nil { + panic("implement not found for interface ISysDictData, forgot register?") + } + return localSysDictData +} + +func RegisterSysDictData(i ISysDictData) { + localSysDictData = i +} + +func SysLog() ISysLog { + if localSysLog == nil { + panic("implement not found for interface ISysLog, forgot register?") + } + return localSysLog +} + +func RegisterSysLog(i ISysLog) { + localSysLog = i +} + +func SysProvinces() ISysProvinces { + if localSysProvinces == nil { + panic("implement not found for interface ISysProvinces, forgot register?") + } + return localSysProvinces +} + +func RegisterSysProvinces(i ISysProvinces) { + localSysProvinces = i +} + +func SysAttachment() ISysAttachment { + if localSysAttachment == nil { + panic("implement not found for interface ISysAttachment, forgot register?") + } + return localSysAttachment +} + +func RegisterSysAttachment(i ISysAttachment) { + localSysAttachment = i +} + +func SysDictType() ISysDictType { + if localSysDictType == nil { + panic("implement not found for interface ISysDictType, forgot register?") + } + return localSysDictType +} + +func RegisterSysDictType(i ISysDictType) { + localSysDictType = i +} + +func SysGenCodes() ISysGenCodes { + if localSysGenCodes == nil { + panic("implement not found for interface ISysGenCodes, forgot register?") + } + return localSysGenCodes +} + +func RegisterSysGenCodes(i ISysGenCodes) { + localSysGenCodes = i +} + +func SysConfig() ISysConfig { + if localSysConfig == nil { + panic("implement not found for interface ISysConfig, forgot register?") + } + return localSysConfig +} + +func RegisterSysConfig(i ISysConfig) { + localSysConfig = i +} diff --git a/server/internal/websocket/client.go b/server/internal/websocket/client.go index f4e2f25..6e982c5 100644 --- a/server/internal/websocket/client.go +++ b/server/internal/websocket/client.go @@ -9,13 +9,13 @@ package websocket import ( "context" "github.com/gogf/gf/v2/container/garray" + "github.com/gogf/gf/v2/errors/gcode" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/net/ghttp" "github.com/gogf/gf/v2/os/gctx" "github.com/gogf/gf/v2/os/gtime" "github.com/gogf/gf/v2/util/guid" "github.com/gorilla/websocket" - "hotgo/internal/consts" "hotgo/internal/library/contexts" "hotgo/internal/library/location" "hotgo/internal/model" @@ -164,12 +164,6 @@ func (c *Client) close() { return } c.SendClose = true - //if _, ok := <-c.Send; !ok { - // g.Log().Warningf(ctxManager, "close of closed channel, client.id:%v", c.ID) - //} else { - // // 关闭 chan - // close(c.Send) - //} c.closeSignal <- struct{}{} } @@ -187,7 +181,7 @@ func SendSuccess(client *Client, event string, data ...interface{}) { client.SendMsg(&WResponse{ Event: event, Data: d, - Code: consts.CodeOK, + Code: gcode.CodeOK.Code(), Timestamp: gtime.Now().Unix(), }) before(client) @@ -197,7 +191,7 @@ func SendSuccess(client *Client, event string, data ...interface{}) { func SendError(client *Client, event string, err error) { client.SendMsg(&WResponse{ Event: event, - Code: consts.CodeNil, + Code: gcode.CodeNil.Code(), ErrorMsg: err.Error(), Timestamp: gtime.Now().Unix(), }) diff --git a/server/internal/websocket/init.go b/server/internal/websocket/init.go index f4ffb4c..127f36f 100644 --- a/server/internal/websocket/init.go +++ b/server/internal/websocket/init.go @@ -31,7 +31,7 @@ var ( // Start 启动 func Start(c context.Context) { ctxManager = c - g.Log().Info(ctxManager, "启动:WebSocket") + g.Log().Debug(ctxManager, "start websocket..") go clientManager.start() go clientManager.ping() } diff --git a/server/internal/websocket/model.go b/server/internal/websocket/model.go index 703db53..1672665 100644 --- a/server/internal/websocket/model.go +++ b/server/internal/websocket/model.go @@ -18,7 +18,7 @@ type WRequest struct { type WResponse struct { Event string `json:"event"` // 事件名称 Data interface{} `json:"data,omitempty"` // 数据 - Code int64 `json:"code"` // 状态码 + Code int `json:"code"` // 状态码 ErrorMsg string `json:"errorMsg,omitempty"` // 错误消息 Timestamp int64 `json:"timestamp"` // 服务器时间 } diff --git a/server/main.go b/server/main.go index 63c0e54..622c7d0 100644 --- a/server/main.go +++ b/server/main.go @@ -10,6 +10,7 @@ import ( _ "hotgo/internal/packed" _ "github.com/gogf/gf/contrib/drivers/mysql/v2" + _ "github.com/gogf/gf/contrib/nosql/redis/v2" "github.com/gogf/gf/v2/os/gctx" "hotgo/internal/cmd" "hotgo/internal/global" diff --git a/server/manifest/config/config.example.yaml b/server/manifest/config/config.example.yaml index 58402f2..d5d0cff 100644 --- a/server/manifest/config/config.example.yaml +++ b/server/manifest/config/config.example.yaml @@ -1,11 +1,11 @@ # hotgo配置 hotgo: - debug: true # debug开关,开启后:接口出现错误时会输出堆栈信息,默认为true - ipMethod: "cz88" # IP归属地解析方法,可选:cz88|whois,默认为cz88 - wsAddr: "ws://填你的公网IP或本地IP:8000/socket" # 客户端websocket连接地址,如果项目在公网,请填写公网IP:运行端口 - isDemo: false # 是否為演示系統 false | true + debug: true # debug开关,开启后:接口出现错误时会输出堆栈信息,默认为true + ipMethod: "whois" # IP归属地解析方法,可选:cz88|whois,默认为whois + wsAddr: "ws://127.0.0.1:8000/socket" # 客户端websocket连接地址,如果项目在公网,请填写公网IP:运行端口 + isDemo: false # 是否為演示系統 false | true ssl: # https - switch: false # 是否开启https访问,需要配置sslCrtPath、sslKeyPath证书夹 + switch: false # 是否开启https访问,需要配置sslCrtPath、sslKeyPath证书夹 crtPath: "resource/ssl/server.crt" keyPath: "resource/ssl/server.key" log: # 全局请求日志 @@ -14,10 +14,11 @@ hotgo: module: [ "admin", "api", "default" ] # 需要记录的模块 skipCode: [ ] # 不记录的状态码,如: ["0", "-1"] admin: - superIds: [ 1,2 ] # 后台超管账号ID,通过ID验证超管 + superIds: [ 1,2,3 ] # 后台超管账号ID,通过ID验证超管 superRoleKey: "super" # 超管角色唯一标识符,通过角色验证超管 defaultPage: 10 # 列表分页默认加载数量 defaultPageSize: 1 # 列表分页默认加载页码 + maxSortIncrement: 10 # 最大排序值增量 # gf配置 @@ -41,7 +42,7 @@ server: stdout: true headerPrint: false ctxKeys: [ ] - path: "logs/logger" # 日志文件路径。默认为空,表示关闭,仅输出到终端 + path: "logs/logger" # 日志文件路径。默认为空,表示关闭,仅输出到终端 file: "{Y-m-d}.log" # 日志文件格式。默认为"{Y-m-d}.log" stdoutColorDisabled: true # 关闭终端的颜色打印。默认开启 writerColorEnable: true # 日志文件是否带上颜色。默认false,表示不带颜色 @@ -50,12 +51,14 @@ server: pprofEnabled: true # 是否开启PProf性能调试特性。默认为false pprofPattern: "/pprof" # 开启PProf时有效,表示PProf特性的页面访问路径,对当前Server绑定的所有域名有效。 + viewer: paths: "resource/template" defaultFile: "index.html" delimiters: ["@{", "}"] homeLayout: "home/index.html" + # 内容设置 setting: title: "HotGo" @@ -77,9 +80,14 @@ router: ] # 不需要验证权限的路由地址 exceptAuth: [ - "/member/info", # 登录用户信息 - "/role/dynamic", # 获取动态路由 - "/site/config", # 获取后台配置 + "/member/info", # 登录用户信息 + "/role/dynamic", # 获取动态路由 + "/site/config", # 获取后台配置 + "/notice/pullUnreadList", # 获取未读公告 + "/notice/readAll", # 设置全部已读公告 + "/notice/upRead", # 更新已读公告 + "/dictData/option", # 数据字典 + "/dictData/options", # 多个数据字典 ] # 接口 api: @@ -101,6 +109,7 @@ router: # 不需要验证登录的路由地址 exceptPath: [ ] + #JWT jwt: version: "1.0" # 版本号 @@ -118,7 +127,7 @@ queue: groupName: "hotgo" # mq群组名称 redis: address: "127.0.0.1:6379" # redis服务地址,默认为127.0.0.1:6379 - db: 0 # 指定redis库 + db: 2 # 指定redis库 pass: "" # redis密码 timeout: 0 # 队列超时时间(s) ,0为永不超时,当队列一直没有被消费到达超时时间则队列会被销毁 rocketmq: @@ -134,10 +143,11 @@ queue: redis: default: address: "127.0.0.1:6379" - db: "1" + db: "2" pass: "" idleTimeout: "20" + # Database. database: logger: @@ -146,4 +156,45 @@ database: default: link: "mysql:hotgo:hg123456.@tcp(127.0.0.1:3306)/hotgo?loc=Local&parseTime=true" debug: true - Prefix: "hg_" \ No newline at end of file + Prefix: "hg_" + + +# 生成代码 +hggen: + allowedIPs: ["127.0.0.1", "*"] # 白名单,*代表所有,只有允许的IP后台才能使用生成代码功能 + selectDbs: [ "default" ] # 可选生成表的数据库配置名称,支持多库 + disableTables : ["hg_sys_gen_codes","hg_admin_role_casbin"] # 禁用的表,禁用以后将不会在选择表中看到 + delimiters: ["@{", "}"] # 模板引擎变量分隔符号 + # 生成应用模型,所有生成模板允许自定义,可以参考default模板进行改造 + application: + # CRUD模板 + crud: + templates: + - group: "default" # 分组名称 + templatePath: "./resource/template/generate/default/curd" # 模板路径 + apiPath: "./api/backend" # gfApi生成路径 + controllerPath: "./internal/controller/backend/sys" # 控制器生成路径 + logicPath : "./internal/logic/sys" # 主要业务生成路径 + inputPath: "./internal/model/input/sysin" # 表单过滤器生成路径 + routerPath : "./internal/router/genrouter" # 生成路由表路径 + sqlPath : "./resource/data/generate" # 生成sql语句路径 + webApiPath: "../web/src/api" # webApi生成路径 + webViewsPath : "../web/src/views" # web页面生成路径 + + # 关系树列表模板 + tree: + templates: + - group: "default" + templatePath: "./resource/template/generate/default/tree" + + # 消息队列模板 + queue: + templates: + - group: "default" + templatePath: "./resource/template/generate/default/queue" + + # 定时任务模板 + cron: + templates: + - group: "default" + templatePath: "./resource/template/generate/default/cron" \ No newline at end of file diff --git a/server/resource/data/generate/curd_demo_menu.sql b/server/resource/data/generate/curd_demo_menu.sql new file mode 100644 index 0000000..4c719e5 --- /dev/null +++ b/server/resource/data/generate/curd_demo_menu.sql @@ -0,0 +1,71 @@ +-- hotgo自动生成菜单权限SQL 通常情况下只在首次生成代码时自动执行一次 +-- 如需再次执行请先手动删除生成的菜单权限和在SQL文件:E:\Users\Administrator\Desktop\gosrc\hotgo\server\resource\data\generate\curd_demo_menu.sql +-- Version: 2.1.0 +-- Date: 2023-01-18 15:19:42 +-- Link https://github.com/bufanyun/hotgo + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +SET AUTOCOMMIT = 0; +START TRANSACTION; + +-- +-- 数据库: `hotgo` +-- + +-- -------------------------------------------------------- + +-- +-- 插入表中的数据 `hg_admin_menu` +-- + + +SET @now := now(); + + +-- 菜单目录 +INSERT INTO `hg_admin_menu` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) VALUES (NULL, '2097', '生成演示', 'curdDemo', '/curdDemo', 'MenuOutlined', '1', '', '', '', 'ParentLayout', '1', '', '0', '0', '', '0', '0', '0', '1', '', '200', '', '1', @now, @now); + + +SET @dirId = LAST_INSERT_ID(); + + +-- 菜单页面 +-- 列表 +INSERT INTO `hg_admin_menu` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) VALUES (NULL, @dirId, '生成演示列表', 'curdDemoIndex', 'index', '', '2', '', '/curdDemo/list', '', '/curdDemo/index', '1', '', '0', '0', '', '0', '0', '0', '2', '', '10', '', '1', @now, @now); + + +SET @listId = LAST_INSERT_ID(); + +-- 详情 +INSERT INTO `hg_admin_menu` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) VALUES (NULL, @dirId, '生成演示详情', 'curdDemoView', 'view/:id?', '', '2', '', '/curdDemo/view', '', '/curdDemo/view', '0', 'curdDemoIndex', '0', '0', '', '0', '1', '0', '2', '', '20', '', '1', @now, @now); + + +-- 菜单按钮 + +-- 编辑 +INSERT INTO `hg_admin_menu` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) VALUES (NULL, @listId, '编辑/新增生成演示', 'curdDemoEdit', '', '', '3', '', '/curdDemo/edit', '', '', '1', '', '0', '0', '', '0', '1', '0', '3', '', '10', '', '1', @now, @now); + + +SET @editId = LAST_INSERT_ID(); + +-- 获取最大排序 +INSERT INTO `hg_admin_menu` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) VALUES (NULL, @editId, '获取生成演示最大排序', 'curdDemoMaxSort', '', '', '3', '', '/curdDemo/maxSort', '', '', '1', '', '0', '0', '', '0', '0', '0', '3', '', '10', '', '1', @now, @now); + + +-- 删除 +INSERT INTO `hg_admin_menu` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) VALUES (NULL, @listId, '删除生成演示', 'curdDemoDelete', '', '', '3', '', '/curdDemo/delete', '', '', '1', '', '0', '0', '', '0', '0', '0', '3', '', '10', '', '1', @now, @now); + + +-- 更新状态 +INSERT INTO `hg_admin_menu` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) VALUES (NULL, @listId, '修改生成演示状态', 'curdDemoStatus', '', '', '3', '', '/curdDemo/status', '', '', '1', '', '0', '0', '', '0', '0', '0', '3', '', '10', '', '1', @now, @now); + + +-- 操作开关 +INSERT INTO `hg_admin_menu` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) VALUES (NULL, @listId, '操作生成演示开关', 'curdDemoSwitch', '', '', '3', '', '/curdDemo/switch', '', '', '1', '', '0', '0', '', '0', '0', '0', '3', '', '10', '', '1', @now, @now); + + +-- 导出 +INSERT INTO `hg_admin_menu` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) VALUES (NULL, @listId, '导出生成演示', 'curdDemoExport', '', '', '3', '', '/curdDemo/export', '', '', '1', '', '0', '0', '', '0', '0', '0', '3', '', '10', '', '1', @now, @now); + + +COMMIT; \ No newline at end of file diff --git a/server/resource/data/hotgo.sql b/server/resource/data/hotgo.sql index 8e942a0..0c329d4 100644 --- a/server/resource/data/hotgo.sql +++ b/server/resource/data/hotgo.sql @@ -1,13 +1,14 @@ -- phpMyAdmin SQL Dump --- version 5.0.4 +-- version 4.9.0.1 -- https://www.phpmyadmin.net/ -- --- 主机: localhost --- 生成日期: 2022-11-24 21:28:02 --- 服务器版本: 8.0.20 --- PHP 版本: 7.4.30 +-- 主机: localhost:3306 +-- 生成日期: 2023-01-18 16:03:59 +-- 服务器版本: 5.7.38-log +-- PHP 版本: 5.6.40 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +SET AUTOCOMMIT = 0; START TRANSACTION; SET time_zone = "+00:00"; @@ -28,26 +29,26 @@ SET time_zone = "+00:00"; -- CREATE TABLE `hg_admin_dept` ( - `id` bigint NOT NULL COMMENT '部门id', - `pid` bigint DEFAULT '0' COMMENT '父部门id', - `name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '部门名称', + `id` bigint(20) NOT NULL COMMENT '部门ID', + `pid` bigint(20) DEFAULT '0' COMMENT '父部门ID', + `name` varchar(32) DEFAULT NULL COMMENT '部门名称', `code` varchar(255) DEFAULT NULL COMMENT '部门编码', - `type` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '部门类型', - `leader` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '负责人', - `phone` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '联系电话', - `email` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '邮箱', - `sort` int DEFAULT '0' COMMENT '排序', + `type` varchar(10) DEFAULT NULL COMMENT '部门类型', + `leader` varchar(32) DEFAULT NULL COMMENT '负责人', + `phone` varchar(11) DEFAULT NULL COMMENT '联系电话', + `email` varchar(64) DEFAULT NULL COMMENT '邮箱', + `sort` int(11) DEFAULT '0' COMMENT '排序', `status` tinyint(1) DEFAULT '1' COMMENT '部门状态', `created_at` datetime DEFAULT NULL COMMENT '创建时间', `updated_at` datetime DEFAULT NULL COMMENT '更新时间' -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='部门表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台_部门'; -- -- 转存表中的数据 `hg_admin_dept` -- INSERT INTO `hg_admin_dept` (`id`, `pid`, `name`, `code`, `type`, `leader`, `phone`, `email`, `sort`, `status`, `created_at`, `updated_at`) VALUES -(100, 0, 'hotgo', 'hotgo', '', 'hotgo', '15303830571', '133814250@qq.com', 0, 1, '2022-01-04 09:54:52', '2022-11-23 22:07:42'), +(100, 0, 'hotgo', 'hotgo', '', 'hotgo', '15303830571', '133814250@qq.com', 0, 1, '2022-01-04 09:54:52', '2023-01-10 17:28:35'), (101, 100, '深圳总公司', 'shenzhen', 'company', 'hotgo', '15888888888', 'hotgo@qq.com', 1, 1, '2022-01-04 17:54:52', NULL), (102, 100, '长沙分公司', 'chansgha', '', 'hotgo', '15888888888', 'hotgo@qq.com', 2, 1, '2022-01-04 01:54:52', '2022-08-14 14:07:29'), (103, 101, '研发部门', 'yanfa', 'dept', 'hotgo', '15888888888', 'hotgo@qq.com', 1, 1, '2022-01-04 17:54:52', NULL), @@ -64,50 +65,45 @@ INSERT INTO `hg_admin_dept` (`id`, `pid`, `name`, `code`, `type`, `leader`, `pho -- CREATE TABLE `hg_admin_member` ( - `id` bigint NOT NULL, - `dept_id` bigint DEFAULT '0' COMMENT '部门ID', - `username` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '帐号', - `password_hash` char(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '密码', - `salt` char(16) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '密码盐', - `auth_key` char(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '授权令牌', - `password_reset_token` varchar(150) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '密码重置令牌', - `type` char(16) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '1' COMMENT '1:普通管理员;10超级管理员', - `realname` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '真实姓名', - `avatar` char(150) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '头像', - `sex` tinyint(1) DEFAULT '0' COMMENT '性别[1:男;2:女;3:未知]', - `qq` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT 'qq', - `email` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '邮箱', + `id` bigint(20) NOT NULL COMMENT '管理员ID', + `dept_id` bigint(20) DEFAULT '0' COMMENT '部门ID', + `role_id` bigint(20) DEFAULT '10' COMMENT '角色ID', + `real_name` varchar(32) DEFAULT '' COMMENT '真实姓名', + `username` varchar(20) NOT NULL DEFAULT '' COMMENT '帐号', + `password_hash` char(32) NOT NULL DEFAULT '' COMMENT '密码', + `salt` char(16) NOT NULL COMMENT '密码盐', + `auth_key` char(32) NOT NULL DEFAULT '' COMMENT '授权令牌', + `password_reset_token` varchar(150) DEFAULT '' COMMENT '密码重置令牌', + `avatar` char(150) DEFAULT '' COMMENT '头像', + `sex` tinyint(1) DEFAULT '1' COMMENT '性别', + `qq` varchar(20) DEFAULT '' COMMENT 'qq', + `email` varchar(60) DEFAULT '' COMMENT '邮箱', + `mobile` varchar(20) DEFAULT '' COMMENT '手机号码', `birthday` date DEFAULT NULL COMMENT '生日', - `province_id` int DEFAULT '0' COMMENT '省', - `city_id` int DEFAULT '0' COMMENT '城市', - `area_id` int DEFAULT '0' COMMENT '地区', - `address` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '默认地址', - `mobile` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '手机号码', - `home_phone` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '家庭号码', - `dingtalk_robot_token` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '钉钉机器人token', - `visit_count` smallint UNSIGNED DEFAULT '0' COMMENT '访问次数', - `last_time` int DEFAULT '0' COMMENT '最后一次登录时间', - `last_ip` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '最后一次登录ip', - `role` bigint DEFAULT '10' COMMENT '权限', - `pid` bigint NOT NULL COMMENT '上级ID', - `level` int NOT NULL COMMENT '等级', + `province_id` bigint(20) DEFAULT '0' COMMENT '省编码', + `city_id` bigint(20) DEFAULT '0' COMMENT '城市编码', + `county_id` bigint(20) DEFAULT '0' COMMENT '区域编码', + `address` varchar(100) DEFAULT '' COMMENT '联系地址', + `visit_count` smallint(5) UNSIGNED DEFAULT '0' COMMENT '访问次数', + `last_time` int(11) DEFAULT '0' COMMENT '最后一次登录时间', + `last_ip` varchar(64) DEFAULT '' COMMENT '最后一次登录ip', + `pid` bigint(20) NOT NULL COMMENT '上级管理员ID', + `level` int(11) DEFAULT '1' COMMENT '关系树等级', `tree` varchar(512) NOT NULL COMMENT '关系树', - `remark` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '备注', + `remark` varchar(255) DEFAULT NULL COMMENT '备注', `status` tinyint(1) DEFAULT '1' COMMENT '状态', `created_at` datetime DEFAULT NULL COMMENT '创建时间', `updated_at` datetime DEFAULT NULL COMMENT '修改时间' -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统_后台管理员表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台_管理员'; -- -- 转存表中的数据 `hg_admin_member` -- -INSERT INTO `hg_admin_member` (`id`, `dept_id`, `username`, `password_hash`, `salt`, `auth_key`, `password_reset_token`, `type`, `realname`, `avatar`, `sex`, `qq`, `email`, `birthday`, `province_id`, `city_id`, `area_id`, `address`, `mobile`, `home_phone`, `dingtalk_robot_token`, `visit_count`, `last_time`, `last_ip`, `role`, `pid`, `level`, `tree`, `remark`, `status`, `created_at`, `updated_at`) VALUES -(1, 103, 'admin', 'a7c588fffeb2c1d99b29879d7fe97c78', '6541561', '725e47d1fb561ce2eca75c66c71c83e7', '', '10', '孟帅', 'http://alioss.qvnidaye.com//images/2021/03/12/image_1615529198_vMK4kwq2.jpg', 1, '133814250', '133814250@qq.com', '2016-04-16', 370000, 371100, 371102, '大潮街道666号', '15303830571', '', '', 387, 1669293094, '2409:8a44:75a:e880:b045:20f9:1644:3ae9', 1, 0, 0, '', NULL, 1, '2002-02-12 17:59:45', '2022-11-24 20:31:34'), -(3, 100, 'test', 'a7c588fffeb2c1d99b29879d7fe97c78', '6541561', 'c995915f8590b31c5c6d87aefb66ae8f', '', '10', '测试账号', 'http://alioss.qvnidaye.com//images/2021/03/12/image_1615529198_vMK4kwq2.jpg', 1, '', 'c@qq.cc', '2016-04-13', 370000, 371100, 371102, '大潮街道666号', '15303888888', '', '', 291, 1669104322, '42.194.151.158', 2, 0, 0, '', '', 1, '2022-02-11 17:59:45', '2022-11-22 16:05:22'), -(4, 108, 'hahah', '084945818ead14a0e3fc9fb293f93354', 'vnDsdh', '', '', '1', '小哈', '', 2, '', '111112@qq.com', NULL, 0, 0, 0, '', '15303888889', '', '', 0, 0, '', 2, 0, 0, '', '紫霞仙子', 2, '2022-08-21 10:12:14', '2022-05-15 22:32:40'), -(5, 103, '123456', '57979002c3587457e45abe9eceb8fbfd', 'cAZKmQ', '', '', '1', '123456', '', 1, '', '', NULL, 0, 0, 0, '', '', '', '', 0, 0, '', 1, 0, 0, '', '', 1, '2022-08-15 15:23:17', '2022-08-15 23:25:59'), -(6, 107, 'demo', 'cfd758af6c0824133956294a4571bcdd', 'e9SpWd', '', '', '1', 'tert', '', 2, '', '111111@qq.com', NULL, 0, 0, 0, '', '15303888887', '', '', 0, 0, '', 2, 0, 0, '', '备注', 2, '2022-08-17 12:04:00', '2022-11-23 21:50:58'); +INSERT INTO `hg_admin_member` (`id`, `dept_id`, `role_id`, `real_name`, `username`, `password_hash`, `salt`, `auth_key`, `password_reset_token`, `avatar`, `sex`, `qq`, `email`, `mobile`, `birthday`, `province_id`, `city_id`, `county_id`, `address`, `visit_count`, `last_time`, `last_ip`, `pid`, `level`, `tree`, `remark`, `status`, `created_at`, `updated_at`) VALUES +(1, 103, 1, '孟帅', 'admin', 'a7c588fffeb2c1d99b29879d7fe97c78', '6541561', '2673d5e2dd27d953be8f140cd3888c48', '', 'http://alioss.qvnidaye.com//images/2021/03/12/image_1615529198_vMK4kwq2.jpg', 1, '133814250', '133814250@qq.com', '15303830571', '2016-04-16', 370000, 371100, 371102, '大潮街道666号', 401, 1673573706, '127.0.0.1', 0, 1, '', NULL, 1, '2002-02-12 17:59:45', '2023-01-13 09:35:06'), +(3, 100, 2, '测试账号', 'test', 'a7c588fffeb2c1d99b29879d7fe97c78', '6541561', '2c7db9eca4ed02a718e794ba4c904f56', '', 'http://alioss.qvnidaye.com//images/2021/03/12/image_1615529198_vMK4kwq2.jpg', 1, '', 'c@qq.cc', '15303888888', '2016-04-13', 370000, 371100, 371102, '大潮街道666号', 292, 1673340420, '127.0.0.1', 1, 2, 'tr_1 ', '', 1, '2022-02-11 17:59:45', '2023-01-10 16:47:00'), +(7, 105, 2, '阿萌', 'ameng', '359bc24aab1b4d91ca4e6c02f07d9161', 'slyKlt', '65925a850040c95dc7c025ed4ed78ae6', '', '', 1, '', '', '', NULL, 0, 0, 0, '', 5, 1673438055, '127.0.0.1', 1, 2, 'tr_1 ', '', 1, '2023-01-10 16:48:21', '2023-01-18 16:01:25'); -- -------------------------------------------------------- @@ -116,9 +112,9 @@ INSERT INTO `hg_admin_member` (`id`, `dept_id`, `username`, `password_hash`, `sa -- CREATE TABLE `hg_admin_member_post` ( - `member_id` bigint NOT NULL COMMENT '用户ID', - `post_id` bigint NOT NULL COMMENT '岗位ID' -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户与岗位关联表'; + `member_id` bigint(20) NOT NULL COMMENT '管理员ID', + `post_id` bigint(20) NOT NULL COMMENT '岗位ID' +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台_用户岗位关联'; -- -- 转存表中的数据 `hg_admin_member_post` @@ -126,15 +122,9 @@ CREATE TABLE `hg_admin_member_post` ( INSERT INTO `hg_admin_member_post` (`member_id`, `post_id`) VALUES (1, 1), -(2, 2), (3, 4), -(4, 3), -(5, 4), -(6, 3), (7, 3), -(7, 4), -(8, 3), -(8, 4); +(7, 4); -- -------------------------------------------------------- @@ -143,9 +133,9 @@ INSERT INTO `hg_admin_member_post` (`member_id`, `post_id`) VALUES -- CREATE TABLE `hg_admin_member_role` ( - `member_id` bigint NOT NULL COMMENT '用户ID', - `role_id` bigint NOT NULL COMMENT '角色ID' -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户和角色关联表'; + `member_id` bigint(20) NOT NULL COMMENT '管理员ID', + `role_id` bigint(20) NOT NULL COMMENT '角色ID' +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台_用户角色关联'; -- -- 转存表中的数据 `hg_admin_member_role` @@ -162,33 +152,33 @@ INSERT INTO `hg_admin_member_role` (`member_id`, `role_id`) VALUES -- CREATE TABLE `hg_admin_menu` ( - `id` bigint NOT NULL COMMENT '菜单ID', - `pid` bigint DEFAULT '0' COMMENT '父菜单ID', - `title` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '菜单名称', - `name` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '名称编码', - `path` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '路由地址', - `icon` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '菜单图标', + `id` bigint(20) NOT NULL COMMENT '菜单ID', + `pid` bigint(20) DEFAULT '0' COMMENT '父菜单ID', + `title` varchar(64) NOT NULL COMMENT '菜单名称', + `name` varchar(128) NOT NULL COMMENT '名称编码', + `path` varchar(200) DEFAULT NULL COMMENT '路由地址', + `icon` varchar(128) DEFAULT NULL COMMENT '菜单图标', `type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '菜单类型(1目录 2菜单 3按钮)', - `redirect` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '重定向地址', - `permissions` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '菜单包含权限集合', - `permission_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '权限名称', - `component` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '组件路径', + `redirect` varchar(255) DEFAULT NULL COMMENT '重定向地址', + `permissions` varchar(255) DEFAULT NULL COMMENT '菜单包含权限集合', + `permission_name` varchar(64) DEFAULT NULL COMMENT '权限名称', + `component` varchar(255) NOT NULL COMMENT '组件路径', `always_show` tinyint(1) DEFAULT '0' COMMENT '取消自动计算根路由模式', - `active_menu` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '高亮菜单编码', + `active_menu` varchar(255) DEFAULT NULL COMMENT '高亮菜单编码', `is_root` tinyint(1) DEFAULT '0' COMMENT '是否跟路由', `is_frame` tinyint(1) DEFAULT '1' COMMENT '是否内嵌', - `frame_src` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '内联外部地址', + `frame_src` varchar(512) DEFAULT NULL COMMENT '内联外部地址', `keep_alive` tinyint(1) DEFAULT '0' COMMENT '缓存该路由', `hidden` tinyint(1) DEFAULT '0' COMMENT '是否隐藏', `affix` tinyint(1) DEFAULT '0' COMMENT '是否固定', - `level` int NOT NULL DEFAULT '1' COMMENT '级别', - `tree` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '树', - `sort` int DEFAULT '0' COMMENT '排序', - `remark` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '备注', + `level` int(11) NOT NULL DEFAULT '1' COMMENT '关系树等级', + `tree` varchar(255) NOT NULL COMMENT '关系树', + `sort` int(11) DEFAULT '0' COMMENT '排序', + `remark` varchar(255) DEFAULT NULL COMMENT '备注', `status` tinyint(1) DEFAULT '1' COMMENT '菜单状态', `created_at` datetime DEFAULT NULL COMMENT '创建时间', `updated_at` datetime DEFAULT NULL COMMENT '更新时间' -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='菜单权限表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台_菜单权限'; -- -- 转存表中的数据 `hg_admin_menu` @@ -197,22 +187,22 @@ CREATE TABLE `hg_admin_menu` ( INSERT INTO `hg_admin_menu` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) VALUES (2047, 0, 'Dashboard', 'Dashboard', '/dashboard', 'DashboardOutlined', 1, '/dashboard/console', 'dashboard', '控制台', 'LAYOUT', 0, NULL, 0, 1, NULL, 0, 0, 0, 1, '', 10, '这是一个备注..', 1, '2022-07-17 11:40:03', '2022-07-17 11:40:03'), (2048, 2047, '主控台', 'dashboard_console', 'console', '', 2, '', '/console/stat', '主控台', '/dashboard/console/console', 0, '', 0, 1, '', 0, 0, 0, 2, '', 20, '', 1, '2022-07-17 11:45:09', '2022-11-22 11:32:30'), -(2049, 2047, '监控页', 'dashboard_monitor', 'monitor', NULL, 2, NULL, 'dashboard_monitor', '监控页', '/dashboard/monitor/monitor', 0, NULL, 0, 1, NULL, 0, 0, 0, 2, '', 30, NULL, 2, '2022-07-17 11:45:09', '2022-07-17 11:45:12'), +(2049, 2047, '监控页', 'dashboard_monitor', 'monitor', '', 2, '', 'dashboard_monitor', '监控页', '/dashboard/monitor/monitor', 0, '', 0, 1, '', 0, 0, 0, 2, '', 30, '', 1, '2022-07-17 11:45:09', '2023-01-10 14:41:54'), (2050, 2047, '工作台', 'dashboard_workplace', 'workplace', NULL, 2, NULL, 'dashboard_workplace', '工作台', '/dashboard/workplace/workplace', 0, NULL, 0, 1, NULL, 0, 0, 0, 2, '', 40, NULL, 1, '2022-07-17 11:45:09', '2022-07-17 11:45:12'), (2061, 0, '组织管理', 'Org', '/org', 'AppstoreOutlined', 1, '/org/user/user', '', '', 'LAYOUT', 0, '', 0, 0, '', 0, 0, 0, 1, '', 20, '', 1, '2022-09-16 06:08:19', '2022-09-16 17:16:37'), (2062, 2061, '后台用户', 'org_user', 'user', '', 2, '', '/dept/list,/post/list,/role/list,/member/list', '', '/org/user/user', 0, '', 0, 0, '', 0, 0, 0, 2, '', 10, '', 1, '2022-09-16 06:09:25', '2022-11-22 16:52:14'), (2063, 2061, '部门管理', 'org_dept', 'dept', '', 2, '', '', '', '/org/dept/dept', 0, '', 0, 0, '', 0, 0, 0, 2, '', 20, '', 1, '2022-09-16 14:10:12', '2022-09-16 14:10:12'), (2064, 2061, '岗位管理', 'org_post', 'post', '', 2, '', '', '', '/org/post/post', 0, '', 0, 0, '', 0, 0, 0, 2, '', 30, '', 1, '2022-09-16 14:11:05', '2022-09-16 14:11:05'), -(2065, 0, '权限管理', 'Permission', '/permission', 'KeyOutline', 1, '/permission/menu', '', '', 'LAYOUT', 1, '', 0, 0, '', 0, 0, 0, 1, '', 40, '', 1, '2022-09-15 22:08:19', '2022-09-16 17:30:18'), +(2065, 0, '权限管理', 'Permission', '/permission', 'SafetyCertificateOutlined', 1, '/permission/menu', '', '', 'LAYOUT', 1, '', 0, 0, '', 0, 0, 0, 1, '', 40, '', 1, '2022-09-15 22:08:19', '2023-01-10 17:17:53'), (2066, 2065, '菜单权限', 'permission_menu', 'menu', '', 2, '', '/menu/list', '', '/permission/menu/menu', 0, '', 0, 0, '', 0, 0, 0, 2, '', 10, '', 1, '2022-09-16 06:09:25', '2022-11-22 16:34:12'), (2067, 2065, '角色权限', 'permission_role', 'role', '', 2, '', '/role/list', '', '/permission/role/role', 0, '', 0, 0, '', 0, 0, 0, 2, '', 10, '', 1, '2022-09-15 22:09:25', '2022-11-22 16:34:01'), -(2068, 0, '系统设置', 'System', '/system', 'OptionsOutline', 1, '/system/config', '', '', 'LAYOUT', 1, '', 0, 0, '', 0, 0, 0, 1, '', 30, '', 1, '2022-09-15 09:17:57', '2022-09-16 17:30:08'), +(2068, 0, '系统设置', 'System', '/system', 'SettingOutlined', 1, '/system/config', '', '', 'LAYOUT', 1, '', 0, 0, '', 0, 0, 0, 1, '', 30, '', 1, '2022-09-15 09:17:57', '2023-01-10 17:16:41'), (2069, 2068, '配置管理', 'system_config', 'config', '', 2, '', '', '', '/system/config/system', 0, '', 0, 0, '', 0, 0, 0, 2, '', 10, '', 1, '2022-09-16 01:19:01', '2022-09-16 17:30:05'), (2070, 2068, '字典管理', 'system_dict', 'dict', '', 2, '', '', '', '/system/dict/index', 1, '', 0, 0, '', 0, 0, 0, 2, '', 20, '', 1, '2022-09-16 17:33:05', '2022-09-16 17:33:05'), (2071, 2068, '定时任务', 'system_cron', 'cron', '', 2, '', '', '', '/system/cron/index', 1, '', 0, 0, '', 0, 0, 0, 2, '', 30, '', 1, '2022-09-16 17:33:34', '2022-09-16 17:33:34'), (2072, 2068, '黑名单', 'system_blacklist', 'blacklist', '', 2, '', '', '', '/system/blacklist/index', 1, '', 0, 0, '', 0, 0, 0, 2, '', 40, '', 1, '2022-09-16 17:34:01', '2022-09-16 17:34:01'), (2073, 2068, '个人设置', 'setting_account', 'account', '', 2, '', '', '', '/setting/account/account', 1, '', 0, 0, '', 0, 0, 0, 2, '', 50, '', 1, '2022-09-16 17:34:35', '2022-09-16 17:34:35'), -(2074, 0, '日志管理', 'Logs', '/log', 'LogoBuffer', 1, '', '', '', 'LAYOUT', 1, '', 0, 0, '', 0, 0, 0, 1, '', 60, '', 1, '2022-09-16 01:38:32', '2022-09-16 21:30:06'), +(2074, 0, '日志管理', 'Logs', '/log', 'UnorderedListOutlined', 1, '', '', '', 'LAYOUT', 1, '', 0, 0, '', 0, 0, 0, 1, '', 60, '', 1, '2022-09-16 01:38:32', '2023-01-10 17:19:46'), (2075, 2074, '全局日志', 'log', 'log', '', 1, '/log/log/index', '', '', 'ParentLayout', 0, '', 0, 0, '', 0, 0, 0, 2, '', 61, '', 1, '2022-09-09 17:39:16', '2022-09-18 17:21:57'), (2076, 2074, '登录日志', 'login_log', 'login', '', 1, '/log/login/index', '', '', 'ParentLayout', 0, '', 0, 0, '', 0, 0, 0, 2, '', 65, '', 1, '2022-09-15 20:04:20', '2022-09-17 10:43:22'), (2077, 2075, '全局日志详情', 'log_view', 'view/:id?', '', 2, '', '/log/view', '', '/log/log/view', 0, 'log', 0, 0, '', 0, 1, 0, 3, '', 62, '', 1, '2022-09-14 20:07:04', '2022-11-23 22:12:27'), @@ -225,32 +215,45 @@ INSERT INTO `hg_admin_menu` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type (2087, 2074, '系统日志', 'monitor_serve_log', 'serve_log', '', 1, '/log/serve_log/index', '', '', 'ParentLayout', 1, '', 0, 0, '', 0, 0, 0, 2, '', 10, '', 1, '2022-09-18 20:59:28', '2022-09-18 20:59:28'), (2088, 2087, '日志详情', 'monitor_serve_log_view', 'view/:id?', '', 2, '', '', '', '/monitor/serve-log/view', 0, 'monitor_serve_log', 0, 0, '', 0, 1, 0, 2, '', 62, '', 1, '2022-09-14 20:07:04', '2022-09-17 10:43:38'), (2089, 2087, '日志列表', 'monitor_serve_log_index', 'index', '', 2, '', '', '', '/monitor/serve-log/index', 0, 'monitor_serve_log', 0, 0, '', 0, 1, 0, 2, '', 61, '', 1, '2022-09-15 04:38:33', '2022-09-18 13:14:27'), -(2090, 0, '系统监控', 'Monitors', '/monitor', 'TimerOutline', 1, '', '', '', 'LAYOUT', 1, '', 0, 0, '', 0, 0, 0, 1, '', 80, '', 1, '2022-09-15 17:38:32', '2022-09-18 21:23:01'), +(2090, 0, '系统监控', 'Monitors', '/monitor', 'FundProjectionScreenOutlined', 1, '', '', '', 'LAYOUT', 1, '', 0, 0, '', 0, 0, 0, 1, '', 80, '', 1, '2022-09-15 17:38:32', '2023-01-10 17:21:15'), (2091, 2090, '在线用户', 'monitor_online', 'online', '', 2, '', '', '', '/monitor/online/index', 1, '', 0, 0, '', 0, 0, 0, 2, '', 10, '', 1, '2022-09-18 21:23:36', '2022-09-18 21:23:36'), (2092, 2090, '服务监控', 'monitor_serve_monitor', 'serve_monitor', '', 2, '', '', '', '/monitor/serve-monitor/index', 1, '', 0, 0, '', 0, 0, 0, 2, '', 10, '', 1, '2022-09-18 21:23:36', '2022-09-18 21:23:36'), -(2093, 0, '系统应用', 'Applys', '/apply', 'EaselOutline', 1, '/apply/notice', '', '', 'LAYOUT', 1, '', 0, 0, '', 0, 0, 0, 1, '', 100, '', 1, '2022-09-18 21:29:53', '2022-09-18 21:29:53'), +(2093, 0, '系统应用', 'Applys', '/apply', 'CodeSandboxOutlined', 1, '/apply/notice', '', '', 'LAYOUT', 1, '', 0, 0, '', 0, 0, 0, 1, '', 100, '', 1, '2022-09-18 21:29:53', '2023-01-10 17:27:03'), (2094, 2093, '通知公告', 'apply_notice', 'notice', '', 2, '', '/notice/list', '', '/apply/notice/index', 1, '', 0, 0, '', 0, 0, 0, 2, '', 10, '', 1, '2022-09-18 21:30:19', '2022-11-23 22:12:51'), (2095, 2093, '附件管理', 'apply_attachment', 'attachment', '', 2, '', '/attachment/list', '', '/apply/attachment/index', 1, '', 0, 0, '', 0, 0, 0, 2, '', 10, '', 1, '2022-09-18 21:30:40', '2022-11-23 22:13:06'), (2096, 2093, '地区编码', 'apply_provinces', 'provinces', '', 2, '', '/provinces/list', '', '/apply/provinces/index', 1, '', 0, 0, '', 0, 0, 0, 2, '', 10, '', 1, '2022-09-18 21:31:01', '2022-11-23 22:19:52'), -(2097, 0, '开发工具', 'Develops', '/develop', 'CodeSlashOutline', 1, '/develop/code', '', '', 'LAYOUT', 1, '', 0, 0, '', 0, 0, 0, 1, '', 120, '', 1, '2022-09-18 21:32:27', '2022-09-18 21:32:27'), +(2097, 0, '开发工具', 'Develops', '/develop', 'CodeOutlined', 1, '/develop/code', '', '', 'LAYOUT', 1, '', 0, 0, '', 0, 0, 0, 1, '', 120, '', 1, '2022-09-18 21:32:27', '2023-01-10 17:23:25'), (2098, 2097, '代码生成', 'develop_code', 'code', '', 2, '', '', '', '/develop/code/index', 1, '', 0, 0, '', 0, 0, 0, 2, '', 10, '', 1, '2022-09-18 21:32:46', '2022-09-18 21:32:46'), -(2099, 2120, 'API文档', 'http://hotgo.facms.cn/swagger', '/docs', 'DocumentTextOutline', 1, '', '', '', 'LAYOUT', 1, '', 0, 0, '', 0, 0, 0, 2, '', 1000, '', 1, '2022-09-18 21:34:09', '2022-11-24 00:08:40'), -(2100, 2120, 'NaiveUi文档', 'https://www.naiveui.com', '/naiveui', 'DocumentTextOutline', 1, '', '', '', 'LAYOUT', 1, '', 0, 0, '', 0, 0, 0, 2, '', 1100, '', 1, '2022-09-18 21:35:17', '2022-11-24 00:08:42'), -(2101, 2120, 'naiveAdmin文档', 'https://naive-ui-admin-docs.vercel.app/', '/naive-ui-admin', 'DocumentTextOutline', 1, '', '', '', 'LAYOUT', 1, '', 0, 0, '', 0, 0, 0, 2, '', 1200, '', 1, '2022-09-18 21:36:05', '2022-11-24 00:08:46'), +(2099, 2120, 'API文档', 'http://hotgo.facms.cn/swagger', '/docs', '', 1, '', '', '', 'LAYOUT', 1, '', 0, 0, '', 0, 0, 0, 2, '', 1000, '', 1, '2022-09-18 21:34:09', '2023-01-10 17:24:27'), +(2100, 2120, 'NaiveUi文档', 'https://www.naiveui.com', '/naiveui', '', 1, '', '', '', 'LAYOUT', 1, '', 0, 0, '', 0, 0, 0, 2, '', 1100, '', 1, '2022-09-18 21:35:17', '2023-01-10 17:24:40'), +(2101, 2120, 'naiveAdmin文档', 'https://naive-ui-admin-docs.vercel.app/', '/naive-ui-admin', '', 1, '', '', '', 'LAYOUT', 1, '', 0, 0, '', 0, 0, 0, 2, '', 1200, '', 1, '2022-09-18 21:36:05', '2023-01-10 17:24:34'), (2102, 0, '关于', 'about', '/about', 'ProjectOutlined', 1, '/about/index', '', '', 'LAYOUT', 1, 'about_index', 1, 0, '', 0, 0, 0, 1, '', 9000, '', 1, '2022-09-18 13:37:04', '2022-11-24 00:09:05'), (2103, 2102, '关于详情', 'about_index', 'index', '', 2, '', '', '', '/about/index', 1, 'about_index', 0, 0, '', 0, 1, 0, 2, '', 10, '', 1, '2022-09-18 13:38:00', '2022-09-18 21:38:25'), -(2109, 2062, '编辑用户', 'org_user_edit', 'user', '', 3, '', '/member/edit', '', '/', 1, '', 0, 0, '', 0, 1, 0, 3, '', 10, '', 1, '2022-11-22 23:49:17', '2022-11-23 21:51:07'), +(2109, 2062, '编辑用户', 'org_user_edit', '', '', 3, '', '/member/edit', '', '/', 1, '', 0, 0, '', 0, 1, 0, 3, '', 10, '', 1, '2022-11-22 23:49:17', '2023-01-10 17:42:01'), (2110, 2062, '删除用户', 'org_user_delete', 'user', '', 3, '', '/member/delete', '', '/', 1, '', 0, 0, '', 0, 1, 0, 3, '', 10, '', 1, '2022-11-23 21:34:51', '2022-11-23 21:51:11'), -(2111, 2062, '修改用户状态', 'org_user_status', 'user', '', 3, '', '/member/status', '', '/', 1, '', 0, 0, '', 0, 1, 0, 3, '', 10, '', 1, '2022-11-23 21:35:48', '2022-11-23 21:58:46'), -(2112, 2063, '编辑部门', 'dept_edit', 'dept', '', 3, '', '/dept/edit', '', '/', 1, '', 0, 0, '', 0, 0, 0, 3, '', 10, '', 1, '2022-11-23 21:57:15', '2022-11-23 21:57:15'), -(2113, 2063, '删除部门', 'dept_delete', 'dept', '', 3, '', '/dept/delete', '', '/', 1, '', 0, 0, '', 0, 0, 0, 3, '', 10, '', 1, '2022-11-23 21:57:51', '2022-11-23 21:57:51'), +(2111, 2062, '修改用户状态', 'org_user_status', 'user', '', 3, '', '/member/status', '', '/', 1, '', 0, 0, '', 0, 1, 0, 3, '', 10, '', 1, '2022-11-23 21:35:48', '2023-01-10 17:39:52'), +(2112, 2063, '编辑部门', 'dept_edit', 'dept', '', 3, '', '/dept/edit', '', '', 1, '', 0, 0, '', 0, 0, 0, 3, '', 10, '', 1, '2022-11-23 21:57:15', '2023-01-10 17:29:26'), +(2113, 2063, '删除部门', 'dept_delete', 'dept', '', 3, '', '/dept/delete', '', '', 1, '', 0, 0, '', 0, 0, 0, 3, '', 10, '', 1, '2022-11-23 21:57:51', '2023-01-10 17:28:55'), (2114, 2063, '修改部门状态', 'dept_status', 'dept', '', 3, '', '/dept/status', '', '/', 1, '', 0, 0, '', 0, 0, 0, 3, '', 10, '', 1, '2022-11-23 21:58:40', '2022-11-23 21:58:40'), (2115, 2064, '编辑岗位', 'post_edit', 'post', '', 3, '', '/post/edit', '', '/', 1, '', 0, 0, '', 0, 0, 0, 3, '', 10, '', 1, '2022-11-23 21:59:30', '2022-11-23 21:59:30'), (2116, 2064, '删除岗位', 'post_delete', 'post', '', 3, '', '/post/delete', '', '/', 1, '', 0, 0, '', 0, 0, 0, 3, '', 10, '', 1, '2022-11-23 22:00:13', '2022-11-23 22:03:06'), (2117, 2064, '修改岗位状态', 'post_status', 'post', '', 3, '', '/post/status', '', '/', 1, '', 0, 0, '', 0, 0, 0, 3, '', 10, '', 1, '2022-11-23 22:00:54', '2022-11-23 22:00:54'), (2118, 2095, '上传附件图片', 'attachment_upload_image', 'attachment', '', 3, '', '/upload/image', '', '/', 1, '', 0, 0, '', 0, 0, 0, 3, '', 10, '', 1, '2022-11-23 22:14:19', '2022-11-23 22:19:15'), -(2119, 2120, 'GoFrame文档', 'https://goframe.org/pages/viewpage.action?pageId=1114119', '/go-frame', 'DocumentTextOutline', 1, '', '', '', 'LAYOUT', 1, '', 0, 1, '', 0, 0, 0, 2, '', 1050, '', 1, '2022-11-23 23:24:15', '2022-11-24 00:08:27'), -(2120, 0, '文档中心', 'doc', 'doc', 'DocumentTextOutline', 1, 'LAYOUT', '', '', '/doc', 1, '', 0, 0, '', 0, 0, 0, 1, '', 2000, '', 1, '2022-11-24 00:08:19', '2022-11-24 00:09:01'); +(2119, 2120, 'GoFrame文档', 'https://goframe.org/pages/viewpage.action?pageId=1114119', '/go-frame', '', 1, '', '', '', 'LAYOUT', 1, '', 0, 1, '', 0, 0, 0, 2, '', 1050, '', 1, '2022-11-23 23:24:15', '2023-01-10 17:24:30'), +(2120, 0, '文档中心', 'doc', 'doc', 'FileTextOutlined', 1, 'LAYOUT', '', '', '/doc', 1, '', 0, 0, '', 0, 0, 0, 1, '', 2000, '', 1, '2022-11-24 00:08:19', '2023-01-10 17:23:55'), +(2121, 0, '测试菜单', 'test', '/test', 'AppstoreFilled', 1, '', '', '', 'LAYOUT', 1, '', 0, 0, '', 0, 0, 0, 1, '', 200, '', 1, '2022-12-23 15:06:03', '2022-12-23 15:06:14'), +(2122, 2121, '测试列表', 'test_index', 'index', '', 2, '', '', '', '/test/index', 1, '', 0, 0, '', 0, 0, 0, 2, '', 10, '', 1, '2022-12-23 15:07:28', '2022-12-23 15:41:26'), +(2124, 2121, '测试详情', 'test_view', 'view/:id?', '', 2, '', '', '', '/test/view', 0, 'test_index', 0, 0, '', 0, 1, 0, 2, '', 20, '', 1, '2022-09-14 20:07:04', '2022-09-17 10:43:38'), +(2125, 2097, '生成配置', 'develop_code_deploy', 'deploy/:id?', '', 2, '', '', '', '/develop/code/deploy', 0, 'develop_code', 0, 0, '', 0, 1, 0, 2, '', 20, '', 1, '2022-12-31 17:16:26', '2022-12-31 17:17:46'), +(2198, 2097, '生成演示', 'curdDemo', '/curdDemo', 'MenuOutlined', 1, '', '', '', 'ParentLayout', 1, '', 0, 0, '', 0, 0, 0, 1, '', 200, '', 1, '2023-01-18 15:19:43', '2023-01-18 15:19:43'), +(2199, 2198, '生成演示列表', 'curdDemoIndex', 'index', '', 2, '', '/curdDemo/list', '', '/curdDemo/index', 1, '', 0, 0, '', 0, 0, 0, 2, '', 10, '', 1, '2023-01-18 15:19:43', '2023-01-18 15:19:43'), +(2200, 2198, '生成演示详情', 'curdDemoView', 'view/:id?', '', 2, '', '/curdDemo/view', '', '/curdDemo/view', 0, 'curdDemoIndex', 0, 0, '', 0, 1, 0, 2, '', 20, '', 1, '2023-01-18 15:19:43', '2023-01-18 15:19:43'), +(2201, 2199, '编辑/新增生成演示', 'curdDemoEdit', '', '', 3, '', '/curdDemo/edit', '', '', 1, '', 0, 0, '', 0, 1, 0, 3, '', 10, '', 1, '2023-01-18 15:19:43', '2023-01-18 15:19:43'), +(2202, 2201, '获取生成演示最大排序', 'curdDemoMaxSort', '', '', 3, '', '/curdDemo/maxSort', '', '', 1, '', 0, 0, '', 0, 0, 0, 3, '', 10, '', 1, '2023-01-18 15:19:43', '2023-01-18 15:19:43'), +(2203, 2199, '删除生成演示', 'curdDemoDelete', '', '', 3, '', '/curdDemo/delete', '', '', 1, '', 0, 0, '', 0, 0, 0, 3, '', 10, '', 1, '2023-01-18 15:19:43', '2023-01-18 15:19:43'), +(2204, 2199, '修改生成演示状态', 'curdDemoStatus', '', '', 3, '', '/curdDemo/status', '', '', 1, '', 0, 0, '', 0, 0, 0, 3, '', 10, '', 1, '2023-01-18 15:19:43', '2023-01-18 15:19:43'), +(2205, 2199, '操作生成演示开关', 'curdDemoSwitch', '', '', 3, '', '/curdDemo/switch', '', '', 1, '', 0, 0, '', 0, 0, 0, 3, '', 10, '', 1, '2023-01-18 15:19:43', '2023-01-18 15:19:43'), +(2206, 2199, '导出生成演示', 'curdDemoExport', '', '', 3, '', '/curdDemo/export', '', '', 1, '', 0, 0, '', 0, 0, 0, 3, '', 10, '', 1, '2023-01-18 15:19:43', '2023-01-18 15:19:43'); -- -------------------------------------------------------- @@ -259,18 +262,18 @@ INSERT INTO `hg_admin_menu` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type -- CREATE TABLE `hg_admin_notice` ( - `id` bigint NOT NULL COMMENT '公告ID', - `title` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '公告标题', - `type` bigint NOT NULL COMMENT '公告类型(1通知 2公告)', - `content` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '公告内容', + `id` bigint(20) NOT NULL COMMENT '公告ID', + `title` varchar(64) NOT NULL COMMENT '公告标题', + `type` bigint(20) NOT NULL COMMENT '公告类型', + `content` longtext NOT NULL COMMENT '公告内容', `receiver` text COMMENT '接收者', `reader` text COMMENT '已读人', - `remark` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '备注', - `sort` int NOT NULL DEFAULT '0' COMMENT '排序', + `remark` varchar(255) DEFAULT NULL COMMENT '备注', + `sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序', `status` tinyint(1) DEFAULT '1' COMMENT '公告状态', `created_at` datetime DEFAULT NULL COMMENT '创建时间', `updated_at` datetime DEFAULT NULL COMMENT '更新时间' -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='通知公告表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台_通知公告'; -- -- 转存表中的数据 `hg_admin_notice` @@ -279,7 +282,8 @@ CREATE TABLE `hg_admin_notice` ( INSERT INTO `hg_admin_notice` (`id`, `title`, `type`, `content`, `receiver`, `reader`, `remark`, `sort`, `status`, `created_at`, `updated_at`) VALUES (1, '温馨提醒:2021-07-01 新版本发布啦', 2, '新版本内容', '', '', '管理员', 1, 1, '2022-01-04 01:54:53', '2022-10-06 11:53:13'), (2, '维护通知:2021-07-01 系统凌晨维护', 1, '维护内容\n\n进行了如下更新:\n1...\n2...', '', '[123, 456]', '管理员', 5, 1, '2022-01-01 01:54:53', '2022-10-06 11:53:10'), -(6, '测试公告', 2, '这是一条测试公告\n哈哈\n哈哈哈哈!', '1,2,3', '', '测试', 10, 1, '2022-09-25 02:38:59', '2022-10-07 10:03:25'); +(6, '测试公告', 2, '这是一条测试公告\n哈哈\n哈哈哈哈!', '1,2,3', '', '测试', 10, 1, '2022-09-25 02:38:59', '2022-10-07 10:03:25'), +(7, '测试', 1, '在下载学习中', '', '', '', 0, 1, '2022-12-30 16:47:22', '2022-12-30 16:47:22'); -- -------------------------------------------------------- @@ -288,26 +292,26 @@ INSERT INTO `hg_admin_notice` (`id`, `title`, `type`, `content`, `receiver`, `re -- CREATE TABLE `hg_admin_post` ( - `id` bigint NOT NULL COMMENT '岗位ID', - `code` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '岗位编码', - `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '岗位名称', - `remark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '备注', - `sort` int NOT NULL COMMENT '显示顺序', + `id` bigint(20) NOT NULL COMMENT '岗位ID', + `code` varchar(64) NOT NULL COMMENT '岗位编码', + `name` varchar(50) NOT NULL COMMENT '岗位名称', + `remark` varchar(500) DEFAULT NULL COMMENT '备注', + `sort` int(11) NOT NULL COMMENT '显示顺序', `status` tinyint(1) NOT NULL COMMENT '状态', `created_at` datetime DEFAULT NULL COMMENT '创建时间', `updated_at` datetime DEFAULT NULL COMMENT '更新时间' -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='岗位信息表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台_岗位'; -- -- 转存表中的数据 `hg_admin_post` -- INSERT INTO `hg_admin_post` (`id`, `code`, `name`, `remark`, `sort`, `status`, `created_at`, `updated_at`) VALUES -(1, 'ceo', '董事长', '', 1, 1, '2022-01-04 17:54:52', NULL), -(2, 'se', '项目经理', '', 2, 1, '2022-01-04 17:54:52', NULL), -(3, 'hr', '人力资源', '', 3, 1, '2022-01-04 17:54:52', NULL), +(1, 'ceo', '董事长', '', 1, 1, '2022-01-04 17:54:52', '2023-01-18 00:00:00'), +(2, 'se', '项目经理', '', 2, 1, '2022-01-04 17:54:52', '2023-01-18 00:00:00'), +(3, 'hr', '人力资源', '', 3, 1, '2022-01-04 17:54:52', '2023-01-18 00:00:00'), (4, 'user', '普通员工', '', 4, 1, '2022-01-04 17:54:52', '2022-05-15 22:33:09'), -(6, '测试', '测试', '测试..', 0, 1, '2022-08-14 11:41:22', '2022-11-23 22:04:17'); +(6, '测试', '测试', '测试..', 5, 1, '2022-08-14 11:41:22', '2023-01-10 17:28:40'); -- -------------------------------------------------------- @@ -316,27 +320,32 @@ INSERT INTO `hg_admin_post` (`id`, `code`, `name`, `remark`, `sort`, `status`, ` -- CREATE TABLE `hg_admin_role` ( - `id` bigint NOT NULL COMMENT '角色ID', + `id` bigint(20) NOT NULL COMMENT '角色ID', `name` varchar(32) NOT NULL COMMENT '角色名称', `key` varchar(128) NOT NULL COMMENT '角色权限字符串', - `data_scope` tinyint(1) DEFAULT '1' COMMENT '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)', - `menu_check_strictly` tinyint(1) DEFAULT '1' COMMENT '菜单树选择项是否关联显示', - `dept_check_strictly` tinyint(1) DEFAULT '1' COMMENT '部门树选择项是否关联显示', + `data_scope` tinyint(1) DEFAULT '1' COMMENT '数据范围', + `custom_dept` json DEFAULT NULL COMMENT '自定义部门权限', + `pid` bigint(20) DEFAULT '0' COMMENT '上级角色ID', + `level` int(11) NOT NULL DEFAULT '1' COMMENT '关系树等级', + `tree` varchar(512) DEFAULT NULL COMMENT '关系树', `remark` varchar(255) DEFAULT NULL COMMENT '备注', - `sort` int NOT NULL DEFAULT '0' COMMENT '排序', + `sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序', `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '角色状态', `created_at` datetime DEFAULT NULL COMMENT '创建时间', `updated_at` datetime DEFAULT NULL COMMENT '更新时间' -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='角色信息表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台_角色信息'; -- -- 转存表中的数据 `hg_admin_role` -- -INSERT INTO `hg_admin_role` (`id`, `name`, `key`, `data_scope`, `menu_check_strictly`, `dept_check_strictly`, `remark`, `sort`, `status`, `created_at`, `updated_at`) VALUES -(1, '超级管理员', 'super', 1, 1, 1, '超级管理员', 1, 1, '2022-01-04 17:54:52', NULL), -(2, '普通管理员', 'norm', 2, 1, 1, '钻石代理', 2, 1, '2022-01-04 17:54:52', NULL), -(100, '测试角色', 'test', 0, 0, 0, '普通用户', 10, 1, NULL, '2022-08-13 23:28:52'); +INSERT INTO `hg_admin_role` (`id`, `name`, `key`, `data_scope`, `custom_dept`, `pid`, `level`, `tree`, `remark`, `sort`, `status`, `created_at`, `updated_at`) VALUES +(1, '超级管理员', 'super', 1, '[]', 0, 1, NULL, '超级管理员,拥有全部菜单、数据权限,无需绑定和验证', 1, 1, '2022-01-04 17:54:52', '2023-01-12 00:00:00'), +(2, '普通管理员', 'norm', 4, '[108, 105, 103]', 1, 2, 'tr_1 ', '普通管理员,拥有常规的后台系统权限', 2, 1, '2022-01-04 17:54:52', '2023-01-12 00:00:00'), +(100, '测试角色', 'test', 5, '[]', 1, 2, 'tr_1 ', '测试角色', 10, 1, '2023-01-12 00:00:00', '2022-08-13 23:28:52'), +(200, '金牌代理商', 'gold_agent', 7, '[]', 0, 1, NULL, '金牌代理商,脱离公司角色的权限,满足sass需求', 200, 1, '2023-01-12 00:00:00', '2022-08-13 23:28:52'), +(201, '银牌代理商', 'silver_agent', 7, '[]', 200, 2, 'tr_200 ', '银牌代理商,脱离公司角色的权限,满足sass需求', 210, 1, '2023-01-12 00:00:00', '2022-08-13 23:28:52'), +(202, '铜牌代理', 'copper_agent', 7, '[]', 200, 2, 'tr_200 ', '', 220, 1, '2023-01-12 11:20:02', '2023-01-12 11:20:02'); -- -------------------------------------------------------- @@ -345,14 +354,14 @@ INSERT INTO `hg_admin_role` (`id`, `name`, `key`, `data_scope`, `menu_check_stri -- CREATE TABLE `hg_admin_role_casbin` ( - `id` bigint NOT NULL, - `p_type` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, - `v0` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, - `v1` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, - `v2` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, - `v3` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, - `v4` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, - `v5` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL + `id` bigint(20) NOT NULL, + `p_type` varchar(64) DEFAULT NULL, + `v0` varchar(256) DEFAULT NULL, + `v1` varchar(256) DEFAULT NULL, + `v2` varchar(256) DEFAULT NULL, + `v3` varchar(256) DEFAULT NULL, + `v4` varchar(256) DEFAULT NULL, + `v5` varchar(256) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='casbin权限表' ROW_FORMAT=DYNAMIC; -- @@ -360,57 +369,48 @@ CREATE TABLE `hg_admin_role_casbin` ( -- INSERT INTO `hg_admin_role_casbin` (`id`, `p_type`, `v0`, `v1`, `v2`, `v3`, `v4`, `v5`) VALUES -(1184, 'p', 'norm', 'dashboard', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1185, 'p', 'norm', '/console/stat', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1186, 'p', 'norm', 'dashboard_workplace', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1187, 'p', 'norm', '/dept/list', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1188, 'p', 'norm', '/post/list', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1189, 'p', 'norm', '/role/list', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1190, 'p', 'norm', '/member/list', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1191, 'p', 'norm', '/menu/list', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1192, 'p', 'norm', '/role/list', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1193, 'p', 'norm', '/log/view', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1194, 'p', 'norm', '/log/list', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1195, 'p', 'norm', '/notice/list', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1196, 'p', 'norm', '/attachment/list', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1197, 'p', 'norm', '/provinces/list', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1198, 'p', 'norm', '/member/edit', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1199, 'p', 'norm', '/member/delete', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1200, 'p', 'norm', '/member/status', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1201, 'p', 'norm', '/dept/edit', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1202, 'p', 'norm', '/dept/delete', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1203, 'p', 'norm', '/dept/status', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1204, 'p', 'norm', '/post/edit', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1205, 'p', 'norm', '/post/delete', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1206, 'p', 'norm', '/post/status', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1207, 'p', 'norm', '/upload/image', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1208, 'p', 'test', 'dashboard', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1209, 'p', 'test', '/console/stat', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1210, 'p', 'test', 'dashboard_workplace', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1211, 'p', 'test', '/dept/list', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1212, 'p', 'test', '/post/list', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1213, 'p', 'test', '/role/list', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), -(1214, 'p', 'test', '/member/list', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''); - --- -------------------------------------------------------- - --- --- 表的结构 `hg_admin_role_dept` --- - -CREATE TABLE `hg_admin_role_dept` ( - `role_id` bigint NOT NULL COMMENT '角色ID', - `dept_id` bigint NOT NULL COMMENT '部门ID' -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='角色和部门关联表'; - --- --- 转存表中的数据 `hg_admin_role_dept` --- - -INSERT INTO `hg_admin_role_dept` (`role_id`, `dept_id`) VALUES -(2, 100), -(2, 101), -(2, 105); +(2743, 'p', 'norm', 'dashboard', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2744, 'p', 'norm', '/console/stat', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2745, 'p', 'norm', 'dashboard_monitor', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2746, 'p', 'norm', 'dashboard_workplace', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2747, 'p', 'norm', '/dept/list', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2748, 'p', 'norm', '/post/list', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2749, 'p', 'norm', '/role/list', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2750, 'p', 'norm', '/member/list', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2751, 'p', 'norm', '/menu/list', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2752, 'p', 'norm', '/role/list', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2753, 'p', 'norm', '/log/view', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2754, 'p', 'norm', '/log/list', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2755, 'p', 'norm', '/notice/list', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2756, 'p', 'norm', '/attachment/list', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2757, 'p', 'norm', '/provinces/list', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2758, 'p', 'norm', '/member/edit', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2759, 'p', 'norm', '/member/delete', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2760, 'p', 'norm', '/member/status', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2761, 'p', 'norm', '/dept/edit', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2762, 'p', 'norm', '/dept/delete', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2763, 'p', 'norm', '/dept/status', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2764, 'p', 'norm', '/post/edit', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2765, 'p', 'norm', '/post/delete', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2766, 'p', 'norm', '/post/status', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2767, 'p', 'norm', '/upload/image', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2768, 'p', 'test', 'dashboard', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2769, 'p', 'test', '/console/stat', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2770, 'p', 'test', 'dashboard_monitor', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2771, 'p', 'test', 'dashboard_workplace', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2772, 'p', 'test', '/dept/list', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2773, 'p', 'test', '/post/list', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2774, 'p', 'test', '/role/list', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2775, 'p', 'test', '/member/list', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2776, 'p', 'test', '/member/edit', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2777, 'p', 'test', '/member/delete', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2778, 'p', 'test', '/member/status', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2779, 'p', 'test', '/dept/edit', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2780, 'p', 'test', '/dept/delete', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2781, 'p', 'test', '/dept/status', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2782, 'p', 'test', '/post/edit', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2783, 'p', 'test', '/post/delete', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''), +(2784, 'p', 'test', '/post/status', 'GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD', '', '', ''); -- -------------------------------------------------------- @@ -419,9 +419,9 @@ INSERT INTO `hg_admin_role_dept` (`role_id`, `dept_id`) VALUES -- CREATE TABLE `hg_admin_role_menu` ( - `role_id` bigint NOT NULL COMMENT '角色ID', - `menu_id` bigint NOT NULL COMMENT '菜单ID' -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='角色和菜单关联表'; + `role_id` bigint(20) NOT NULL COMMENT '角色ID', + `menu_id` bigint(20) NOT NULL COMMENT '菜单ID' +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台_角色菜单关联'; -- -- 转存表中的数据 `hg_admin_role_menu` @@ -485,6 +485,9 @@ INSERT INTO `hg_admin_role_menu` (`role_id`, `menu_id`) VALUES (2, 2116), (2, 2117), (2, 2118), +(2, 2121), +(2, 2122), +(2, 2124), (100, 2047), (100, 2048), (100, 2049), @@ -498,7 +501,19 @@ INSERT INTO `hg_admin_role_menu` (`role_id`, `menu_id`) VALUES (100, 2070), (100, 2071), (100, 2072), -(100, 2073); +(100, 2073), +(100, 2109), +(100, 2110), +(100, 2111), +(100, 2112), +(100, 2113), +(100, 2114), +(100, 2115), +(100, 2116), +(100, 2117), +(100, 2121), +(100, 2122), +(100, 2124); -- -------------------------------------------------------- @@ -507,24 +522,24 @@ INSERT INTO `hg_admin_role_menu` (`role_id`, `menu_id`) VALUES -- CREATE TABLE `hg_sys_attachment` ( - `id` bigint NOT NULL, - `app_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '应用ID', - `member_id` bigint DEFAULT '0' COMMENT '用户', - `cate_id` bigint UNSIGNED DEFAULT '0' COMMENT '分类', - `drive` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '驱动', - `name` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '文件原始名', - `kind` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '上传类型', - `meta_type` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '类别', - `naive_type` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'NaiveUI类型', - `path` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '本地路径', - `file_url` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'url', - `size` bigint DEFAULT '0' COMMENT '长度', - `ext` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '扩展名', - `md5` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'md5校验码', + `id` bigint(20) NOT NULL COMMENT '文件ID', + `app_id` varchar(255) NOT NULL COMMENT '应用ID', + `member_id` bigint(20) DEFAULT '0' COMMENT '管理员ID', + `cate_id` bigint(20) UNSIGNED DEFAULT '0' COMMENT '上传分类', + `drive` varchar(50) DEFAULT NULL COMMENT '上传驱动', + `name` varchar(1000) DEFAULT NULL COMMENT '文件原始名', + `kind` varchar(10) DEFAULT NULL COMMENT '上传类型', + `meta_type` varchar(100) NOT NULL DEFAULT '' COMMENT '文件类型', + `naive_type` varchar(64) NOT NULL COMMENT 'NaiveUI类型', + `path` varchar(1000) DEFAULT NULL COMMENT '本地路径', + `file_url` varchar(1000) DEFAULT NULL COMMENT 'url', + `size` bigint(20) DEFAULT '0' COMMENT '文件大小', + `ext` varchar(50) DEFAULT NULL COMMENT '扩展名', + `md5` varchar(100) DEFAULT NULL COMMENT 'md5校验码', `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态', `created_at` datetime DEFAULT NULL COMMENT '创建时间', `updated_at` datetime DEFAULT NULL COMMENT '修改时间' -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='公用_文件管理'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统_附件管理'; -- -- 转存表中的数据 `hg_sys_attachment` @@ -537,8 +552,14 @@ INSERT INTO `hg_sys_attachment` (`id`, `app_id`, `member_id`, `cate_id`, `drive` (7, 'admin', 1, 0, 'local', 'facebook_profile_image.png', 'images', 'image/png', '', 'attachment/2022-10-07/cnfab2frav7ykx8pe0.png', 'attachment/2022-10-07/cnfab2frav7ykx8pe0.png', 8044, 'png', 'b01abc4c4385a36523759af76500c927', 1, '2022-10-07 09:02:47', '2022-10-07 09:02:47'), (10, 'admin', 1, 0, 'local', 'instagram_profile_image.png', 'images', 'image/png', '', 'attachment/2022-10-07/cnfaiesjx7lsyqsbwa.png', 'attachment/2022-10-07/cnfaiesjx7lsyqsbwa.png', 6609, 'png', 'a8569454c063af6d27678e6c3d115bac', 1, '2022-10-07 09:12:23', '2022-10-07 09:12:23'), (12, 'admin', 1, 0, 'local', 'youtube_profile_image.png', 'images', 'image/png', '', 'attachment/2022-10-07/cnfba8qmfuqzyfg80l.png', 'attachment/2022-10-07/cnfba8qmfuqzyfg80l.png', 5531, 'png', '4bed068d7c89e48c41274b4c198e0b9b', 1, '2022-10-07 09:48:44', '2022-10-07 09:48:44'), -(15, 'admin', 1, 0, 'local', 'logo.png', 'images', 'image/png', '', 'attachment/2022-11-24/cok9xopjddf8zdueay.png', 'attachment/2022-11-24/cok9xopjddf8zdueay.png', 5775, 'png', '29a849855c08d477db384298d4f80e42', 1, '2022-11-24 13:24:37', '2022-11-24 13:24:37'), -(16, 'admin', 1, 0, 'local', 'HotGo交流群群二维码.png', 'images', 'image/png', '', 'attachment/2022-11-24/cokennk2deuis6llu7.png', 'attachment/2022-11-24/cokennk2deuis6llu7.png', 14766, 'png', '26003e854e8cf8bcb28c33da57563b58', 1, '2022-11-24 17:06:36', '2022-11-24 17:06:36'); +(17, 'admin', 1, 0, 'local', 'u=2660610025,3054170490&fm=253&fmt=auto&app=138&f=JPEG.jpg', 'images', 'image/jpeg', '', 'attachment/2022-12-29/cpe9nfm81rhwmd3ayt.jpg', 'attachment/2022-12-29/cpe9nfm81rhwmd3ayt.jpg', 11246, 'jpg', '15c92047ada08f72167e6e9d1539ffd9', 1, '2022-12-29 19:31:12', '2023-01-18 10:53:26'), +(18, 'admin', 1, 0, 'local', 'u=366042725,4290979312&fm=224&app=112&f=JPEG.jpg', 'images', 'image/jpeg', '', 'attachment/2022-12-29/cpea9g76jq4cyxvg8c.jpg', 'attachment/2022-12-29/cpea9g76jq4cyxvg8c.jpg', 44488, 'jpg', '5a70496e61671cb9bea61c04144ed26a', 1, '2022-12-29 19:59:58', '2023-01-04 16:23:19'), +(19, 'admin', 1, 0, 'local', 'pic4.zhimg.jpg', 'images', 'image/jpeg', '', 'attachment/2022-12-29/cpeajfdijd6gix0m37.jpg', 'attachment/2022-12-29/cpeajfdijd6gix0m37.jpg', 59608, 'jpg', '4f7b441436d8f18d848c83df3d5fd77c', 1, '2022-12-29 20:12:59', '2023-01-18 14:59:54'), +(21, 'admin', 1, 0, 'ucloud', 'p8.itc.webp', 'images', 'image/webp', '', 'hotgo/attachment/2022-12-30/cpezmt5lsgxkw8ttkf.webp', 'hotgo/attachment/2022-12-30/cpezmt5lsgxkw8ttkf.webp', 78100, 'webp', 'f38a6aefccaa6c6aff6a8d73bce108e2', 1, '2022-12-30 15:52:52', '2022-12-30 16:36:05'), +(22, 'admin', 1, 0, 'ucloud', '测试1.doc', 'document', 'application/msword', 'text/plain', 'hotgo/attachment/2022-12-30/cpf1fy77osc0oap1ns.doc', 'hotgo/attachment/2022-12-30/cpf1fy77osc0oap1ns.doc', 9216, 'doc', '7b82c3bdd93f2bd53dbb6bdb8220428a', 1, '2022-12-30 17:17:57', '2023-01-18 14:57:39'), +(23, 'admin', 1, 0, 'ucloud', '测试2.xlsx', 'document', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'text/plain', 'hotgo/attachment/2022-12-30/cpf1x44idoycrtajf2.xlsx', 'hotgo/attachment/2022-12-30/cpf1x44idoycrtajf2.xlsx', 9800, 'xlsx', 'df3457614fd455a6486a0c1dcf6e0603', 1, '2022-12-30 17:40:22', '2023-01-18 14:59:59'), +(24, 'admin', 1, 0, 'ucloud', '91ef76c6a7efce1bb8209a0a26e18bd9b58f651a.jpeg', 'images', 'image/jpeg', '', 'hotgo/attachment/2023-01-18/cpuz5ubefdmspdgt1f.jpeg', 'hotgo/attachment/2023-01-18/cpuz5ubefdmspdgt1f.jpeg', 24114, 'jpeg', '1a863f439969021a89783b55a68c8756', 1, '2023-01-18 10:53:22', '2023-01-18 10:53:22'), +(25, 'admin', 1, 0, 'ucloud', 'f9dcd100baa1cd11d3d39ced8c66dcf4c2ce2d16.jpeg', 'images', 'image/jpeg', '', 'hotgo/attachment/2023-01-18/cpv4crzjksw0ejqd0a.jpeg', 'hotgo/attachment/2023-01-18/cpv4crzjksw0ejqd0a.jpeg', 64239, 'jpeg', 'd5f74ac9e8e96cbf12401f8e254d2652', 1, '2023-01-18 14:57:31', '2023-01-18 14:57:31'); -- -------------------------------------------------------- @@ -547,13 +568,13 @@ INSERT INTO `hg_sys_attachment` (`id`, `app_id`, `member_id`, `cate_id`, `drive` -- CREATE TABLE `hg_sys_blacklist` ( - `id` bigint NOT NULL COMMENT '主键', - `ip` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT 'ip地址', - `remark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '备注', + `id` bigint(20) NOT NULL COMMENT '黑名单ID', + `ip` varchar(100) DEFAULT '' COMMENT 'IP地址', + `remark` varchar(500) DEFAULT NULL COMMENT '备注', `status` tinyint(1) DEFAULT '1' COMMENT '状态', `created_at` datetime DEFAULT NULL COMMENT '创建时间', `updated_at` datetime DEFAULT NULL COMMENT '更新时间' -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='访问黑名单'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统_访问黑名单'; -- -- 转存表中的数据 `hg_sys_blacklist` @@ -562,7 +583,7 @@ CREATE TABLE `hg_sys_blacklist` ( INSERT INTO `hg_sys_blacklist` (`id`, `ip`, `remark`, `status`, `created_at`, `updated_at`) VALUES (1, '39.162.138.4', '', 2, '2022-10-01 22:02:09', '2022-10-01 22:39:23'), (2, '29.162.138.91', '', 2, '2022-10-01 22:02:09', '2022-10-01 22:39:23'), -(3, '19.162.138.94', '1', 1, '2022-10-01 14:02:09', '2022-10-07 20:53:09'); +(3, '19.162.138.94', NULL, 1, '2022-10-01 14:02:09', '2022-10-07 20:53:09'); -- -------------------------------------------------------- @@ -571,20 +592,20 @@ INSERT INTO `hg_sys_blacklist` (`id`, `ip`, `remark`, `status`, `created_at`, `u -- CREATE TABLE `hg_sys_config` ( - `id` bigint NOT NULL COMMENT '配置ID', - `group` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '分组', - `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '参数名称', - `type` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '类型:string,text,int,bool,array,datetime,date,file', - `key` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '参数键名', - `value` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '参数键值', + `id` bigint(20) NOT NULL COMMENT '配置ID', + `group` varchar(128) NOT NULL COMMENT '配置分组', + `name` varchar(100) DEFAULT '' COMMENT '参数名称', + `type` varchar(32) NOT NULL COMMENT '键值类型:string,int,uint,bool,datetime,date', + `key` varchar(100) DEFAULT '' COMMENT '参数键名', + `value` varchar(500) DEFAULT '' COMMENT '参数键值', `default_value` varchar(500) NOT NULL COMMENT '默认值', - `sort` int NOT NULL DEFAULT '0' COMMENT '排序', - `tip` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '变量描述', - `is_default` tinyint(1) DEFAULT '0' COMMENT '是否默认', + `sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序', + `tip` varchar(500) DEFAULT NULL COMMENT '变量描述', + `is_default` tinyint(1) DEFAULT '0' COMMENT '是否为系统默认', `status` tinyint(1) DEFAULT '1' COMMENT '状态', `created_at` datetime DEFAULT NULL COMMENT '创建时间', `updated_at` datetime DEFAULT NULL COMMENT '更新时间' -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='参数配置表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统_配置'; -- -- 转存表中的数据 `hg_sys_config` @@ -607,7 +628,29 @@ INSERT INTO `hg_sys_config` (`id`, `group`, `name`, `type`, `key`, `value`, `def (14, 'smtp', 'SMTP用户名', 'string', 'smtpUser', 'ali@mail.qvnidaye.com', '', 110, '填写完整用户名', 1, 1, '2021-01-30 13:27:43', '2022-09-05 23:05:40'), (15, 'smtp', 'SMTP密码', 'string', 'smtpPass', '', '', 120, '填写您的密码', 1, 1, '2021-01-30 13:27:43', '2022-09-05 23:05:40'), (16, 'smtp', '发件人名称', 'string', 'smtpSendName', 'HotGo', 'HotGo', 130, '', 1, 1, '2021-01-30 13:27:43', '2022-09-05 23:05:40'), -(17, 'smtp', '管理员邮箱', 'string', 'smtpAdminMailbox', '133814250@qq.com', '133814250@qq.com', 140, '', 1, 1, '2021-01-30 13:27:43', '2022-09-05 23:05:40'); +(17, 'smtp', '管理员邮箱', 'string', 'smtpAdminMailbox', '133814250@qq.com', '133814250@qq.com', 140, '', 1, 1, '2021-01-30 13:27:43', '2022-09-05 23:05:40'), +(28, 'upload', '上传驱动', 'string', 'uploadDrive', 'ucloud', '', 300, 'local:本地;ucloud:ucloud', 1, 1, '2021-01-30 13:27:43', '2022-12-30 15:31:33'), +(29, 'upload', '上传图片大小限制', 'int', 'uploadImageSize', '2', '2', 310, '单位:MB', 1, 1, '2021-01-30 13:27:43', '2022-12-30 15:31:33'), +(30, 'upload', '上传图片类型限制', 'string', 'uploadImageType', 'jpg,jpeg,gif,npm,png,svg', 'jpg,jpeg,gif,npm,png,svg', 320, '图片上传后缀类型限制', 1, 1, '2021-01-30 13:27:43', '2022-12-30 15:31:33'), +(31, 'upload', '上传文件大小限制', 'int', 'uploadFileSize', '10', '10', 330, '单位:MB', 1, 1, '2021-01-30 13:27:43', '2022-12-30 15:31:33'), +(32, 'upload', '上传文件类型限制', 'string', 'uploadFileType', 'doc,docx,zip,xls,xlsx,rar,jpg,jpeg,gif,npm,png,svg', 'doc,docx,zip,xls,xlsx,rar,jpg,jpeg,gif,npm,png,svg', 340, '文件上传后缀类型限制', 1, 1, '2021-01-30 13:27:43', '2022-12-30 15:31:33'), +(33, 'upload', '本地存储路径', 'string', 'uploadLocalPath', 'attachment/', 'attachment/', 350, '对外访问的相对路径', 1, 1, '2021-01-30 13:27:43', '2022-12-30 15:31:33'), +(34, 'upload', 'UCloud存储路径', 'string', 'uploadUCloudPath', 'hotgo/attachment/', 'hotgo/attachment/', 360, 'UC对象存储中的相对路径', 1, 1, '2021-01-30 13:27:43', '2022-12-30 15:31:33'), +(35, 'upload', 'UCloud公钥', 'string', 'uploadUCloudPublicKey', 'TOKEN_05441a2b-d5a9-499a-b480-a05687257ef2', '', 370, '获取地址:https://console.ucloud.cn/ufile/token', 1, 1, '2021-01-30 13:27:43', '2022-12-30 15:31:33'), +(36, 'upload', 'UCloud私钥', 'string', 'uploadUCloudPrivateKey', '30f05196-a733-4e19-b4ac-ed7a95601e0a', '', 380, '', 1, 1, '2021-01-30 13:27:43', '2022-12-30 15:31:33'), +(37, 'upload', 'UCloud地域API', 'string', 'uploadUCloudBucketHost', 'api.ucloud.cn', 'api.ucloud.cn', 390, '', 1, 1, '2021-01-30 13:27:43', '2022-12-30 15:31:33'), +(38, 'upload', 'UCloud存储桶名称', 'string', 'uploadUCloudBucketName', 'bufanyun', '', 400, '存储空间名称', 1, 1, '2021-01-30 13:27:43', '2022-12-30 15:31:33'), +(39, 'upload', 'UCloud存储桶地域host', 'string', 'uploadUCloudFileHost', 'cn-bj.ufileos.com', 'cn-bj.ufileos.com', 410, '', 1, 1, '2021-01-30 13:27:43', '2022-12-30 15:31:33'), +(40, 'upload', 'UCloud访问域名', 'string', 'uploadUCloudEndpoint', 'http://bufanyun.cn-bj.ufileos.com', '', 420, '格式,http://abc.com 或 https://abc.com,不可为空', 1, 1, '2021-01-30 13:27:43', '2022-12-30 15:31:33'), +(41, 'geo', '高德Web服务key', 'string', 'geoAmapWebKey', 'c12b64ccfa48736a1b6b07702c8dcfb2', '', 500, '申请地址:https://console.amap.com/dev/key/app', 1, 1, '2021-01-30 13:27:43', '2022-12-07 15:48:43'), +(42, 'sms', '短信驱动,aliyun:阿里云;tencent:腾讯云', 'string', 'smsDrive', 'aliyun', '', 600, '', 1, 1, '2021-01-30 13:27:43', '2022-12-16 15:38:04'), +(43, 'sms', '阿里云AccessKeyID', 'string', 'smsAliyunAccessKeyID', 'LTAI5tRuFovsJ9maqHoh4zYs', '', 610, '应用key和密钥你可以通过 https://ram.console.aliyun.com/manage/ak 获取', 1, 1, '2021-01-30 13:27:43', '2022-12-16 15:38:04'), +(44, 'sms', '阿里云AccessKeySecret', 'string', 'smsAliyunAccessKeySecret', 'eXhqEJXdV43Lk8F7Tf0UJk4Wmn9bb6', '', 620, '', 1, 1, '2021-01-30 13:27:43', '2022-12-16 15:38:04'), +(45, 'sms', '阿里云短信签名', 'string', 'smsAliyunSign', '布帆云', '', 630, '申请地址:https://dysms.console.aliyun.com/domestic/text/sign', 1, 1, '2021-01-30 13:27:43', '2022-12-16 15:38:04'), +(46, 'sms', '阿里云短信模板', 'string', 'smsAliyunTemplate', '[{\"key\":\"login\",\"value\":\"SMS_198921686\"},{\"key\":\"register\",\"value\":\"SMS_198921686\"},{\"key\":\"resetpwd\",\"value\":\"SMS_198921686\"},{\"key\":\"code\",\"value\":\"SMS_198921686\"}]', '', 640, '', 1, 1, '2021-01-30 13:27:43', '2022-12-16 15:38:04'), +(47, 'sms', '最小发送间隔', 'int', 'smsMinInterval', '60', '', 600, '同号码', 1, 1, '2021-01-30 13:27:43', '2022-12-16 15:38:04'), +(48, 'sms', 'IP最大发送次数', 'int', 'smsMaxIpLimit', '10', '', 610, '同IP每天最大允许发送次数', 1, 1, '2021-01-30 13:27:43', '2022-12-16 15:38:04'), +(49, 'sms', '验证码有效期', 'int', 'smsCodeExpire', '600', '', 610, '单位:秒', 1, 1, '2021-01-30 13:27:43', '2022-12-16 15:38:04'); -- -------------------------------------------------------- @@ -616,19 +659,19 @@ INSERT INTO `hg_sys_config` (`id`, `group`, `name`, `type`, `key`, `value`, `def -- CREATE TABLE `hg_sys_cron` ( - `id` bigint NOT NULL COMMENT '主键', - `group_id` bigint NOT NULL COMMENT '分组ID', - `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '任务名称', - `params` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '函数参数', + `id` bigint(20) NOT NULL COMMENT '任务ID', + `group_id` bigint(20) NOT NULL COMMENT '分组ID', + `name` varchar(100) DEFAULT '' COMMENT '任务名称', + `params` varchar(255) DEFAULT '' COMMENT '函数参数', `pattern` varchar(64) NOT NULL COMMENT '定时表达式', - `policy` bigint NOT NULL DEFAULT '1' COMMENT '策略', - `count` bigint NOT NULL DEFAULT '0' COMMENT '执行次数', - `sort` int DEFAULT '0' COMMENT '排序', - `remark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '备注', - `status` tinyint(1) DEFAULT '1' COMMENT '状态', + `policy` bigint(20) NOT NULL DEFAULT '1' COMMENT '策略', + `count` bigint(20) NOT NULL DEFAULT '0' COMMENT '执行次数', + `sort` int(11) DEFAULT '0' COMMENT '排序', + `remark` varchar(500) DEFAULT NULL COMMENT '备注', + `status` tinyint(1) DEFAULT '1' COMMENT '任务状态', `created_at` datetime DEFAULT NULL COMMENT '创建时间', `updated_at` datetime DEFAULT NULL COMMENT '更新时间' -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='定时任务表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统_定时任务'; -- -- 转存表中的数据 `hg_sys_cron` @@ -646,16 +689,16 @@ INSERT INTO `hg_sys_cron` (`id`, `group_id`, `name`, `params`, `pattern`, `polic -- CREATE TABLE `hg_sys_cron_group` ( - `id` bigint NOT NULL COMMENT '主键', - `pid` bigint NOT NULL COMMENT '父类ID', - `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '分组名称', + `id` bigint(20) NOT NULL COMMENT '任务分组ID', + `pid` bigint(20) NOT NULL COMMENT '父类任务分组ID', + `name` varchar(100) DEFAULT '' COMMENT '分组名称', `is_default` tinyint(1) DEFAULT '0' COMMENT '是否默认', - `sort` int DEFAULT '0' COMMENT '排序', - `remark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '备注', - `status` tinyint(1) DEFAULT '1' COMMENT '状态', + `sort` int(11) DEFAULT '0' COMMENT '排序', + `remark` varchar(500) DEFAULT NULL COMMENT '备注', + `status` tinyint(1) DEFAULT '1' COMMENT '分组状态', `created_at` datetime DEFAULT NULL COMMENT '创建时间', `updated_at` datetime DEFAULT NULL COMMENT '更新时间' -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='定时任务分组表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统_定时任务分组'; -- -- 转存表中的数据 `hg_sys_cron_group` @@ -673,96 +716,74 @@ INSERT INTO `hg_sys_cron_group` (`id`, `pid`, `name`, `is_default`, `sort`, `rem -- CREATE TABLE `hg_sys_dict_data` ( - `id` bigint NOT NULL COMMENT '字典编码', - `label` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '字典标签', - `value` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '字典键值', - `type` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '字典类型', - `list_class` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '表格回显样式', - `is_default` tinyint(1) DEFAULT '2' COMMENT '是否默认', - `sort` int DEFAULT '0' COMMENT '字典排序', - `remark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '备注', + `id` bigint(20) NOT NULL COMMENT '字典数据ID', + `label` varchar(100) DEFAULT NULL COMMENT '字典标签', + `value` varchar(100) DEFAULT NULL COMMENT '字典键值', + `value_type` varchar(255) NOT NULL DEFAULT 'string' COMMENT '键值数据类型:string,int,uint,bool,datetime,date', + `type` varchar(100) DEFAULT NULL COMMENT '字典类型', + `list_class` varchar(100) DEFAULT NULL COMMENT '表格回显样式', + `is_default` tinyint(1) DEFAULT '2' COMMENT '是否为系统默认', + `sort` int(11) DEFAULT '0' COMMENT '字典排序', + `remark` varchar(500) DEFAULT NULL COMMENT '备注', `status` tinyint(1) DEFAULT '1' COMMENT '状态', `created_at` datetime DEFAULT NULL COMMENT '创建时间', `updated_at` datetime DEFAULT NULL COMMENT '更新时间' -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='字典数据表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统_字典数据'; -- -- 转存表中的数据 `hg_sys_dict_data` -- -INSERT INTO `hg_sys_dict_data` (`id`, `label`, `value`, `type`, `list_class`, `is_default`, `sort`, `remark`, `status`, `created_at`, `updated_at`) VALUES -(1, '男', '1', 'sys_user_sex', '', 1, 10, '性别男', 1, '2021-01-30 13:27:43', '2021-03-24 11:38:41'), -(2, '女', '2', 'sys_user_sex', '', 0, 20, '性别女', 1, '2021-01-30 13:27:43', NULL), -(3, '未知', '0', 'sys_user_sex', '', 0, 30, '性别未知', 1, '2021-01-30 13:27:43', NULL), -(4, '显示', '2', 'sys_show_hide', 'primary', 1, 10, '显示菜单', 1, '2021-01-30 13:27:43', NULL), -(5, '隐藏', '1', 'sys_show_hide', 'danger', 0, 20, '隐藏菜单', 1, '2021-01-30 13:27:43', NULL), -(6, '正常', '1', 'sys_normal_disable', 'primary', 1, 10, '正常状态', 1, '2021-01-30 13:27:43', NULL), -(7, '停用', '2', 'sys_normal_disable', 'danger', 0, 20, '停用状态', 1, '2021-01-30 13:27:43', NULL), -(8, '正常', '0', 'sys_job_status', 'primary', 1, 10, '正常状态', 1, '2021-01-30 13:27:43', NULL), -(9, '暂停', '1', 'sys_job_status', 'danger', 0, 20, '停用状态', 1, '2021-01-30 13:27:43', NULL), -(10, '默认', 'DEFAULT', 'sys_job_group', '', 1, 10, '默认分组', 1, '2021-01-30 13:27:43', NULL), -(11, '系统', 'SYSTEM', 'sys_job_group', '', 0, 20, '系统分组', 1, '2021-01-30 13:27:43', NULL), -(12, '是', 'Y', 'sys_yes_no', 'primary', 1, 10, '系统默认是', 1, '2021-01-30 13:27:43', NULL), -(13, '否', 'N', 'sys_yes_no', 'danger', 0, 20, '系统默认否', 1, '2021-01-30 13:27:43', NULL), -(14, '通知', '1', 'sys_notice_type', 'warning', 1, 10, '通知', 1, '2021-01-30 13:27:43', NULL), -(15, '公告', '2', 'sys_notice_type', 'success', 0, 20, '公告', 1, '2021-01-30 13:27:43', NULL), -(16, '正常', '1', 'sys_notice_status', 'primary', 1, 10, '正常状态', 1, '2021-01-30 13:27:43', NULL), -(17, '关闭', '0', 'sys_notice_status', 'danger', 0, 20, '关闭状态', 1, '2021-01-30 13:27:43', NULL), -(18, '新增', '1', 'sys_oper_type', 'info', 0, 10, '新增操作', 1, '2021-01-30 13:27:43', NULL), -(19, '修改', '2', 'sys_oper_type', 'info', 0, 20, '修改操作', 1, '2021-01-30 13:27:43', NULL), -(20, '删除', '3', 'sys_oper_type', 'danger', 0, 30, '删除操作', 1, '2021-01-30 13:27:43', NULL), -(21, '授权', '4', 'sys_oper_type', 'primary', 0, 40, '授权操作', 1, '2021-01-30 13:27:43', NULL), -(22, '导出', '5', 'sys_oper_type', 'warning', 0, 50, '导出操作', 1, '2021-01-30 13:27:43', NULL), -(23, '导入', '6', 'sys_oper_type', 'warning', 0, 60, '导入操作', 1, '2021-01-30 13:27:43', NULL), -(24, '强退', '7', 'sys_oper_type', 'danger', 0, 70, '强退操作', 1, '2021-01-30 13:27:43', NULL), -(25, '生成代码', '8', 'sys_oper_type', 'warning', 0, 80, '生成操作', 1, '2021-01-30 13:27:43', NULL), -(26, '清空数据', '9', 'sys_oper_type', 'danger', 0, 90, '清空操作', 1, '2021-01-30 13:27:43', NULL), -(27, '成功', '1', 'sys_common_status', 'primary', 0, 10, '正常状态', 1, '2021-01-30 13:27:43', NULL), -(28, '校验', '11', 'sys_oper_type', NULL, 0, 110, '校验', 1, '2021-10-04 22:40:50', '2021-10-04 22:50:02'), -(51, '系统', 'S', 'sys_portal_range', '', 0, 10, '测试', 1, '2021-05-11 10:15:31', '2022-01-22 19:15:06'), -(52, '有效', '0', 'sys_is_valid', NULL, 0, 10, NULL, 1, '2021-05-27 10:10:48', '2021-05-27 10:10:48'), -(53, '后台用户', '1', 'sys_user_type', NULL, 0, 10, NULL, 1, '2021-03-01 11:41:30', '2021-03-01 11:41:35'), -(54, '开启', '20', 'is_active', NULL, 0, 200, NULL, 1, '2021-08-12 16:16:16', '2021-08-12 16:16:16'), -(55, '角色', 'R', 'sys_portal_range', NULL, 0, 20, NULL, 1, '2021-05-11 10:15:48', '2021-05-11 10:15:48'), -(56, '前台用户', '2', 'sys_user_type', NULL, 0, 20, NULL, 1, '2021-03-01 11:41:46', '2021-03-01 11:41:46'), -(57, '机构', 'org', 'sys_dept_type', NULL, 0, 10, NULL, 1, '2021-02-24 18:35:41', '2021-02-25 15:22:42'), -(58, '公司', 'company', 'sys_dept_type', NULL, 0, 20, NULL, 1, '2021-02-24 11:45:32', '2021-02-24 14:06:42'), -(59, '无效', '1', 'sys_is_valid', NULL, 0, 20, NULL, 1, '2021-05-27 10:10:58', '2021-05-27 10:10:58'), -(60, '部门', 'dept', 'sys_dept_type', NULL, 0, 30, NULL, 1, '2021-03-02 10:14:09', '2021-03-02 10:14:09'), -(70, '关闭', '10', 'is_active', NULL, 0, 100, NULL, 1, '2021-08-12 16:16:05', '2021-08-12 16:16:05'), -(71, '用户', 'U', 'sys_portal_range', NULL, 0, 30, NULL, 1, '2021-05-11 10:16:00', '2021-05-11 10:16:00'), -(80, '查询', '10', 'sys_oper_type', NULL, 0, 100, '查询', 1, '2021-10-04 22:37:38', '2021-10-04 22:49:32'), -(81, '失败', '2', 'sys_common_status', 'danger', 0, 20, '停用状态', 1, '2021-01-30 13:27:43', NULL), -(86, '后台', 'admin', 'sys_oper_module', '', 0, 10, '', 1, '2022-01-24 11:37:16', '2022-01-24 11:37:16'), -(87, '接口', 'api', 'sys_oper_module', '', 0, 20, '', 1, '2022-01-24 11:37:24', '2022-01-24 11:37:24'), -(88, 'GET', 'GET', 'sys_oper_method', '', 0, 10, '', 1, '2022-01-25 10:16:46', '2022-01-25 10:16:46'), -(89, 'POST', 'POST', 'sys_oper_method', '', 0, 20, '', 1, '2022-01-25 10:16:54', '2022-01-25 10:16:54'), -(90, '-1', '-1', 'req_code', '', 0, 10, '通用错误码', 1, '2022-01-25 10:23:34', '2022-02-12 10:01:59'), -(91, '0', '0', 'req_code', '', 0, 20, '通用成功码', 1, '2022-01-25 10:23:54', '2022-02-12 10:02:07'), -(92, '50', '50', 'req_code', '', 0, 30, '内部错误', 1, '2022-01-25 10:24:06', '2022-01-25 10:41:45'), -(93, '51', '51', 'req_code', '', 0, 40, '数据验证失败', 1, '2022-01-25 10:24:17', '2022-01-25 10:41:53'), -(94, '52', '52', 'req_code', '', 0, 50, '数据库操作错误', 1, '2022-01-25 10:24:26', '2022-01-25 10:42:00'), -(95, '53', '53', 'req_code', '', 0, 60, '当前操作的给定参数无效', 1, '2022-01-25 10:24:38', '2022-01-25 10:42:08'), -(96, '54', '54', 'req_code', '', 0, 70, '缺少当前操作的参数', 1, '2022-01-25 10:24:46', '2022-01-25 10:42:15'), -(97, '55', '55', 'req_code', '', 0, 80, '该函数不能这样使用', 1, '2022-01-25 10:24:56', '2022-01-25 10:42:21'), -(98, '56', '56', 'req_code', '', 0, 90, '配置对于当前操作无效', 1, '2022-01-25 10:25:04', '2022-01-25 10:42:28'), -(99, '57', '57', 'req_code', '', 0, 100, '当前操作缺少配置', 1, '2022-01-25 10:25:13', '2022-01-25 10:42:35'), -(100, '58', '58', 'req_code', '', 0, 110, '操作尚未实现', 1, '2022-01-25 10:25:20', '2022-01-25 10:42:42'), -(101, '59', '59', 'req_code', '', 0, 120, '该操作尚不受支持', 1, '2022-01-25 10:25:28', '2022-01-25 10:42:50'), -(102, '60', '60', 'req_code', '', 0, 130, '没有有效的数据', 1, '2022-01-25 10:26:04', '2022-01-25 10:42:58'), -(103, '61', '61', 'req_code', '', 0, 140, '未授权', 1, '2022-01-25 10:26:12', '2022-01-25 10:43:04'), -(104, '62', '62', 'req_code', '', 0, 150, '存在安全问题', 1, '2022-01-25 10:26:27', '2022-01-25 10:43:13'), -(105, '63', '63', 'req_code', '', 0, 160, '服务器正忙,请稍后再试 ', 1, '2022-01-25 10:26:36', '2022-01-25 10:43:22'), -(106, '64', '64', 'req_code', '', 0, 170, '未知错误 ', 1, '2022-01-25 10:26:44', '2022-01-25 10:43:28'), -(107, '65', '65', 'req_code', '', 0, 180, '找不到资源,不存在 ', 1, '2022-01-25 10:27:32', '2022-01-25 10:43:34'), -(108, '66', '66', 'req_code', '', 0, 190, '请求无效 ', 1, '2022-01-25 10:27:41', '2022-01-25 10:43:40'), -(109, '300', '300', 'req_code', '', 0, 200, '业务验证失败 ', 1, '2022-01-25 10:27:51', '2022-01-25 10:43:46'), -(110, '大于50ms', '50', 'req_take_up_time', '', 0, 10, '', 1, '2022-01-25 15:51:45', '2022-01-25 15:53:36'), -(111, '大于100ms', '100', 'req_take_up_time', '', 0, 20, '', 1, '2022-01-25 15:51:57', '2022-01-25 15:53:42'), -(112, '大于200ms', '200', 'req_take_up_time', '', 0, 30, '', 1, '2022-01-25 15:52:21', '2022-01-25 15:53:47'), -(113, '大于500ms', '500', 'req_take_up_time', '', 0, 40, '', 1, '2022-01-25 15:52:32', '2022-01-25 15:53:51'), -(114, '大于1000ms', '1000', 'req_take_up_time', '', 0, 50, '', 1, '2022-01-25 15:52:57', '2022-01-25 15:53:56'), -(115, '大于5000ms', '5000', 'req_take_up_time', '', 0, 60, '', 1, '2022-01-24 23:54:15', '2022-10-07 11:48:49'); +INSERT INTO `hg_sys_dict_data` (`id`, `label`, `value`, `value_type`, `type`, `list_class`, `is_default`, `sort`, `remark`, `status`, `created_at`, `updated_at`) VALUES +(1, '男', '1', 'int', 'sys_user_sex', 'success', 1, 10, '性别男', 1, '2021-01-30 13:27:43', '2023-01-06 09:45:24'), +(2, '女', '2', 'int', 'sys_user_sex', 'warning', 0, 20, '性别女', 1, '2021-01-30 13:27:43', '2023-01-06 09:45:21'), +(3, '未知', '0', 'int', 'sys_user_sex', 'error', 0, 30, '性别未知', 1, '2021-01-30 13:27:43', '2023-01-06 09:45:18'), +(4, '显示', '2', 'int', 'sys_show_hide', 'primary', 1, 10, '显示菜单', 1, '2021-01-30 13:27:43', '2023-01-18 09:52:59'), +(5, '隐藏', '1', 'int', 'sys_show_hide', 'error', 1, 20, '隐藏菜单', 1, '2021-01-30 13:27:43', '2023-01-18 09:52:56'), +(6, '正常', '1', 'int', 'sys_normal_disable', 'success', 1, 10, '正常状态', 1, '2021-01-30 13:27:43', '2023-01-18 09:52:44'), +(7, '停用', '2', 'int', 'sys_normal_disable', 'warning', 1, 20, '停用状态', 1, '2021-01-30 13:27:43', '2023-01-18 09:52:48'), +(8, '正常', '1', 'int', 'sys_job_status', 'primary', 1, 10, '正常状态', 1, '2021-01-30 13:27:43', '2023-01-18 09:53:48'), +(9, '暂停', '2', 'int', 'sys_job_status', 'error', 1, 20, '停用状态', 1, '2021-01-30 13:27:43', '2023-01-18 09:53:53'), +(10, '默认', 'DEFAULT', 'string', 'sys_job_group', '', 1, 10, '默认分组', 1, '2021-01-30 13:27:43', NULL), +(11, '系统', 'SYSTEM', 'string', 'sys_job_group', '', 1, 20, '系统分组', 1, '2021-01-30 13:27:43', NULL), +(14, '通知', '1', 'int', 'sys_notice_type', 'warning', 1, 10, '通知', 1, '2021-01-30 13:27:43', '2023-01-05 20:06:47'), +(15, '公告', '2', 'int', 'sys_notice_type', 'info', 1, 20, '公告', 1, '2021-01-30 13:27:43', '2023-01-05 20:06:44'), +(18, '新增', '1', 'int', 'sys_oper_type', 'info', 0, 10, '新增操作', 1, '2021-01-30 13:27:43', NULL), +(19, '修改', '2', 'int', 'sys_oper_type', 'info', 0, 20, '修改操作', 1, '2021-01-30 13:27:43', NULL), +(20, '删除', '3', 'int', 'sys_oper_type', 'error', 0, 30, '删除操作', 1, '2021-01-30 13:27:43', NULL), +(21, '授权', '4', 'int', 'sys_oper_type', 'primary', 0, 40, '授权操作', 1, '2021-01-30 13:27:43', NULL), +(22, '导出', '5', 'int', 'sys_oper_type', 'warning', 0, 50, '导出操作', 1, '2021-01-30 13:27:43', NULL), +(23, '导入', '6', 'int', 'sys_oper_type', 'warning', 0, 60, '导入操作', 1, '2021-01-30 13:27:43', NULL), +(24, '强退', '7', 'int', 'sys_oper_type', 'error', 0, 70, '强退操作', 1, '2021-01-30 13:27:43', NULL), +(25, '生成代码', '8', 'int', 'sys_oper_type', 'warning', 0, 80, '生成操作', 1, '2021-01-30 13:27:43', NULL), +(26, '清空数据', '9', 'int', 'sys_oper_type', 'error', 0, 90, '清空操作', 1, '2021-01-30 13:27:43', NULL), +(28, '校验', '11', 'int', 'sys_oper_type', NULL, 0, 110, '校验', 1, '2021-10-04 22:40:50', '2021-10-04 22:50:02'), +(80, '查询', '10', 'int', 'sys_oper_type', NULL, 0, 100, '查询', 1, '2021-10-04 22:37:38', '2021-10-04 22:49:32'), +(88, 'GET', 'GET', 'string', 'sys_oper_method', '', 0, 10, '', 1, '2022-01-25 10:16:46', '2022-01-25 10:16:46'), +(89, 'POST', 'POST', 'string', 'sys_oper_method', '', 0, 20, '', 1, '2022-01-25 10:16:54', '2022-01-25 10:16:54'), +(90, '请求失败', '-1', 'int', 'req_code', 'warning', 0, 20, '通用错误码', 1, '2022-01-25 10:23:34', '2023-01-06 09:58:17'), +(91, '请求成功', '0', 'int', 'req_code', 'success', 0, 10, '通用成功码', 1, '2022-01-25 10:23:54', '2023-01-06 09:58:14'), +(92, '内部发生错误', '50', 'int', 'req_code', 'error', 0, 30, '内部错误', 1, '2022-01-25 10:24:06', '2023-01-06 09:56:31'), +(95, '不允许的操作', '59', 'int', 'req_code', 'error', 0, 60, '当前操作的给定参数无效', 1, '2022-01-25 10:24:38', '2023-01-06 09:56:00'), +(103, '没有授权登录', '61', 'int', 'req_code', 'warning', 0, 140, '未授权', 1, '2022-01-25 10:26:12', '2023-01-06 09:55:50'), +(109, '业务验证失败', '300', 'int', 'req_code', 'warning', 0, 200, '业务验证失败', 1, '2022-01-25 10:27:51', '2023-01-06 09:56:51'), +(110, '大于50ms', '50', 'int64', 'req_take_up_time', 'success', 0, 10, '', 1, '2022-01-25 15:51:45', '2023-01-06 09:59:50'), +(111, '大于100ms', '100', 'int64', 'req_take_up_time', 'success', 0, 20, '', 1, '2022-01-25 15:51:57', '2023-01-06 09:59:53'), +(112, '大于200ms', '200', 'int64', 'req_take_up_time', 'info', 0, 30, '', 1, '2022-01-25 15:52:21', '2023-01-06 09:59:57'), +(113, '大于500ms', '500', 'int64', 'req_take_up_time', 'warning', 0, 40, '', 1, '2022-01-25 15:52:32', '2023-01-06 10:00:02'), +(114, '大于1000ms', '1000', 'int64', 'req_take_up_time', 'error', 0, 50, '', 1, '2022-01-25 15:52:57', '2023-01-06 10:00:06'), +(115, '大于5000ms', '5000', 'int64', 'req_take_up_time', 'error', 0, 60, '', 1, '2022-01-24 23:54:15', '2023-01-06 10:00:10'), +(116, '开启', '1', 'string', 'sys_switch', 'info', 1, 10, '系统开关开启', 1, '2021-01-30 13:27:43', '2022-12-27 00:00:00'), +(117, '关闭', '0', 'string', 'sys_switch', 'warning', 1, 10, '系统开关关闭', 1, '2021-01-30 13:27:43', '2022-12-27 00:00:00'), +(118, 'PC端', '1', 'int', 'sys_user_channel', 'info', 0, 80, '用户来源', 1, '2021-01-30 13:27:43', '2023-01-05 17:01:21'), +(119, '移动端', '2', 'int', 'sys_user_channel', 'success', 0, 80, '用户来源', 1, '2021-01-30 13:27:43', '2023-01-05 16:52:48'), +(120, '微信', '3', 'int', 'sys_user_channel', 'warning', 0, 80, '用户来源', 1, '2021-01-30 13:27:43', '2023-01-05 16:52:43'), +(121, '抖音', '4', 'int', 'sys_user_channel', 'error', 0, 80, '用户来源', 1, '2021-01-30 13:27:43', '2023-01-05 16:52:39'), +(122, '音乐', '1', 'int', 'sys_user_hobby', 'error', 0, 80, '爱好类型', 1, '2021-01-30 13:27:43', '2023-01-06 09:45:11'), +(123, '读书', '2', 'int', 'sys_user_hobby', 'info', 0, 80, '爱好类型', 1, '2021-01-30 13:27:43', '2023-01-06 09:45:08'), +(124, '游泳', '3', 'int', 'sys_user_hobby', 'warning', 0, 80, '爱好类型', 1, '2021-01-30 13:27:43', '2023-01-06 09:45:05'), +(125, '本地存储', 'local', 'string', 'config_upload_drive', 'info', 1, 10, '', 1, '2022-12-30 17:57:50', '2023-01-06 10:02:31'), +(126, 'UC云存储', 'ucloud', 'string', 'config_upload_drive', 'success', 1, 20, '', 1, '2022-12-30 17:58:26', '2022-12-30 17:58:26'); -- -------------------------------------------------------- @@ -771,16 +792,16 @@ INSERT INTO `hg_sys_dict_data` (`id`, `label`, `value`, `type`, `list_class`, `i -- CREATE TABLE `hg_sys_dict_type` ( - `id` bigint NOT NULL COMMENT '字典主键', - `pid` bigint NOT NULL COMMENT '父类ID', - `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '字典名称', - `type` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '字典类型', - `sort` int DEFAULT '0' COMMENT '排序', - `remark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '备注', - `status` tinyint(1) DEFAULT '1' COMMENT '状态', + `id` bigint(20) NOT NULL COMMENT '字典类型ID', + `pid` bigint(20) NOT NULL COMMENT '父类字典类型ID', + `name` varchar(100) DEFAULT '' COMMENT '字典类型名称', + `type` varchar(100) DEFAULT '' COMMENT '字典类型', + `sort` int(11) DEFAULT '0' COMMENT '排序', + `remark` varchar(500) DEFAULT NULL COMMENT '备注', + `status` tinyint(1) DEFAULT '1' COMMENT '字典类型状态', `created_at` datetime DEFAULT NULL COMMENT '创建时间', `updated_at` datetime DEFAULT NULL COMMENT '更新时间' -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='字典类型表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统_字典类型'; -- -- 转存表中的数据 `hg_sys_dict_type` @@ -789,20 +810,11 @@ CREATE TABLE `hg_sys_dict_type` ( INSERT INTO `hg_sys_dict_type` (`id`, `pid`, `name`, `type`, `sort`, `remark`, `status`, `created_at`, `updated_at`) VALUES (1, 27, '用户性别', 'sys_user_sex', 0, '用户性别列表', 1, '2021-01-30 13:27:43', '2021-03-24 11:38:47'), (2, 28, '菜单状态', 'sys_show_hide', 0, '菜单状态列表', 1, '2021-01-30 13:27:43', NULL), -(3, 28, '系统开关', 'sys_normal_disable', 0, '系统开关列表', 1, '2021-01-30 13:27:43', NULL), +(3, 28, '系统状态', 'sys_normal_disable', 0, '系统状态列表', 1, '2021-01-30 13:27:43', NULL), (4, 26, '任务状态', 'sys_job_status', 0, '任务状态列表', 1, '2021-01-30 13:27:43', NULL), (5, 26, '任务分组', 'sys_job_group', 0, '任务分组列表', 1, '2021-01-30 13:27:43', NULL), -(6, 28, '系统是否', 'sys_yes_no', 0, '系统是否列表', 1, '2021-01-30 13:27:43', NULL), (7, 29, '通知类型', 'sys_notice_type', 0, '通知类型列表', 1, '2021-01-30 13:27:43', NULL), -(8, 29, '通知状态', 'sys_notice_status', 0, '通知状态列表', 1, '2021-01-30 13:27:43', NULL), (9, 28, '操作类型', 'sys_oper_type', 0, '操作类型列表', 1, '2021-01-30 13:27:43', NULL), -(10, 28, '系统状态', 'sys_common_status', 0, '登录状态列表', 1, '2021-01-30 13:27:43', NULL), -(11, 28, '是否有效', 'sys_is_valid', 0, NULL, 1, '2021-05-27 10:10:26', '2021-05-27 10:10:26'), -(12, 28, '是否启动', 'is_active', 0, NULL, 1, '2021-08-12 16:15:39', '2021-08-12 16:15:39'), -(13, 27, '用户类型', 'sys_user_type', 0, NULL, 1, '2021-03-01 11:41:07', '2021-03-01 11:41:07'), -(14, 27, '部门类型', 'sys_dept_type', 0, '1', 1, '2021-02-25 17:11:16', '2021-02-25 17:11:16'), -(15, 28, '门户应用范围', 'sys_portal_range', 0, '测试1', 1, NULL, '2022-01-22 20:30:55'), -(21, 25, '操作模块', 'sys_oper_module', 0, '', 1, '2022-01-24 11:33:16', '2022-01-24 11:33:16'), (22, 25, '请求方式', 'sys_oper_method', 0, '', 1, '2022-01-24 11:33:16', '2022-01-24 11:33:16'), (23, 25, '请求状态码', 'req_code', 0, '', 1, '2022-01-25 10:22:40', '2022-01-25 10:22:40'), (24, 25, '请求耗时', 'req_take_up_time', 0, '', 1, '2022-01-25 15:51:19', '2022-01-25 15:51:19'), @@ -810,7 +822,72 @@ INSERT INTO `hg_sys_dict_type` (`id`, `pid`, `name`, `type`, `sort`, `remark`, ` (26, 0, '任务枚举', 'job', 30, '', 1, '2022-01-24 11:33:16', '2022-01-24 11:33:16'), (27, 0, '组织枚举', 'org', 20, '', 1, '2022-01-24 11:33:16', '2022-01-24 11:33:16'), (28, 0, '系统枚举', 'sys', 10, '', 1, '2022-01-24 11:33:16', '2022-01-24 11:33:16'), -(29, 0, '通知枚举', 'notice', 50, '', 1, '2022-01-24 11:33:16', '2022-01-24 11:33:16'); +(29, 0, '通知枚举', 'notice', 50, '', 1, '2022-01-24 11:33:16', '2022-01-24 11:33:16'), +(30, 27, '用户爱好', 'sys_user_hobby', 0, NULL, 1, '2021-03-01 11:41:07', '2021-03-01 11:41:07'), +(31, 27, '用户渠道', 'sys_user_channel', 0, NULL, 1, '2021-03-01 11:41:07', '2021-03-01 11:41:07'), +(32, 0, '配置枚举', 'config', 60, '', 1, '2022-12-30 17:55:42', '2022-12-30 17:55:53'), +(33, 32, '上传驱动', 'config_upload_drive', 10, '', 1, '2022-12-30 17:57:18', '2022-12-30 17:57:18'); + +-- -------------------------------------------------------- + +-- +-- 表的结构 `hg_sys_gen_codes` +-- + +CREATE TABLE `hg_sys_gen_codes` ( + `id` bigint(20) NOT NULL COMMENT '生成ID', + `gen_type` int(10) UNSIGNED NOT NULL COMMENT '生成类型', + `var_name` varchar(255) NOT NULL COMMENT '实体命名', + `options` json DEFAULT NULL COMMENT '配置选项', + `db_name` varchar(128) DEFAULT NULL COMMENT '数据库名称', + `table_name` varchar(255) NOT NULL COMMENT '主表名称', + `table_comment` varchar(255) DEFAULT NULL COMMENT '主表注释', + `dao_name` varchar(255) DEFAULT NULL COMMENT '主表dao模型', + `master_columns` json DEFAULT NULL COMMENT '主表字段', + `status` tinyint(1) DEFAULT '1' COMMENT '生成状态', + `created_at` datetime DEFAULT NULL COMMENT '创建时间', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间' +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统_代码生成记录'; + +-- +-- 转存表中的数据 `hg_sys_gen_codes` +-- + +INSERT INTO `hg_sys_gen_codes` (`id`, `gen_type`, `var_name`, `options`, `db_name`, `table_name`, `table_comment`, `dao_name`, `master_columns`, `status`, `created_at`, `updated_at`) VALUES +(21, 10, 'CurdDemo', '{\"join\": [{\"uuid\": \"pgJsFoqfaGjqgKjy\", \"alias\": \"testCategory\", \"field\": \"id\", \"columns\": [{\"dc\": \"分类ID\", \"id\": 1, \"name\": \"id\", \"extra\": \"auto_increment\", \"index\": \"PRI\", \"goName\": \"TestCategoryId\", \"goType\": \"int64\", \"isEdit\": false, \"isList\": false, \"isSort\": false, \"length\": 0, \"tsName\": \"testCategoryId\", \"tsType\": \"number\", \"unique\": false, \"isQuery\": false, \"sqlType\": \"bigint(20)\", \"dataType\": \"bigint\", \"dictType\": 0, \"formMode\": \"\", \"formRole\": \"\", \"isExport\": false, \"required\": false, \"queryWhere\": \"=\", \"isAllowNull\": \"NO\", \"defaultValue\": 0}, {\"dc\": \"分类名称\", \"id\": 2, \"name\": \"name\", \"extra\": \"\", \"index\": \"\", \"goName\": \"TestCategoryName\", \"goType\": \"string\", \"isEdit\": false, \"isList\": true, \"isSort\": false, \"length\": 255, \"tsName\": \"testCategoryName\", \"tsType\": \"string\", \"unique\": false, \"isQuery\": true, \"sqlType\": \"varchar(255)\", \"dataType\": \"varchar\", \"dictType\": 0, \"formMode\": \"\", \"formRole\": \"\", \"isExport\": true, \"required\": false, \"queryWhere\": \"LIKE\", \"isAllowNull\": \"NO\", \"defaultValue\": \"\"}, {\"dc\": \"描述\", \"id\": 3, \"name\": \"description\", \"extra\": \"\", \"index\": \"\", \"goName\": \"TestCategoryDescription\", \"goType\": \"string\", \"isEdit\": false, \"isList\": false, \"isSort\": false, \"length\": 255, \"tsName\": \"testCategoryDescription\", \"tsType\": \"string\", \"unique\": false, \"isQuery\": false, \"sqlType\": \"varchar(255)\", \"dataType\": \"varchar\", \"dictType\": 0, \"formMode\": \"\", \"formRole\": \"\", \"isExport\": false, \"required\": false, \"queryWhere\": \"LIKE\", \"isAllowNull\": \"YES\", \"defaultValue\": \"\"}, {\"dc\": \"排序\", \"id\": 4, \"name\": \"sort\", \"extra\": \"\", \"index\": \"\", \"goName\": \"TestCategorySort\", \"goType\": \"int\", \"isEdit\": false, \"isList\": false, \"isSort\": false, \"length\": 0, \"tsName\": \"testCategorySort\", \"tsType\": \"number\", \"unique\": false, \"isQuery\": false, \"sqlType\": \"int(11)\", \"dataType\": \"int\", \"dictType\": 0, \"formMode\": \"\", \"formRole\": \"\", \"isExport\": false, \"required\": false, \"queryWhere\": \"=\", \"isAllowNull\": \"NO\", \"defaultValue\": 0}, {\"dc\": \"备注\", \"id\": 5, \"name\": \"remark\", \"extra\": \"\", \"index\": \"\", \"goName\": \"TestCategoryRemark\", \"goType\": \"string\", \"isEdit\": false, \"isList\": false, \"isSort\": false, \"length\": 255, \"tsName\": \"testCategoryRemark\", \"tsType\": \"string\", \"unique\": false, \"isQuery\": false, \"sqlType\": \"varchar(255)\", \"dataType\": \"varchar\", \"dictType\": 0, \"formMode\": \"\", \"formRole\": \"\", \"isExport\": false, \"required\": false, \"queryWhere\": \"LIKE\", \"isAllowNull\": \"YES\", \"defaultValue\": \"\"}, {\"dc\": \"状态\", \"id\": 6, \"name\": \"status\", \"extra\": \"\", \"index\": \"\", \"goName\": \"TestCategoryStatus\", \"goType\": \"int\", \"isEdit\": false, \"isList\": false, \"isSort\": false, \"length\": 0, \"tsName\": \"testCategoryStatus\", \"tsType\": \"number\", \"unique\": false, \"isQuery\": false, \"sqlType\": \"tinyint(1)\", \"dataType\": \"tinyint\", \"dictType\": 0, \"formMode\": \"\", \"formRole\": \"\", \"isExport\": false, \"required\": false, \"queryWhere\": \"=\", \"isAllowNull\": \"YES\", \"defaultValue\": 1}, {\"dc\": \"创建时间\", \"id\": 7, \"name\": \"created_at\", \"extra\": \"\", \"index\": \"\", \"goName\": \"TestCategoryCreatedAt\", \"goType\": \"*gtime.Time\", \"isEdit\": false, \"isList\": false, \"isSort\": false, \"length\": 0, \"tsName\": \"testCategoryCreatedAt\", \"tsType\": \"string\", \"unique\": false, \"isQuery\": false, \"sqlType\": \"datetime\", \"dataType\": \"datetime\", \"dictType\": 0, \"formMode\": \"\", \"formRole\": \"\", \"isExport\": false, \"required\": false, \"queryWhere\": \"=\", \"isAllowNull\": \"YES\", \"defaultValue\": \"\"}, {\"dc\": \"修改时间\", \"id\": 8, \"name\": \"updated_at\", \"extra\": \"\", \"index\": \"\", \"goName\": \"TestCategoryUpdatedAt\", \"goType\": \"*gtime.Time\", \"isEdit\": false, \"isList\": false, \"isSort\": false, \"length\": 0, \"tsName\": \"testCategoryUpdatedAt\", \"tsType\": \"string\", \"unique\": false, \"isQuery\": false, \"sqlType\": \"datetime\", \"dataType\": \"datetime\", \"dictType\": 0, \"formMode\": \"\", \"formRole\": \"\", \"isExport\": false, \"required\": false, \"queryWhere\": \"=\", \"isAllowNull\": \"YES\", \"defaultValue\": \"\"}, {\"dc\": \"删除时间\", \"id\": 9, \"name\": \"deleted_at\", \"extra\": \"\", \"index\": \"\", \"goName\": \"TestCategoryDeletedAt\", \"goType\": \"*gtime.Time\", \"isEdit\": false, \"isList\": false, \"isSort\": false, \"length\": 0, \"tsName\": \"testCategoryDeletedAt\", \"tsType\": \"string\", \"unique\": false, \"isQuery\": false, \"sqlType\": \"datetime\", \"dataType\": \"datetime\", \"dictType\": 0, \"formMode\": \"\", \"formRole\": \"\", \"isExport\": false, \"required\": false, \"queryWhere\": \"=\", \"isAllowNull\": \"YES\", \"defaultValue\": \"\"}], \"daoName\": \"TestCategory\", \"linkMode\": 1, \"linkTable\": \"hg_test_category\", \"masterField\": \"category_id\"}], \"menu\": {\"pid\": 2097, \"icon\": \"MenuOutlined\", \"sort\": 200}, \"autoOps\": [\"genMenuPermissions\", \"runDao\", \"runService\", \"forcedCover\"], \"headOps\": [\"add\", \"batchDel\", \"export\"], \"columnOps\": [\"edit\", \"del\", \"view\", \"status\", \"switch\", \"check\"]}', 'default', 'hg_sys_gen_curd_demo', '生成演示', 'SysGenCurdDemo', '[{\"dc\": \"ID\", \"id\": 1, \"name\": \"id\", \"extra\": \"auto_increment\", \"index\": \"PRI\", \"goName\": \"Id\", \"goType\": \"int64\", \"isEdit\": false, \"isList\": true, \"isSort\": true, \"length\": 0, \"tsName\": \"id\", \"tsType\": \"number\", \"unique\": false, \"isQuery\": true, \"sqlType\": \"bigint(20)\", \"dataType\": \"bigint\", \"dictType\": 0, \"formMode\": \"InputNumber\", \"formRole\": \"none\", \"isExport\": true, \"required\": false, \"queryWhere\": \"=\", \"isAllowNull\": \"NO\", \"defaultValue\": 0}, {\"dc\": \"分类ID\", \"id\": 2, \"name\": \"category_id\", \"extra\": \"\", \"index\": \"\", \"goName\": \"CategoryId\", \"goType\": \"int64\", \"isEdit\": true, \"isList\": true, \"isSort\": false, \"length\": 0, \"tsName\": \"categoryId\", \"tsType\": \"number\", \"unique\": false, \"isQuery\": false, \"sqlType\": \"bigint(20)\", \"dataType\": \"bigint\", \"dictType\": 0, \"formMode\": \"InputNumber\", \"formRole\": \"none\", \"isExport\": true, \"required\": false, \"queryWhere\": \"=\", \"isAllowNull\": \"NO\", \"defaultValue\": 0}, {\"dc\": \"标题\", \"id\": 3, \"name\": \"title\", \"extra\": \"\", \"index\": \"\", \"goName\": \"Title\", \"goType\": \"string\", \"isEdit\": true, \"isList\": true, \"isSort\": false, \"length\": 255, \"tsName\": \"title\", \"tsType\": \"string\", \"unique\": false, \"isQuery\": false, \"sqlType\": \"varchar(255)\", \"dataType\": \"varchar\", \"dictType\": 0, \"formMode\": \"Input\", \"formRole\": \"none\", \"isExport\": true, \"required\": false, \"queryWhere\": \"LIKE\", \"isAllowNull\": \"NO\", \"defaultValue\": \"\"}, {\"dc\": \"描述\", \"id\": 4, \"name\": \"description\", \"extra\": \"\", \"index\": \"\", \"goName\": \"Description\", \"goType\": \"string\", \"isEdit\": true, \"isList\": true, \"isSort\": false, \"length\": 255, \"tsName\": \"description\", \"tsType\": \"string\", \"unique\": false, \"isQuery\": false, \"sqlType\": \"varchar(255)\", \"dataType\": \"varchar\", \"dictType\": 0, \"formMode\": \"InputTextarea\", \"formRole\": \"none\", \"isExport\": true, \"required\": false, \"queryWhere\": \"LIKE\", \"isAllowNull\": \"NO\", \"defaultValue\": \"\"}, {\"dc\": \"内容\", \"id\": 5, \"name\": \"content\", \"extra\": \"\", \"index\": \"\", \"goName\": \"Content\", \"goType\": \"string\", \"isEdit\": true, \"isList\": false, \"isSort\": false, \"length\": 65535, \"tsName\": \"content\", \"tsType\": \"string\", \"unique\": false, \"isQuery\": false, \"sqlType\": \"text\", \"dataType\": \"text\", \"dictType\": 0, \"formMode\": \"InputEditor\", \"formRole\": \"none\", \"isExport\": false, \"required\": false, \"queryWhere\": \"LIKE %...%\", \"isAllowNull\": \"NO\", \"defaultValue\": \"\"}, {\"dc\": \"单图\", \"id\": 6, \"name\": \"image\", \"extra\": \"\", \"index\": \"\", \"goName\": \"Image\", \"goType\": \"string\", \"isEdit\": true, \"isList\": true, \"isSort\": false, \"length\": 255, \"tsName\": \"image\", \"tsType\": \"string\", \"unique\": false, \"isQuery\": false, \"sqlType\": \"varchar(255)\", \"dataType\": \"varchar\", \"dictType\": 0, \"formMode\": \"UploadImage\", \"formRole\": \"none\", \"isExport\": true, \"required\": true, \"queryWhere\": \"LIKE\", \"isAllowNull\": \"YES\", \"defaultValue\": \"\"}, {\"dc\": \"附件\", \"id\": 7, \"name\": \"attachfile\", \"extra\": \"\", \"index\": \"\", \"goName\": \"Attachfile\", \"goType\": \"string\", \"isEdit\": true, \"isList\": true, \"isSort\": false, \"length\": 255, \"tsName\": \"attachfile\", \"tsType\": \"string\", \"unique\": false, \"isQuery\": false, \"sqlType\": \"varchar(255)\", \"dataType\": \"varchar\", \"dictType\": 0, \"formMode\": \"UploadFile\", \"formRole\": \"none\", \"isExport\": true, \"required\": true, \"queryWhere\": \"LIKE\", \"isAllowNull\": \"YES\", \"defaultValue\": \"\"}, {\"dc\": \"显示开关\", \"id\": 8, \"name\": \"switch\", \"extra\": \"\", \"index\": \"\", \"goName\": \"Switch\", \"goType\": \"int\", \"isEdit\": true, \"isList\": true, \"isSort\": false, \"length\": 0, \"tsName\": \"switch\", \"tsType\": \"number\", \"unique\": false, \"isQuery\": false, \"sqlType\": \"int(11)\", \"dataType\": \"int\", \"dictType\": 0, \"formMode\": \"Switch\", \"formRole\": \"none\", \"isExport\": true, \"required\": true, \"queryWhere\": \"=\", \"isAllowNull\": \"YES\", \"defaultValue\": 1}, {\"dc\": \"排序\", \"id\": 9, \"name\": \"sort\", \"extra\": \"\", \"index\": \"\", \"goName\": \"Sort\", \"goType\": \"int\", \"isEdit\": true, \"isList\": true, \"isSort\": true, \"length\": 0, \"tsName\": \"sort\", \"tsType\": \"number\", \"unique\": false, \"isQuery\": false, \"sqlType\": \"int(11)\", \"dataType\": \"int\", \"dictType\": 0, \"formMode\": \"InputNumber\", \"formRole\": \"none\", \"isExport\": true, \"required\": false, \"queryWhere\": \"=\", \"isAllowNull\": \"NO\", \"defaultValue\": 0}, {\"dc\": \"状态\", \"id\": 10, \"name\": \"status\", \"extra\": \"\", \"index\": \"\", \"goName\": \"Status\", \"goType\": \"int\", \"isEdit\": true, \"isList\": true, \"isSort\": false, \"length\": 0, \"tsName\": \"status\", \"tsType\": \"number\", \"unique\": false, \"isQuery\": true, \"sqlType\": \"tinyint(1)\", \"dataType\": \"tinyint\", \"dictType\": 3, \"formMode\": \"Select\", \"formRole\": \"none\", \"isExport\": true, \"required\": true, \"queryWhere\": \"=\", \"isAllowNull\": \"YES\", \"defaultValue\": 1}, {\"dc\": \"创建者\", \"id\": 11, \"name\": \"created_by\", \"extra\": \"\", \"index\": \"\", \"goName\": \"CreatedBy\", \"goType\": \"int64\", \"isEdit\": false, \"isList\": false, \"isSort\": false, \"length\": 0, \"tsName\": \"createdBy\", \"tsType\": \"number\", \"unique\": false, \"isQuery\": false, \"sqlType\": \"bigint(20)\", \"dataType\": \"bigint\", \"dictType\": 0, \"formMode\": \"InputNumber\", \"formRole\": \"none\", \"isExport\": false, \"required\": true, \"queryWhere\": \"=\", \"isAllowNull\": \"YES\", \"defaultValue\": 0}, {\"dc\": \"更新者\", \"id\": 12, \"name\": \"updated_by\", \"extra\": \"\", \"index\": \"\", \"goName\": \"UpdatedBy\", \"goType\": \"int64\", \"isEdit\": false, \"isList\": false, \"isSort\": false, \"length\": 0, \"tsName\": \"updatedBy\", \"tsType\": \"number\", \"unique\": false, \"isQuery\": false, \"sqlType\": \"bigint(20)\", \"dataType\": \"bigint\", \"dictType\": 0, \"formMode\": \"InputNumber\", \"formRole\": \"none\", \"isExport\": false, \"required\": true, \"queryWhere\": \"=\", \"isAllowNull\": \"YES\", \"defaultValue\": 0}, {\"dc\": \"创建时间\", \"id\": 13, \"name\": \"created_at\", \"extra\": \"\", \"index\": \"\", \"goName\": \"CreatedAt\", \"goType\": \"*gtime.Time\", \"isEdit\": false, \"isList\": true, \"isSort\": false, \"length\": 0, \"tsName\": \"createdAt\", \"tsType\": \"string\", \"unique\": false, \"isQuery\": true, \"sqlType\": \"datetime\", \"dataType\": \"datetime\", \"dictType\": 0, \"formMode\": \"TimeRange\", \"formRole\": \"none\", \"isExport\": true, \"required\": true, \"queryWhere\": \"BETWEEN\", \"isAllowNull\": \"YES\", \"defaultValue\": \"\"}, {\"dc\": \"修改时间\", \"id\": 14, \"name\": \"updated_at\", \"extra\": \"\", \"index\": \"\", \"goName\": \"UpdatedAt\", \"goType\": \"*gtime.Time\", \"isEdit\": false, \"isList\": false, \"isSort\": false, \"length\": 0, \"tsName\": \"updatedAt\", \"tsType\": \"string\", \"unique\": false, \"isQuery\": false, \"sqlType\": \"datetime\", \"dataType\": \"datetime\", \"dictType\": 0, \"formMode\": \"Time\", \"formRole\": \"none\", \"isExport\": false, \"required\": true, \"queryWhere\": \"=\", \"isAllowNull\": \"YES\", \"defaultValue\": \"\"}, {\"dc\": \"删除时间\", \"id\": 15, \"name\": \"deleted_at\", \"extra\": \"\", \"index\": \"\", \"goName\": \"DeletedAt\", \"goType\": \"*gtime.Time\", \"isEdit\": false, \"isList\": false, \"isSort\": false, \"length\": 0, \"tsName\": \"deletedAt\", \"tsType\": \"string\", \"unique\": false, \"isQuery\": false, \"sqlType\": \"datetime\", \"dataType\": \"datetime\", \"dictType\": 0, \"formMode\": \"Time\", \"formRole\": \"none\", \"isExport\": false, \"required\": true, \"queryWhere\": \"=\", \"isAllowNull\": \"YES\", \"defaultValue\": \"\"}]', 1, '2023-01-18 11:51:22', '2023-01-18 15:19:42'); + +-- -------------------------------------------------------- + +-- +-- 表的结构 `hg_sys_gen_curd_demo` +-- + +CREATE TABLE `hg_sys_gen_curd_demo` ( + `id` bigint(20) NOT NULL COMMENT 'ID', + `category_id` bigint(20) NOT NULL COMMENT '分类ID', + `title` varchar(255) NOT NULL COMMENT '标题', + `description` varchar(255) NOT NULL COMMENT '描述', + `content` text NOT NULL COMMENT '内容', + `image` varchar(255) DEFAULT NULL COMMENT '单图', + `attachfile` varchar(255) DEFAULT NULL COMMENT '附件', + `switch` int(11) DEFAULT '1' COMMENT '显示开关', + `sort` int(11) NOT NULL COMMENT '排序', + `status` tinyint(1) DEFAULT '1' COMMENT '状态', + `created_by` bigint(20) DEFAULT '0' COMMENT '创建者', + `updated_by` bigint(20) DEFAULT '0' COMMENT '更新者', + `created_at` datetime DEFAULT NULL COMMENT '创建时间', + `updated_at` datetime DEFAULT NULL COMMENT '修改时间', + `deleted_at` datetime DEFAULT NULL COMMENT '删除时间' +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统_生成curd演示'; + +-- +-- 转存表中的数据 `hg_sys_gen_curd_demo` +-- + +INSERT INTO `hg_sys_gen_curd_demo` (`id`, `category_id`, `title`, `description`, `content`, `image`, `attachfile`, `switch`, `sort`, `status`, `created_by`, `updated_by`, `created_at`, `updated_at`, `deleted_at`) VALUES +(1, 1, '测试标题2', '描述.', '

啦啦啦啦

啦啦啦啦啦啦啦啦啦啦啦啦

', 'https://bufanyun.cn-bj.ufileos.com/hotgo/logo.sig.png', 'http://bufanyun.cn-bj.ufileos.com/hotgo/attachment/2022-12-30/cpf1x44idoycrtajf2.xlsx', 1, 20, 1, 0, 1, '2022-12-15 19:30:14', '2023-01-18 14:56:39', NULL), +(2, 2, '测试标题1', '描述', '

哈哈哈

哈哈哈哈

哈哈哈哈哈哈

', 'http://localhost:8000//attachment/2022-12-29/cpea9g76jq4cyxvg8c.jpg', 'http://bufanyun.cn-bj.ufileos.com/hotgo/attachment/2022-12-30/cpf1fy77osc0oap1ns.doc', 1, 10, 1, 1, 1, '2022-12-23 16:53:07', '2023-01-18 15:20:37', NULL), +(10, 3, '测试标题3', '描述', '

6666666

', 'http://bufanyun.cn-bj.ufileos.com/hotgo/attachment/2023-01-18/cpv4crzjksw0ejqd0a.jpeg', 'http://bufanyun.cn-bj.ufileos.com/hotgo/attachment/2022-12-30/cpf1fy77osc0oap1ns.doc', 1, 30, 1, 1, 0, '2023-01-18 14:57:41', '2023-01-18 14:57:41', NULL); -- -------------------------------------------------------- @@ -819,30 +896,30 @@ INSERT INTO `hg_sys_dict_type` (`id`, `pid`, `name`, `type`, `sort`, `remark`, ` -- CREATE TABLE `hg_sys_log` ( - `id` bigint NOT NULL, - `app_id` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '应用id', - `merchant_id` bigint UNSIGNED DEFAULT '0' COMMENT '商户id', - `member_id` bigint DEFAULT '0' COMMENT '用户id', - `method` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '提交类型', - `module` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '模块', - `url` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '提交url', + `id` bigint(20) NOT NULL COMMENT '日志ID', + `app_id` varchar(50) DEFAULT '' COMMENT '应用ID', + `merchant_id` bigint(20) UNSIGNED DEFAULT '0' COMMENT '商户ID', + `member_id` bigint(20) DEFAULT '0' COMMENT '用户ID', + `method` varchar(20) DEFAULT NULL COMMENT '提交类型', + `module` varchar(50) DEFAULT NULL COMMENT '访问模块', + `url` varchar(1000) DEFAULT NULL COMMENT '提交url', `get_data` json DEFAULT NULL COMMENT 'get数据', `post_data` json DEFAULT NULL COMMENT 'post数据', `header_data` json DEFAULT NULL COMMENT 'header数据', - `ip` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'ip地址', - `province_id` bigint NOT NULL DEFAULT '0' COMMENT '省编码', - `city_id` bigint NOT NULL DEFAULT '0' COMMENT '市编码', - `error_code` int DEFAULT '0' COMMENT '报错code', - `error_msg` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '报错信息', + `ip` varchar(64) DEFAULT NULL COMMENT 'IP地址', + `province_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '省编码', + `city_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '市编码', + `error_code` int(11) DEFAULT '0' COMMENT '报错code', + `error_msg` varchar(1000) DEFAULT NULL COMMENT '报错信息', `error_data` json DEFAULT NULL COMMENT '报错日志', - `req_id` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '对外id', - `timestamp` bigint DEFAULT '0' COMMENT '响应时间', - `user_agent` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'UA信息', - `take_up_time` bigint DEFAULT '0' COMMENT '请求耗时', + `req_id` varchar(50) DEFAULT NULL COMMENT '对外ID', + `timestamp` bigint(20) DEFAULT '0' COMMENT '响应时间', + `user_agent` varchar(512) DEFAULT NULL COMMENT 'UA信息', + `take_up_time` bigint(20) DEFAULT '0' COMMENT '请求耗时', `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态', `created_at` datetime DEFAULT NULL COMMENT '创建时间', `updated_at` datetime DEFAULT NULL COMMENT '修改时间' -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='公用_日志'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统_全局日志'; -- -------------------------------------------------------- @@ -851,3715 +928,3800 @@ CREATE TABLE `hg_sys_log` ( -- CREATE TABLE `hg_sys_provinces` ( - `id` bigint NOT NULL COMMENT 'ID', - `title` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '栏目名', - `pid` bigint NOT NULL DEFAULT '0' COMMENT '父栏目', - `short_title` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '缩写', - `areacode` int DEFAULT '0' COMMENT '区域编码', - `zipcode` int DEFAULT '0' COMMENT '邮政编码', - `pinyin` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '拼音', - `lng` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '经度', - `lat` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '纬度', - `level` int NOT NULL DEFAULT '1' COMMENT '级别', - `tree` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, - `sort` int DEFAULT '0' COMMENT '排序', + `id` bigint(20) NOT NULL COMMENT '省市区ID', + `title` varchar(50) NOT NULL DEFAULT '' COMMENT '栏目名称', + `short_title` varchar(50) DEFAULT '' COMMENT '缩写', + `areacode` int(11) DEFAULT '0' COMMENT '区域编码', + `zipcode` int(11) DEFAULT '0' COMMENT '邮政编码', + `pinyin` varchar(100) DEFAULT '' COMMENT '拼音', + `lng` varchar(20) DEFAULT '' COMMENT '经度', + `lat` varchar(20) DEFAULT '' COMMENT '纬度', + `pid` bigint(20) NOT NULL DEFAULT '0' COMMENT '父栏目', + `level` int(11) NOT NULL DEFAULT '1' COMMENT '关系树等级', + `tree` varchar(200) NOT NULL COMMENT '关系', + `sort` int(11) DEFAULT '0' COMMENT '排序', `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态', `created_at` datetime DEFAULT NULL COMMENT '创建时间', `updated_at` datetime DEFAULT NULL COMMENT '更新时间' -) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='公用_省市区记录表'; +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='系统_省市区编码'; -- -- 转存表中的数据 `hg_sys_provinces` -- -INSERT INTO `hg_sys_provinces` (`id`, `title`, `pid`, `short_title`, `areacode`, `zipcode`, `pinyin`, `lng`, `lat`, `level`, `tree`, `sort`, `status`, `created_at`, `updated_at`) VALUES -(810000, '香港特别行政区', 0, '', 0, 0, 'X', '114.18612410257', '22.29358599328', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(810100, '九龙', 810000, '', 0, 0, 'J', '101.51341566718', '29.006431902925', 2, 'tr_0 tr_810000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(810101, '观塘区', 810100, '', 0, 0, 'G', '114.23743100142', '22.316803500017', 3, 'tr_0 tr_810000 tr_810100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(810102, '黄大仙区', 810100, '', 0, 0, 'H', '114.2055528338', '22.344516581114', 3, 'tr_0 tr_810000 tr_810100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(810103, '九龙城区', 810100, '', 0, 0, 'J', '114.19855413557', '22.325722838593', 3, 'tr_0 tr_810000 tr_810100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(810104, '深水埗区', 810100, '', 0, 0, 'S', '114.17556515012', '22.334814518942', 3, 'tr_0 tr_810000 tr_810100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(810105, '油尖旺区', 810100, '', 0, 0, 'Y', '114.17854456', '22.306583887776', 3, 'tr_0 tr_810000 tr_810100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(810200, '香港岛', 810000, '', 0, 0, 'X', '114.1838696432', '22.272099587606', 2, 'tr_0 tr_810000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(810201, '东区', 810200, '', 0, 0, 'D', '114.03675495515', '32.983906128946', 3, 'tr_0 tr_810000 tr_810200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(810202, '南区', 810200, '', 0, 0, 'N', '114.18612410257', '22.29358599328', 3, 'tr_0 tr_810000 tr_810200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(810203, '湾仔区', 810200, '', 0, 0, 'W', '114.1838696432', '22.272099587606', 3, 'tr_0 tr_810000 tr_810200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(810204, '中西区', 810200, '', 0, 0, 'Z', '114.15949141031', '22.291342714292', 3, 'tr_0 tr_810000 tr_810200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(810300, '新界', 810000, '', 0, 0, 'X', '114.18612410257', '22.29358599328', 2, 'tr_0 tr_810000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(810301, '北区', 810300, '', 0, 0, 'B', '114.56208137457', '38.029818054403', 3, 'tr_0 tr_810000 tr_810300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(810302, '大埔区', 810300, '', 0, 0, 'D', '114.14670082713', '22.427434108219', 3, 'tr_0 tr_810000 tr_810300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(810303, '葵青区', 810300, '', 0, 0, 'K', '114.14347453324', '22.36661881253', 3, 'tr_0 tr_810000 tr_810300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(810304, '离岛区', 810300, '', 0, 0, 'L', '113.95154733906', '22.286066480198', 3, 'tr_0 tr_810000 tr_810300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(810305, '荃湾区', 810300, '', 0, 0, 'Q', '114.126440954', '22.378243962528', 3, 'tr_0 tr_810000 tr_810300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(810306, '沙田区', 810300, '', 0, 0, 'S', '114.19855144065', '22.388522255034', 3, 'tr_0 tr_810000 tr_810300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(810307, '屯门区', 810300, '', 0, 0, 'T', '113.98745602385', '22.393584799271', 3, 'tr_0 tr_810000 tr_810300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(810308, '西贡区', 810300, '', 0, 0, 'X', '114.28352485373', '22.385077305939', 3, 'tr_0 tr_810000 tr_810300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(810309, '元朗区', 810300, '', 0, 0, 'Y', '114.03850969037', '22.448564780865', 3, 'tr_0 tr_810000 tr_810300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(820000, '澳门特别行政区', 0, '', 0, 0, 'A', '113.55751910182', '22.204117988443', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(820100, '离岛', 820000, '', 0, 0, 'L', '113.55751910182', '22.204117988443', 2, 'tr_0 tr_820000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(820101, '嘉模堂区', 820100, '', 0, 0, 'J', '113.56551473951', '22.163142309955', 3, 'tr_0 tr_820000 tr_820100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(820102, '路氹填海区', 820100, '', 0, 0, 'L', '113.95154733906', '22.286066480198', 3, 'tr_0 tr_820000 tr_820100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(820103, '圣方济各堂区', 820100, '', 0, 0, 'S', '113.95154733906', '22.286066480198', 3, 'tr_0 tr_820000 tr_820100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(820200, '澳门半岛', 820000, '', 0, 0, 'A', '113.56643233517', '22.195004159218', 2, 'tr_0 tr_820000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(820201, '大堂区', 820200, '', 0, 0, 'D', '113.55648488269', '22.18919700752', 3, 'tr_0 tr_820000 tr_820200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(820202, '风顺堂区', 820200, '', 0, 0, 'F', '113.54545108595', '22.192783044934', 3, 'tr_0 tr_820000 tr_820200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(820203, '花地玛堂区', 820200, '', 0, 0, 'H', '113.55751029843', '22.212783524768', 3, 'tr_0 tr_820000 tr_820200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(820204, '花王堂区', 820200, '', 0, 0, 'H', '113.5544936987', '22.206635725923', 3, 'tr_0 tr_820000 tr_820200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(820205, '望德堂区', 820200, '', 0, 0, 'W', '113.5615137766', '22.202511136588', 3, 'tr_0 tr_820000 tr_820200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830000, '台湾省', 0, '', 0, 0, 'T', '121.97387097872', '24.086956718805', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830100, '台北市', 830000, '', 0, 0, 'T', '121.5201088108', '25.063029935612', 2, 'tr_0 tr_830000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830101, '中正区', 830100, '', 0, 0, 'Z', '121.5201088108', '25.063029935612', 3, 'tr_0 tr_830000 tr_830100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830102, '大同区', 830100, '', 0, 0, 'D', '124.81937675979', '46.045583951311', 3, 'tr_0 tr_830000 tr_830100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830103, '中山区', 830100, '', 0, 0, 'Z', '121.65154739367', '38.924511115496', 3, 'tr_0 tr_830000 tr_830100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830104, '万华区', 830100, '', 0, 0, 'W', '121.5201088108', '25.063029935612', 3, 'tr_0 tr_830000 tr_830100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830105, '信义区', 830100, '', 0, 0, 'X', '121.5201088108', '25.063029935612', 3, 'tr_0 tr_830000 tr_830100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830106, '松山区', 830100, '', 0, 0, 'S', '118.9394138505', '42.292481572694', 3, 'tr_0 tr_830000 tr_830100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830107, '大安区', 830100, '', 0, 0, 'D', '104.78041635328', '29.369928541322', 3, 'tr_0 tr_830000 tr_830100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830108, '南港区', 830100, '', 0, 0, 'N', '121.5201088108', '25.063029935612', 3, 'tr_0 tr_830000 tr_830100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830109, '北投区', 830100, '', 0, 0, 'B', '121.5201088108', '25.063029935612', 3, 'tr_0 tr_830000 tr_830100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830110, '内湖区', 830100, '', 0, 0, 'N', '121.5201088108', '25.063029935612', 3, 'tr_0 tr_830000 tr_830100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830111, '士林区', 830100, '', 0, 0, 'S', '121.5201088108', '25.063029935612', 3, 'tr_0 tr_830000 tr_830100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830112, '文山区', 830100, '', 0, 0, 'W', '121.5201088108', '25.063029935612', 3, 'tr_0 tr_830000 tr_830100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830200, '新北市', 830000, '', 0, 0, 'X', '121.97387097872', '24.086956718805', 2, 'tr_0 tr_830000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830201, '板桥区', 830200, '', 0, 0, 'B', '121.46374631322', '25.009264935203', 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830202, '土城区', 830200, '', 0, 0, 'T', '121.45638215646', '24.969575575642', 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830203, '新庄区', 830200, '', 0, 0, 'X', '121.44987794847', '25.035900513246', 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830204, '新店区', 830200, '', 0, 0, 'X', '121.54851057293', '24.931579077246', 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830205, '深坑区', 830200, '', 0, 0, 'S', '121.63248449446', '25.000182732355', 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830206, '石碇区', 830200, '', 0, 0, 'S', '121.64666268478', '24.953083429509', 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830207, '坪林区', 830200, '', 0, 0, 'P', '121.73478767877', '24.915696554977', 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830208, '乌来区', 830200, '', 0, 0, 'W', '121.53050817209', '24.786532168822', 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830209, '五股区', 830200, '', 0, 0, 'W', '121.44461965429', '25.100233770435', 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830210, '八里区', 830200, '', 0, 0, 'B', '121.40465098523', '25.130119585774', 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830211, '林口区', 830200, '', 0, 0, 'L', '121.35894397022', '25.103036147515', 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830212, '淡水区', 830200, '', 0, 0, 'D', '121.47260573633', '25.187238161176', 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830213, '中和区', 830200, '', 0, 0, 'Z', '119.97751429276', '31.836323947624', 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830214, '永和区', 830200, '', 0, 0, 'Y', '121.52736966421', '25.010500528231', 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830215, '三重区', 830200, '', 0, 0, 'S', '121.49687574316', '25.069790814298', 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830216, '芦洲区', 830200, '', 0, 0, 'L', '121.47982274435', '25.091134839883', 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830217, '泰山区', 830200, '', 0, 0, 'T', '117.14141108582', '36.199444601195', 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830218, '树林区', 830200, '', 0, 0, 'S', '121.412622083', '24.984757647837', 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830219, '莺歌区', 830200, '', 0, 0, 'Y', '121.35899891418', '24.958676651245', 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830220, '三峡区', 830200, '', 0, 0, 'S', '121.42609502893', '24.87480469353', 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830221, '汐止区', 830200, '', 0, 0, 'X', '121.66100298061', '25.086721897126', 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830222, '金山区', 830200, '', 0, 0, 'J', '121.34848004512', '30.74785237657', 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830223, '万里区', 830200, '', 0, 0, 'W', '121.66558782234', '25.179420721026', 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830224, '三芝区', 830200, '', 0, 0, 'S', '121.53552324466', '25.233947831353', 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830225, '石门区', 830200, '', 0, 0, 'S', '121.59364212175', '25.261063301582', 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830226, '瑞芳区', 830200, '', 0, 0, 'R', '121.81592241951', '25.092372901641', 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830227, '贡寮区', 830200, '', 0, 0, 'G', '121.92278316131', '25.044375645825', 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830228, '双溪区', 830200, '', 0, 0, 'S', '121.8310510997', '25.001750367683', 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830229, '平溪区', 830200, '', 0, 0, 'P', '121.75897792057', '25.028954662262', 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830300, '桃园市', 830000, '', 0, 0, 'T', '121.97387097872', '24.086956718805', 2, 'tr_0 tr_830000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830301, '桃园区', 830300, '', 0, 0, 'T', '115.95771247803', '39.980514890446', 3, 'tr_0 tr_830000 tr_830300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830302, '中坜区', 830300, '', 0, 0, 'Z', '115.95771247803', '39.980514890446', 3, 'tr_0 tr_830000 tr_830300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830303, '平镇区', 830300, '', 0, 0, 'P', '115.95771247803', '39.980514890446', 3, 'tr_0 tr_830000 tr_830300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830304, '八德区', 830300, '', 0, 0, 'B', '115.95771247803', '39.980514890446', 3, 'tr_0 tr_830000 tr_830300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830305, '杨梅区', 830300, '', 0, 0, 'Y', '110.86164512823', '21.447395667888', 3, 'tr_0 tr_830000 tr_830300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830306, '芦竹区', 830300, '', 0, 0, 'L', '115.95771247803', '39.980514890446', 3, 'tr_0 tr_830000 tr_830300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830307, '大溪区', 830300, '', 0, 0, 'D', '115.95771247803', '39.980514890446', 3, 'tr_0 tr_830000 tr_830300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830308, '龙潭区', 830300, '', 0, 0, 'L', '126.56854459242', '43.91634255363', 3, 'tr_0 tr_830000 tr_830300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830309, '龟山区', 830300, '', 0, 0, 'G', '115.95771247803', '39.980514890446', 3, 'tr_0 tr_830000 tr_830300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830310, '大园区', 830300, '', 0, 0, 'D', '115.95771247803', '39.980514890446', 3, 'tr_0 tr_830000 tr_830300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830311, '观音区', 830300, '', 0, 0, 'G', '120.42538525561', '36.169241550407', 3, 'tr_0 tr_830000 tr_830300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830312, '新屋区', 830300, '', 0, 0, 'X', '115.95771247803', '39.980514890446', 3, 'tr_0 tr_830000 tr_830300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830313, '复兴区', 830300, '', 0, 0, 'F', '114.44809470749', '36.610368592227', 3, 'tr_0 tr_830000 tr_830300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830400, '台中市', 830000, '', 0, 0, 'T', '121.97387097872', '24.086956718805', 2, 'tr_0 tr_830000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830401, '中区', 830400, '', 0, 0, 'Z', '119.33696304538', '26.091557030419', 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830402, '东区', 830400, '', 0, 0, 'D', '119.33696304538', '26.091557030419', 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830403, '西区', 830400, '', 0, 0, 'X', '119.33696304538', '26.091557030419', 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830404, '南区', 830400, '', 0, 0, 'N', '119.33696304538', '26.091557030419', 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830405, '北区', 830400, '', 0, 0, 'B', '119.33696304538', '26.091557030419', 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830406, '西屯区', 830400, '', 0, 0, 'X', '119.33696304538', '26.091557030419', 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830407, '南屯区', 830400, '', 0, 0, 'N', '119.33696304538', '26.091557030419', 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830408, '北屯区', 830400, '', 0, 0, 'B', '119.33696304538', '26.091557030419', 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830409, '丰原区', 830400, '', 0, 0, 'F', '119.33696304538', '26.091557030419', 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830410, '大里区', 830400, '', 0, 0, 'D', '119.33696304538', '26.091557030419', 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830411, '太平区', 830400, '', 0, 0, 'T', '121.68538413681', '42.016967854141', 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830412, '东势区', 830400, '', 0, 0, 'D', '119.33696304538', '26.091557030419', 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830413, '大甲区', 830400, '', 0, 0, 'D', '119.33696304538', '26.091557030419', 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830414, '清水区', 830400, '', 0, 0, 'Q', '119.33696304538', '26.091557030419', 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830415, '沙鹿区', 830400, '', 0, 0, 'S', '119.33696304538', '26.091557030419', 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830416, '梧栖区', 830400, '', 0, 0, 'W', '119.33696304538', '26.091557030419', 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830417, '后里区', 830400, '', 0, 0, 'H', '119.33696304538', '26.091557030419', 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830418, '神冈区', 830400, '', 0, 0, 'S', '119.33696304538', '26.091557030419', 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830419, '潭子区', 830400, '', 0, 0, 'T', '119.33696304538', '26.091557030419', 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830420, '大雅区', 830400, '', 0, 0, 'D', '119.33696304538', '26.091557030419', 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830421, '新小区', 830400, '', 0, 0, 'X', '119.33696304538', '26.091557030419', 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830422, '石冈区', 830400, '', 0, 0, 'S', '119.33696304538', '26.091557030419', 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830423, '外埔区', 830400, '', 0, 0, 'W', '119.33696304538', '26.091557030419', 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830424, '大安区', 830400, '', 0, 0, 'D', '104.78041635328', '29.369928541322', 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830425, '乌日区', 830400, '', 0, 0, 'W', '119.33696304538', '26.091557030419', 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830426, '大肚区', 830400, '', 0, 0, 'D', '119.33696304538', '26.091557030419', 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830427, '龙井区', 830400, '', 0, 0, 'L', '119.33696304538', '26.091557030419', 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830428, '雾峰区', 830400, '', 0, 0, 'W', '119.33696304538', '26.091557030419', 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830429, '和平区', 830400, '', 0, 0, 'H', '117.2214669949', '39.12339025328', 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830500, '台南市', 830000, '', 0, 0, 'T', '121.97387097872', '24.086956718805', 2, 'tr_0 tr_830000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830501, '中西区', 830500, '', 0, 0, 'Z', '114.15949141031', '22.291342714292', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830502, '东区', 830500, '', 0, 0, 'D', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830503, '南区', 830500, '', 0, 0, 'N', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830504, '北区', 830500, '', 0, 0, 'B', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830505, '安平区', 830500, '', 0, 0, 'A', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830506, '安南区', 830500, '', 0, 0, 'A', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830507, '永康区', 830500, '', 0, 0, 'Y', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830508, '归仁区', 830500, '', 0, 0, 'G', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830509, '新化区', 830500, '', 0, 0, 'X', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830510, '左镇区', 830500, '', 0, 0, 'Z', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830511, '玉井区', 830500, '', 0, 0, 'Y', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830512, '楠西区', 830500, '', 0, 0, 'N', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830513, '南化区', 830500, '', 0, 0, 'N', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830514, '仁德区', 830500, '', 0, 0, 'R', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830515, '关庙区', 830500, '', 0, 0, 'G', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830516, '龙崎区', 830500, '', 0, 0, 'L', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830517, '官田区', 830500, '', 0, 0, 'G', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830518, '麻豆区', 830500, '', 0, 0, 'M', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830519, '佳里区', 830500, '', 0, 0, 'J', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830520, '西港区', 830500, '', 0, 0, 'X', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830521, '七股区', 830500, '', 0, 0, 'Q', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830522, '将军区', 830500, '', 0, 0, 'J', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830523, '学甲区', 830500, '', 0, 0, 'X', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830524, '北门区', 830500, '', 0, 0, 'B', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830525, '新营区', 830500, '', 0, 0, 'X', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830526, '后壁区', 830500, '', 0, 0, 'H', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830527, '白河区', 830500, '', 0, 0, 'B', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830528, '东山区', 830500, '', 0, 0, 'D', '130.32336109407', '47.344987135573', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830529, '六甲区', 830500, '', 0, 0, 'L', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830530, '下营区', 830500, '', 0, 0, 'X', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830531, '柳营区', 830500, '', 0, 0, 'L', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830532, '盐水区', 830500, '', 0, 0, 'Y', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830533, '善化区', 830500, '', 0, 0, 'S', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830534, '大内区', 830500, '', 0, 0, 'D', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830535, '山上区', 830500, '', 0, 0, 'S', '121.36052796411', '38.965848756262', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830536, '新市区', 830500, '', 0, 0, 'X', '115.41224520287', '38.88118294749', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830537, '安定区', 830500, '', 0, 0, 'A', '104.61650040265', '35.585600016725', 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830600, '高雄市', 830000, '', 0, 0, 'G', '121.97387097872', '24.086956718805', 2, 'tr_0 tr_830000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830601, '楠梓区', 830600, '', 0, 0, 'N', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830602, '左营区', 830600, '', 0, 0, 'Z', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830603, '鼓山区', 830600, '', 0, 0, 'G', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830604, '三民区', 830600, '', 0, 0, 'S', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830605, '盐埕区', 830600, '', 0, 0, 'Y', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830606, '前金区', 830600, '', 0, 0, 'Q', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830607, '新兴区', 830600, '', 0, 0, 'X', '130.93837086995', '45.822310328543', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830608, '苓雅区', 830600, '', 0, 0, 'L', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830609, '前镇区', 830600, '', 0, 0, 'Q', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830610, '旗津区', 830600, '', 0, 0, 'Q', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830611, '小港区', 830600, '', 0, 0, 'X', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830612, '凤山区', 830600, '', 0, 0, 'F', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830613, '大寮区', 830600, '', 0, 0, 'D', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830614, '鸟松区', 830600, '', 0, 0, 'N', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830615, '林园区', 830600, '', 0, 0, 'L', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830616, '仁武区', 830600, '', 0, 0, 'R', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830617, '大树区', 830600, '', 0, 0, 'D', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830618, '大社区', 830600, '', 0, 0, 'D', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830619, '冈山区', 830600, '', 0, 0, 'G', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830620, '路竹区', 830600, '', 0, 0, 'L', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830621, '桥头区', 830600, '', 0, 0, 'Q', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830622, '梓官区', 830600, '', 0, 0, 'Z', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830623, '弥陀区', 830600, '', 0, 0, 'M', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830624, '永安区', 830600, '', 0, 0, 'Y', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830625, '燕巢区', 830600, '', 0, 0, 'Y', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830626, '阿莲区', 830600, '', 0, 0, 'A', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830627, '茄萣区', 830600, '', 0, 0, 'J', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830628, '湖内区', 830600, '', 0, 0, 'H', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830629, '旗山区', 830600, '', 0, 0, 'Q', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830630, '美浓区', 830600, '', 0, 0, 'M', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830631, '内门区', 830600, '', 0, 0, 'N', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830632, '杉林区', 830600, '', 0, 0, 'S', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830633, '甲仙区', 830600, '', 0, 0, 'J', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830634, '六龟区', 830600, '', 0, 0, 'L', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830635, '茂林区', 830600, '', 0, 0, 'M', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830636, '桃源区', 830600, '', 0, 0, 'T', '114.29349244944', '30.607022895804', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830637, '那玛夏区', 830600, '', 0, 0, 'N', '120.71415692906', '23.273513646073', 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830700, '基隆市', 830000, '', 0, 0, 'J', '121.97387097872', '24.086956718805', 2, 'tr_0 tr_830000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830701, '中正区', 830700, '', 0, 0, 'Z', '118.53225032938', '24.6210238893', 3, 'tr_0 tr_830000 tr_830700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830702, '七堵区', 830700, '', 0, 0, 'Q', '118.53225032938', '24.6210238893', 3, 'tr_0 tr_830000 tr_830700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830703, '暖暖区', 830700, '', 0, 0, 'N', '118.53225032938', '24.6210238893', 3, 'tr_0 tr_830000 tr_830700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830704, '仁爱区', 830700, '', 0, 0, 'R', '118.53225032938', '24.6210238893', 3, 'tr_0 tr_830000 tr_830700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830705, '中山区', 830700, '', 0, 0, 'Z', '121.65154739367', '38.924511115496', 3, 'tr_0 tr_830000 tr_830700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830706, '安乐区', 830700, '', 0, 0, 'A', '118.53225032938', '24.6210238893', 3, 'tr_0 tr_830000 tr_830700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830707, '信义区', 830700, '', 0, 0, 'X', '118.53225032938', '24.6210238893', 3, 'tr_0 tr_830000 tr_830700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830800, '新竹市', 830000, '', 0, 0, 'X', '121.97387097872', '24.086956718805', 2, 'tr_0 tr_830000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830801, '东区', 830800, '', 0, 0, 'D', '119.76701381388', '49.221741849328', 3, 'tr_0 tr_830000 tr_830800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830802, '北区', 830800, '', 0, 0, 'B', '119.76701381388', '49.221741849328', 3, 'tr_0 tr_830000 tr_830800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830803, '香山区', 830800, '', 0, 0, 'X', '119.76701381388', '49.221741849328', 3, 'tr_0 tr_830000 tr_830800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830900, '嘉义市', 830000, '', 0, 0, 'J', '121.97387097872', '24.086956718805', 2, 'tr_0 tr_830000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830901, '东区', 830900, '', 0, 0, 'D', '114.2466374103', '22.728825804821', 3, 'tr_0 tr_830000 tr_830900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(830902, '西区', 830900, '', 0, 0, 'X', '114.2466374103', '22.728825804821', 3, 'tr_0 tr_830000 tr_830900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(839001, '宜兰县', 839000, '', 0, 0, 'Y', '121.39369436652', '31.211883015985', 3, 'tr_0 tr_830000 tr_839000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(839002, '新竹县', 839000, '', 0, 0, 'X', '119.76701381388', '49.221741849328', 3, 'tr_0 tr_830000 tr_839000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(839003, '苗栗县', 839000, '', 0, 0, 'M', '', '', 3, 'tr_0 tr_830000 tr_839000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(839004, '彰化县', 839000, '', 0, 0, 'Z', '109.04292985822', '26.632603089128', 3, 'tr_0 tr_830000 tr_839000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(839005, '南投县', 839000, '', 0, 0, 'N', '', '', 3, 'tr_0 tr_830000 tr_839000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(839006, '嘉义县', 839000, '', 0, 0, 'J', '114.2466374103', '22.728825804821', 3, 'tr_0 tr_830000 tr_839000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(839007, '云林县', 839000, '', 0, 0, 'Y', '124.7995182988', '42.918396678776', 3, 'tr_0 tr_830000 tr_839000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(839008, '屏东县', 839000, '', 0, 0, 'P', '119.30846756124', '26.107056743573', 3, 'tr_0 tr_830000 tr_839000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(839009, '台东县', 839000, '', 0, 0, 'T', '119.33983605008', '26.095631255982', 3, 'tr_0 tr_830000 tr_839000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(839010, '花莲县', 839000, '', 0, 0, 'H', '120.16162991211', '33.366606824641', 3, 'tr_0 tr_830000 tr_839000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(839011, '澎湖县', 839000, '', 0, 0, 'P', '121.13156576447', '30.875327117717', 3, 'tr_0 tr_830000 tr_839000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(839012, '金门县', 839000, '', 0, 0, 'J', '118.3304151596', '24.440444541055', 3, 'tr_0 tr_830000 tr_839000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(839013, '连江县', 839000, '', 0, 0, 'L', '119.54647881621', '26.203583291029', 3, 'tr_0 tr_830000 tr_839000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(110000, '北京市', 0, '', 0, 0, 'B', '116.41338369712', '39.9109245473', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(120000, '天津市', 0, '', 0, 0, 'T', '117.21081309155', '39.14392990331', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130000, '河北省', 0, '', 0, 0, 'H', '114.53659630532', '38.0432016452', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140000, '山西省', 0, '', 0, 0, 'S', '112.56937550968', '37.879829423856', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150000, '内蒙古自治区', 0, '', 0, 0, 'N', '111.77260583082', '40.823156232446', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210000, '辽宁省', 0, '', 0, 0, 'L', '123.43559785683', '41.841465251202', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220000, '吉林省', 0, '', 0, 0, 'J', '125.33257987515', '43.901714435444', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230000, '黑龙江省', 0, '', 0, 0, 'H', '126.66965282042', '45.747929837435', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(310000, '上海市', 0, '', 0, 0, 'S', '121.48053886018', '31.235929042252', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320000, '江苏省', 0, '', 0, 0, 'J', '118.76955164467', '32.066776944293', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330000, '浙江省', 0, '', 0, 0, 'Z', '120.15953308739', '30.271548393337', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340000, '安徽省', 0, '', 0, 0, 'A', '117.33054041772', '31.734294156317', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350000, '福建省', 0, '', 0, 0, 'F', '119.30244747704', '26.106339415901', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360000, '江西省', 0, '', 0, 0, 'J', '115.91542320365', '28.681690516761', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370000, '山东省', 0, '', 0, 0, 'S', '117.02744162848', '36.674856650405', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410000, '河南省', 0, '', 0, 0, 'H', '113.75938408486', '34.771712921931', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420000, '湖北省', 0, '', 0, 0, 'H', '114.34844073659', '30.551600064658', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430000, '湖南省', 0, '', 0, 0, 'H', '112.98960254335', '28.118269998009', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440000, '广东省', 0, '', 0, 0, 'G', '113.27242891273', '23.137948556539', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450000, '广西壮族自治区', 0, '', 0, 0, 'G', '108.33452122944', '22.821268997909', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460000, '海南省', 0, '', 0, 0, 'H', '110.35553651088', '20.025801964463', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500000, '重庆市', 0, '', 0, 0, 'Z', '106.55843415538', '29.568996245339', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510000, '四川省', 0, '', 0, 0, 'S', '104.07346654728', '30.577543147015', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520000, '贵州省', 0, '', 0, 0, 'G', '106.71447593089', '26.604029544995', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530000, '云南省', 0, '', 0, 0, 'Y', '102.71641607523', '25.051562267345', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540000, '西藏自治区', 0, '', 0, 0, 'X', '91.124342128993', '29.652893647473', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610000, '陕西省', 0, '', 0, 0, 'S', '108.96039314875', '34.275808006024', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620000, '甘肃省', 0, '', 0, 0, 'G', '103.83247812812', '36.065464887368', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(630000, '青海省', 0, '', 0, 0, 'Q', '101.78646183587', '36.627158579235', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(640000, '宁夏回族自治区', 0, '', 0, 0, 'N', '106.26560480701', '38.476877967911', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(650000, '新疆维吾尔自治区', 0, '', 0, 0, 'X', '87.633473205738', '43.79923810129', 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(110100, '市辖区', 110000, '', 0, 0, 'S', '116.41338369712', '39.9109245473', 2, 'tr_0 tr_110000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(120100, '市辖区', 120000, '', 0, 0, 'S', '117.21081309155', '39.14392990331', 2, 'tr_0 tr_120000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140100, '太原市', 140000, '', 0, 0, 'T', '112.55639149167', '37.876989028848', 2, 'tr_0 tr_140000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140200, '大同市', 140000, '', 0, 0, 'D', '113.30643625859', '40.082468716161', 2, 'tr_0 tr_140000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140300, '阳泉市', 140000, '', 0, 0, 'Y', '113.58761666288', '37.862360847859', 2, 'tr_0 tr_140000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140400, '长治市', 140000, '', 0, 0, 'Z', '113.12255886985', '36.201268372155', 2, 'tr_0 tr_140000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140500, '晋城市', 140000, '', 0, 0, 'J', '112.85857823133', '35.496284586473', 2, 'tr_0 tr_140000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140600, '朔州市', 140000, '', 0, 0, 'S', '112.43937093967', '39.337108370542', 2, 'tr_0 tr_140000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140700, '晋中市', 140000, '', 0, 0, 'J', '112.75959475566', '37.69283940976', 2, 'tr_0 tr_140000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140800, '运城市', 140000, '', 0, 0, 'Y', '111.01338945448', '35.032706912909', 2, 'tr_0 tr_140000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140900, '忻州市', 140000, '', 0, 0, 'X', '112.74062416024', '38.422383385178', 2, 'tr_0 tr_140000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141000, '临汾市', 140000, '', 0, 0, 'L', '111.52553022403', '36.09374189542', 2, 'tr_0 tr_140000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141100, '吕梁市', 140000, '', 0, 0, 'L', '111.15044967529', '37.524497749577', 2, 'tr_0 tr_140000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150100, '呼和浩特市', 150000, '', 0, 0, 'H', '111.75550856171', '40.848422997113', 2, 'tr_0 tr_150000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150200, '包头市', 150000, '', 0, 0, 'B', '109.84654350721', '40.662928788261', 2, 'tr_0 tr_150000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150300, '乌海市', 150000, '', 0, 0, 'W', '106.80039105', '39.662006364891', 2, 'tr_0 tr_150000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150400, '赤峰市', 150000, '', 0, 0, 'C', '118.89552039752', '42.261686103412', 2, 'tr_0 tr_150000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150500, '通辽市', 150000, '', 0, 0, 'T', '122.25052178738', '43.657980083917', 2, 'tr_0 tr_150000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150600, '鄂尔多斯市', 150000, '', 0, 0, 'E', '109.78744317924', '39.614482313949', 2, 'tr_0 tr_150000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150700, '呼伦贝尔市', 150000, '', 0, 0, 'H', '119.77237049947', '49.218446475565', 2, 'tr_0 tr_150000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150800, '巴彦淖尔市', 150000, '', 0, 0, 'B', '107.39439808372', '40.749359489573', 2, 'tr_0 tr_150000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150900, '乌兰察布市', 150000, '', 0, 0, 'W', '113.13946767446', '41.000748327674', 2, 'tr_0 tr_150000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(152200, '兴安盟', 150000, '', 0, 0, 'X', '122.04436452583', '46.088463713219', 2, 'tr_0 tr_150000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(152500, '锡林郭勒盟', 150000, '', 0, 0, 'X', '116.05439144075', '43.939422665339', 2, 'tr_0 tr_150000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(152900, '阿拉善盟', 150000, '', 0, 0, 'A', '105.73537746449', '38.858275883057', 2, 'tr_0 tr_150000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210100, '沈阳市', 210000, '', 0, 0, 'S', '123.45598993089', '41.720915668889', 2, 'tr_0 tr_210000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210200, '大连市', 210000, '', 0, 0, 'D', '121.62163148459', '38.918953666786', 2, 'tr_0 tr_210000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210300, '鞍山市', 210000, '', 0, 0, 'A', '123.00137251399', '41.115053596949', 2, 'tr_0 tr_210000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210400, '抚顺市', 210000, '', 0, 0, 'F', '123.96437461561', '41.885969593057', 2, 'tr_0 tr_210000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210500, '本溪市', 210000, '', 0, 0, 'B', '123.69250712421', '41.492916460553', 2, 'tr_0 tr_210000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210600, '丹东市', 210000, '', 0, 0, 'D', '124.36154728159', '40.006408705594', 2, 'tr_0 tr_210000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210700, '锦州市', 210000, '', 0, 0, 'J', '121.13259630056', '41.100931499462', 2, 'tr_0 tr_210000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210800, '营口市', 210000, '', 0, 0, 'Y', '122.2415746645', '40.673136838267', 2, 'tr_0 tr_210000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210900, '阜新市', 210000, '', 0, 0, 'F', '121.67640799866', '42.028021901318', 2, 'tr_0 tr_210000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211000, '辽阳市', 210000, '', 0, 0, 'L', '123.24336640651', '41.274161290454', 2, 'tr_0 tr_210000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211100, '盘锦市', 210000, '', 0, 0, 'P', '122.07322781023', '41.141248022956', 2, 'tr_0 tr_210000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211200, '铁岭市', 210000, '', 0, 0, 'T', '123.73236520918', '42.229947997184', 2, 'tr_0 tr_210000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211300, '朝阳市', 210000, '', 0, 0, 'C', '120.45749949793', '41.579820864756', 2, 'tr_0 tr_210000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211400, '葫芦岛市', 210000, '', 0, 0, 'H', '120.84339833993', '40.717364436362', 2, 'tr_0 tr_210000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220100, '长春市', 220000, '', 0, 0, 'Z', '125.33060207591', '43.821953501043', 2, 'tr_0 tr_220000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220200, '吉林市', 220000, '', 0, 0, 'J', '126.55563450495', '43.843567834579', 2, 'tr_0 tr_220000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220300, '四平市', 220000, '', 0, 0, 'S', '124.35648155716', '43.171993571561', 2, 'tr_0 tr_220000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220400, '辽源市', 220000, '', 0, 0, 'L', '125.15042516689', '42.894055005746', 2, 'tr_0 tr_220000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220500, '通化市', 220000, '', 0, 0, 'T', '125.94660627598', '41.733815801613', 2, 'tr_0 tr_220000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220600, '白山市', 220000, '', 0, 0, 'B', '126.42963008938', '41.939627205329', 2, 'tr_0 tr_220000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220700, '松原市', 220000, '', 0, 0, 'S', '124.83148187569', '45.147404193414', 2, 'tr_0 tr_220000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220800, '白城市', 220000, '', 0, 0, 'B', '122.8455906085', '45.625504359996', 2, 'tr_0 tr_220000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(222400, '延边朝鲜族自治州', 220000, '', 0, 0, 'Y', '129.47737632023', '42.915743033722', 2, 'tr_0 tr_220000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230100, '哈尔滨市', 230000, '', 0, 0, 'H', '126.54161509032', '45.808825827952', 2, 'tr_0 tr_230000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230200, '齐齐哈尔市', 230000, '', 0, 0, 'Q', '123.92457086842', '47.359977186015', 2, 'tr_0 tr_230000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230300, '鸡西市', 230000, '', 0, 0, 'J', '130.97561865877', '45.300872317824', 2, 'tr_0 tr_230000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230400, '鹤岗市', 230000, '', 0, 0, 'H', '130.30443289867', '47.356056157685', 2, 'tr_0 tr_230000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230500, '双鸭山市', 230000, '', 0, 0, 'S', '131.16534168078', '46.653185895886', 2, 'tr_0 tr_230000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230600, '大庆市', 230000, '', 0, 0, 'D', '125.10865763402', '46.593633176722', 2, 'tr_0 tr_230000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230700, '伊春市', 230000, '', 0, 0, 'Y', '128.8475463802', '47.733318457231', 2, 'tr_0 tr_230000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230800, '佳木斯市', 230000, '', 0, 0, 'J', '130.32735909257', '46.805689990858', 2, 'tr_0 tr_230000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230900, '七台河市', 230000, '', 0, 0, 'Q', '131.01154459103', '45.776300321548', 2, 'tr_0 tr_230000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231000, '牡丹江市', 230000, '', 0, 0, 'M', '129.63953977835', '44.556245708986', 2, 'tr_0 tr_230000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231100, '黑河市', 230000, '', 0, 0, 'H', '127.53548988622', '50.25127231175', 2, 'tr_0 tr_230000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231200, '绥化市', 230000, '', 0, 0, 'S', '126.9753568753', '46.660032179824', 2, 'tr_0 tr_230000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(232700, '大兴安岭地区', 230000, '', 0, 0, 'D', '124.15292785448', '50.420025955028', 2, 'tr_0 tr_230000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(310100, '市辖区', 310000, '', 0, 0, 'S', '121.48053886018', '31.235929042252', 2, 'tr_0 tr_310000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320100, '南京市', 320000, '', 0, 0, 'N', '118.80242172125', '32.064652885618', 2, 'tr_0 tr_320000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320200, '无锡市', 320000, '', 0, 0, 'W', '120.31858328811', '31.498809732686', 2, 'tr_0 tr_320000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320300, '徐州市', 320000, '', 0, 0, 'X', '117.29057543439', '34.212666550113', 2, 'tr_0 tr_320000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320400, '常州市', 320000, '', 0, 0, 'C', '119.98148471328', '31.815795653328', 2, 'tr_0 tr_320000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'); -INSERT INTO `hg_sys_provinces` (`id`, `title`, `pid`, `short_title`, `areacode`, `zipcode`, `pinyin`, `lng`, `lat`, `level`, `tree`, `sort`, `status`, `created_at`, `updated_at`) VALUES -(320500, '苏州市', 320000, '', 0, 0, 'S', '120.59241222959', '31.303564074442', 2, 'tr_0 tr_320000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320600, '南通市', 320000, '', 0, 0, 'N', '120.90159173866', '31.986549431201', 2, 'tr_0 tr_320000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320700, '连云港市', 320000, '', 0, 0, 'L', '119.22862133317', '34.602249525267', 2, 'tr_0 tr_320000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320800, '淮安市', 320000, '', 0, 0, 'H', '119.02148367071', '33.616295301033', 2, 'tr_0 tr_320000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320900, '盐城市', 320000, '', 0, 0, 'Y', '120.16754426576', '33.355100917626', 2, 'tr_0 tr_320000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321000, '扬州市', 320000, '', 0, 0, 'Y', '119.41941890823', '32.40067693609', 2, 'tr_0 tr_320000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321100, '镇江市', 320000, '', 0, 0, 'Z', '119.43048944567', '32.194715920524', 2, 'tr_0 tr_320000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321200, '泰州市', 320000, '', 0, 0, 'T', '119.92956633785', '32.460675049308', 2, 'tr_0 tr_320000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321300, '宿迁市', 320000, '', 0, 0, 'S', '118.28157403571', '33.96774971569', 2, 'tr_0 tr_320000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330100, '杭州市', 330000, '', 0, 0, 'H', '120.21551180372', '30.253082981693', 2, 'tr_0 tr_330000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330200, '宁波市', 330000, '', 0, 0, 'N', '121.62857249434', '29.866033045866', 2, 'tr_0 tr_330000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330300, '温州市', 330000, '', 0, 0, 'W', '120.70647689036', '28.001085404472', 2, 'tr_0 tr_330000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330400, '嘉兴市', 330000, '', 0, 0, 'J', '120.76355182586', '30.75097483092', 2, 'tr_0 tr_330000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330500, '湖州市', 330000, '', 0, 0, 'H', '120.09451660916', '30.898963937294', 2, 'tr_0 tr_330000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330600, '绍兴市', 330000, '', 0, 0, 'S', '120.58547847885', '30.036369311307', 2, 'tr_0 tr_330000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330700, '金华市', 330000, '', 0, 0, 'J', '119.65343619053', '29.084639385514', 2, 'tr_0 tr_330000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330800, '衢州市', 330000, '', 0, 0, 'Q', '118.86659674036', '28.975545802265', 2, 'tr_0 tr_330000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330900, '舟山市', 330000, '', 0, 0, 'Z', '122.21355631852', '29.99091168016', 2, 'tr_0 tr_330000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(331000, '台州市', 330000, '', 0, 0, 'T', '121.42743470428', '28.662194055996', 2, 'tr_0 tr_330000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(331100, '丽水市', 330000, '', 0, 0, 'L', '119.92957305844', '28.473278180563', 2, 'tr_0 tr_330000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340100, '合肥市', 340000, '', 0, 0, 'H', '117.23344266498', '31.826577833687', 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340200, '芜湖市', 340000, '', 0, 0, 'W', '118.43943137654', '31.358536655799', 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340300, '蚌埠市', 340000, '', 0, 0, 'B', '117.39551332814', '32.921523704351', 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340400, '淮南市', 340000, '', 0, 0, 'H', '117.00638885072', '32.631847399053', 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340500, '马鞍山市', 340000, '', 0, 0, 'M', '118.51357957943', '31.676265597609', 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340600, '淮北市', 340000, '', 0, 0, 'H', '116.80453726703', '33.961656300276', 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340700, '铜陵市', 340000, '', 0, 0, 'T', '117.81847679446', '30.951233239913', 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340800, '安庆市', 340000, '', 0, 0, 'A', '117.06360390492', '30.530956568043', 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341000, '黄山市', 340000, '', 0, 0, 'H', '118.34543725315', '29.721889786592', 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341100, '滁州市', 340000, '', 0, 0, 'C', '118.33940613597', '32.261270872041', 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341200, '阜阳市', 340000, '', 0, 0, 'F', '115.82043612491', '32.896060994852', 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341300, '宿州市', 340000, '', 0, 0, 'S', '116.97054394561', '33.652095326452', 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341500, '六安市', 340000, '', 0, 0, 'L', '116.52640966419', '31.741450815323', 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341600, '亳州市', 340000, '', 0, 0, 'B', '115.78446321127', '33.850642695789', 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341700, '池州市', 340000, '', 0, 0, 'C', '117.4984209616', '30.670883790765', 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341800, '宣城市', 340000, '', 0, 0, 'X', '118.76553424277', '30.946601545293', 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350100, '福州市', 350000, '', 0, 0, 'F', '119.30346983854', '26.080429420698', 2, 'tr_0 tr_350000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350200, '厦门市', 350000, '', 0, 0, 'S', '118.09643549977', '24.485406605176', 2, 'tr_0 tr_350000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350300, '莆田市', 350000, '', 0, 0, 'P', '119.01452097813', '25.459865455923', 2, 'tr_0 tr_350000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350400, '三明市', 350000, '', 0, 0, 'S', '117.64552116782', '26.269736515992', 2, 'tr_0 tr_350000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350500, '泉州市', 350000, '', 0, 0, 'Q', '118.6824462668', '24.879952330498', 2, 'tr_0 tr_350000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350600, '漳州市', 350000, '', 0, 0, 'Z', '117.65357645299', '24.518929791171', 2, 'tr_0 tr_350000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350700, '南平市', 350000, '', 0, 0, 'N', '118.18436954814', '26.647772874203', 2, 'tr_0 tr_350000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350800, '龙岩市', 350000, '', 0, 0, 'L', '117.02344756678', '25.081219844872', 2, 'tr_0 tr_350000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350900, '宁德市', 350000, '', 0, 0, 'N', '119.55451074543', '26.672241711409', 2, 'tr_0 tr_350000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360100, '南昌市', 360000, '', 0, 0, 'N', '115.86458944232', '28.689455295061', 2, 'tr_0 tr_360000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360200, '景德镇市', 360000, '', 0, 0, 'J', '117.18457644639', '29.274247711041', 2, 'tr_0 tr_360000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360300, '萍乡市', 360000, '', 0, 0, 'P', '113.86149643375', '27.628392709397', 2, 'tr_0 tr_360000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360400, '九江市', 360000, '', 0, 0, 'J', '116.00753491163', '29.711340559079', 2, 'tr_0 tr_360000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360500, '新余市', 360000, '', 0, 0, 'X', '114.9235346514', '27.823578697789', 2, 'tr_0 tr_360000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360600, '鹰潭市', 360000, '', 0, 0, 'Y', '117.07557542703', '28.265787063191', 2, 'tr_0 tr_360000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360700, '赣州市', 360000, '', 0, 0, 'G', '114.94050337298', '25.835176103498', 2, 'tr_0 tr_360000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360800, '吉安市', 360000, '', 0, 0, 'J', '115.00051072001', '27.11972682607', 2, 'tr_0 tr_360000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360900, '宜春市', 360000, '', 0, 0, 'Y', '114.42356367591', '27.820856421848', 2, 'tr_0 tr_360000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(361000, '抚州市', 360000, '', 0, 0, 'F', '116.36453876864', '27.95489225342', 2, 'tr_0 tr_360000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(361100, '上饶市', 360000, '', 0, 0, 'S', '117.94945960312', '28.460625921852', 2, 'tr_0 tr_360000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370100, '济南市', 370000, '', 0, 0, 'J', '117.12639941261', '36.656554201787', 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370200, '青岛市', 370000, '', 0, 0, 'Q', '120.38945519115', '36.072227496663', 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370300, '淄博市', 370000, '', 0, 0, 'Z', '118.0614525349', '36.819085683322', 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370400, '枣庄市', 370000, '', 0, 0, 'Z', '117.33054194484', '34.815994048435', 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370500, '东营市', 370000, '', 0, 0, 'D', '118.68138493514', '37.439641826323', 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370600, '烟台市', 370000, '', 0, 0, 'Y', '121.4544154173', '37.470038383731', 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370700, '潍坊市', 370000, '', 0, 0, 'W', '119.16837791143', '36.712651551268', 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370800, '济宁市', 370000, '', 0, 0, 'J', '116.59361234854', '35.42017739453', 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370900, '泰安市', 370000, '', 0, 0, 'T', '117.0944948348', '36.205858044885', 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371000, '威海市', 370000, '', 0, 0, 'W', '122.12754097831', '37.516430548015', 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371100, '日照市', 370000, '', 0, 0, 'R', '119.53341540457', '35.422838998438', 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371200, '莱芜市', 370000, '', 0, 0, 'L', '117.68466691247', '36.233654133647', 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371300, '临沂市', 370000, '', 0, 0, 'L', '118.36353300501', '35.110671242365', 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371400, '德州市', 370000, '', 0, 0, 'D', '116.36555674397', '37.441308454576', 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371500, '聊城市', 370000, '', 0, 0, 'L', '115.9915878483', '36.462758187694', 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371600, '滨州市', 370000, '', 0, 0, 'B', '117.97740401715', '37.388196196077', 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371700, '菏泽市', 370000, '', 0, 0, 'H', '115.48754503343', '35.239407424766', 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410100, '郑州市', 410000, '', 0, 0, 'Z', '113.63141920734', '34.753438850454', 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410200, '开封市', 410000, '', 0, 0, 'K', '114.31459258497', '34.802885811212', 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410300, '洛阳市', 410000, '', 0, 0, 'L', '112.45942129831', '34.624262779219', 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410400, '平顶山市', 410000, '', 0, 0, 'P', '113.19952856052', '33.772050748691', 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410500, '安阳市', 410000, '', 0, 0, 'A', '114.39950042177', '36.105940984015', 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410600, '鹤壁市', 410000, '', 0, 0, 'H', '114.30359364248', '35.7523574114', 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410700, '新乡市', 410000, '', 0, 0, 'X', '113.93360046733', '35.309639930337', 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410800, '焦作市', 410000, '', 0, 0, 'J', '113.24854783457', '35.220963254039', 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410900, '濮阳市', 410000, '', 0, 0, 'P', '115.03559747034', '35.767593028906', 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411000, '许昌市', 410000, '', 0, 0, 'X', '113.85847553686', '34.041431611619', 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411100, '漯河市', 410000, '', 0, 0, 'L', '114.02342077765', '33.587710707102', 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411200, '三门峡市', 410000, '', 0, 0, 'S', '111.20653322387', '34.77832724946', 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411300, '南阳市', 410000, '', 0, 0, 'N', '112.53450131351', '32.996562204651', 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411400, '商丘市', 410000, '', 0, 0, 'S', '115.66244933826', '34.420201665859', 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411500, '信阳市', 410000, '', 0, 0, 'X', '114.09748283305', '32.153014547531', 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411600, '周口市', 410000, '', 0, 0, 'Z', '114.70348251482', '33.631828875702', 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411700, '驻马店市', 410000, '', 0, 0, 'Z', '114.02847078173', '33.017842416744', 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(419000, '省直辖县级行政区划', 410000, '', 0, 0, 'S', '113.75938408486', '34.771712921931', 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420100, '武汉市', 420000, '', 0, 0, 'W', '114.31158155473', '30.598466736401', 2, 'tr_0 tr_420000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420200, '黄石市', 420000, '', 0, 0, 'H', '115.04553290894', '30.205207848942', 2, 'tr_0 tr_420000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420300, '十堰市', 420000, '', 0, 0, 'S', '110.8045295607', '32.635061858401', 2, 'tr_0 tr_420000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420500, '宜昌市', 420000, '', 0, 0, 'Y', '111.29254921035', '30.697446484492', 2, 'tr_0 tr_420000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420600, '襄阳市', 420000, '', 0, 0, 'X', '112.128537201', '32.014796804669', 2, 'tr_0 tr_420000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420700, '鄂州市', 420000, '', 0, 0, 'E', '114.90160738827', '30.396572173317', 2, 'tr_0 tr_420000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420800, '荆门市', 420000, '', 0, 0, 'J', '112.20639298023', '31.04173257557', 2, 'tr_0 tr_420000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420900, '孝感市', 420000, '', 0, 0, 'X', '113.92251007734', '30.930689227018', 2, 'tr_0 tr_420000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421000, '荆州市', 420000, '', 0, 0, 'J', '112.24552262926', '30.340842107743', 2, 'tr_0 tr_420000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421100, '黄冈市', 420000, '', 0, 0, 'H', '114.87849048411', '30.459358857618', 2, 'tr_0 tr_420000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421200, '咸宁市', 420000, '', 0, 0, 'X', '114.32851909027', '29.847055947646', 2, 'tr_0 tr_420000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421300, '随州市', 420000, '', 0, 0, 'S', '113.38945001822', '31.696516772328', 2, 'tr_0 tr_420000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(422800, '恩施土家族苗族自治州', 420000, '', 0, 0, 'E', '109.49459261858', '30.277939575301', 2, 'tr_0 tr_420000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(429000, '省直辖县级行政区划', 420000, '', 0, 0, 'S', '114.34844073659', '30.551600064658', 2, 'tr_0 tr_420000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430100, '长沙市', 430000, '', 0, 0, 'Z', '112.94547319535', '28.234889399944', 2, 'tr_0 tr_430000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430200, '株洲市', 430000, '', 0, 0, 'Z', '113.14047079776', '27.833567639016', 2, 'tr_0 tr_430000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430300, '湘潭市', 430000, '', 0, 0, 'X', '112.95046418076', '27.835702227136', 2, 'tr_0 tr_430000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430400, '衡阳市', 430000, '', 0, 0, 'H', '112.57844721326', '26.899576139189', 2, 'tr_0 tr_430000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430500, '邵阳市', 430000, '', 0, 0, 'S', '111.47443288593', '27.245270272809', 2, 'tr_0 tr_430000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430600, '岳阳市', 430000, '', 0, 0, 'Y', '113.13548942422', '29.363178293926', 2, 'tr_0 tr_430000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430700, '常德市', 430000, '', 0, 0, 'C', '111.70545217996', '29.037749999407', 2, 'tr_0 tr_430000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430800, '张家界市', 430000, '', 0, 0, 'Z', '110.48553254695', '29.122815562552', 2, 'tr_0 tr_430000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430900, '益阳市', 430000, '', 0, 0, 'Y', '112.36151595471', '28.55971117849', 2, 'tr_0 tr_430000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431000, '郴州市', 430000, '', 0, 0, 'C', '113.02146049909', '25.776683273602', 2, 'tr_0 tr_430000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431100, '永州市', 430000, '', 0, 0, 'Y', '111.61945505792', '26.4258641179', 2, 'tr_0 tr_430000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431200, '怀化市', 430000, '', 0, 0, 'H', '110.00851426537', '27.575160902979', 2, 'tr_0 tr_430000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431300, '娄底市', 430000, '', 0, 0, 'L', '112.00150349288', '27.703208596992', 2, 'tr_0 tr_430000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(433100, '湘西土家族苗族自治州', 430000, '', 0, 0, 'X', '109.74557664947', '28.317369104701', 2, 'tr_0 tr_430000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440100, '广州市', 440000, '', 0, 0, 'G', '113.27143134446', '23.135336306695', 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440200, '韶关市', 440000, '', 0, 0, 'S', '113.60352734562', '24.815881278583', 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440300, '深圳市', 440000, '', 0, 0, 'S', '114.06455183659', '22.548456637984', 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440400, '珠海市', 440000, '', 0, 0, 'Z', '113.58255478655', '22.276564654249', 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440500, '汕头市', 440000, '', 0, 0, 'S', '116.68852864055', '23.359091717725', 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440600, '佛山市', 440000, '', 0, 0, 'F', '113.1285121955', '23.027758750789', 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440700, '江门市', 440000, '', 0, 0, 'J', '113.08855619524', '22.584603880965', 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440800, '湛江市', 440000, '', 0, 0, 'Z', '110.36555441393', '21.276723439012', 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440900, '茂名市', 440000, '', 0, 0, 'M', '110.93154257997', '21.669064031332', 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441200, '肇庆市', 440000, '', 0, 0, 'Z', '112.47148894063', '23.052888771126', 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441300, '惠州市', 440000, '', 0, 0, 'H', '114.42355801658', '23.116358854726', 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441400, '梅州市', 440000, '', 0, 0, 'M', '116.12953737612', '24.294177532206', 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441500, '汕尾市', 440000, '', 0, 0, 'S', '115.3729242894', '22.778730500164', 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441600, '河源市', 440000, '', 0, 0, 'H', '114.70744627291', '23.74968437096', 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441700, '阳江市', 440000, '', 0, 0, 'Y', '111.98848929181', '21.864339726139', 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441800, '清远市', 440000, '', 0, 0, 'Q', '113.06246832527', '23.688230292088', 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900, '东莞市', 440000, '', 0, 0, 'D', '113.75842045788', '23.027308411643', 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(442000, '中山市', 440000, '', 0, 0, 'Z', '113.39942236263', '22.522314670791', 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(445100, '潮州市', 440000, '', 0, 0, 'C', '116.62947017363', '23.662623192616', 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(445200, '揭阳市', 440000, '', 0, 0, 'J', '116.37851218034', '23.555740488276', 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(445300, '云浮市', 440000, '', 0, 0, 'Y', '112.05151269959', '22.920911970343', 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450100, '南宁市', 450000, '', 0, 0, 'N', '108.37345082582', '22.822606601187', 2, 'tr_0 tr_450000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450200, '柳州市', 450000, '', 0, 0, 'L', '109.43442194635', '24.331961386852', 2, 'tr_0 tr_450000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450300, '桂林市', 450000, '', 0, 0, 'G', '110.20354537458', '25.242885724873', 2, 'tr_0 tr_450000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450400, '梧州市', 450000, '', 0, 0, 'W', '111.28551681182', '23.482745281135', 2, 'tr_0 tr_450000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450500, '北海市', 450000, '', 0, 0, 'B', '109.12653321257', '21.486836495769', 2, 'tr_0 tr_450000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450600, '防城港市', 450000, '', 0, 0, 'F', '108.3604188383', '21.693005289969', 2, 'tr_0 tr_450000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450700, '钦州市', 450000, '', 0, 0, 'Q', '108.66058016842', '21.986593539484', 2, 'tr_0 tr_450000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450800, '贵港市', 450000, '', 0, 0, 'G', '109.60552031033', '23.117448382038', 2, 'tr_0 tr_450000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450900, '玉林市', 450000, '', 0, 0, 'Y', '110.18845312337', '22.659830509953', 2, 'tr_0 tr_450000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451000, '百色市', 450000, '', 0, 0, 'B', '106.62458932565', '23.908185934296', 2, 'tr_0 tr_450000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451100, '贺州市', 450000, '', 0, 0, 'H', '111.57352631416', '24.409450902865', 2, 'tr_0 tr_450000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451200, '河池市', 450000, '', 0, 0, 'H', '108.09149994499', '24.698911731273', 2, 'tr_0 tr_450000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451300, '来宾市', 450000, '', 0, 0, 'L', '109.2274581959', '23.756546762607', 2, 'tr_0 tr_450000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451400, '崇左市', 450000, '', 0, 0, 'C', '107.3715202061', '22.383117234663', 2, 'tr_0 tr_450000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460100, '海口市', 460000, '', 0, 0, 'H', '110.32552547126', '20.044049439257', 2, 'tr_0 tr_460000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460200, '三亚市', 460000, '', 0, 0, 'S', '109.5185567014', '18.258736291748', 2, 'tr_0 tr_460000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460300, '三沙市', 460000, '', 0, 0, 'S', '112.34048204137', '16.838953334409', 2, 'tr_0 tr_460000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460400, '儋州市', 460000, '', 0, 0, 'D', '109.58745583569', '19.527146110044', 2, 'tr_0 tr_460000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(469000, '省直辖县级行政区划', 460000, '', 0, 0, 'S', '110.35553651088', '20.025801964463', 2, 'tr_0 tr_460000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500100, '市辖区', 500000, '', 0, 0, 'S', '106.55843415538', '29.568996245339', 2, 'tr_0 tr_500000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500200, '县', 500000, '', 0, 0, 'X', '106.55843415538', '29.568996245339', 2, 'tr_0 tr_500000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510100, '成都市', 510000, '', 0, 0, 'C', '104.08153351042', '30.655821878416', 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510300, '自贡市', 510000, '', 0, 0, 'Z', '104.78444884672', '29.345584921328', 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510400, '攀枝花市', 510000, '', 0, 0, 'P', '101.72554117091', '26.588033173333', 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510500, '泸州市', 510000, '', 0, 0, 'L', '105.44852406933', '28.877668303607', 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510600, '德阳市', 510000, '', 0, 0, 'D', '104.40441936496', '31.133115003657', 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510700, '绵阳市', 510000, '', 0, 0, 'M', '104.68556186076', '31.473663048746', 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510800, '广元市', 510000, '', 0, 0, 'G', '105.85042318166', '32.441616305315', 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510900, '遂宁市', 510000, '', 0, 0, 'S', '105.59942153064', '30.539097671109', 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511000, '内江市', 510000, '', 0, 0, 'N', '105.064588025', '29.58588653832', 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511100, '乐山市', 510000, '', 0, 0, 'L', '103.77253760363', '29.557940717458', 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511300, '南充市', 510000, '', 0, 0, 'N', '106.11750261487', '30.843782508337', 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511400, '眉山市', 510000, '', 0, 0, 'M', '103.85656331579', '30.082526119421', 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511500, '宜宾市', 510000, '', 0, 0, 'Y', '104.64940370487', '28.758007028552', 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511600, '广安市', 510000, '', 0, 0, 'G', '106.63955268233', '30.461746110679', 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511700, '达州市', 510000, '', 0, 0, 'D', '107.47459385898', '31.214307723927', 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511800, '雅安市', 510000, '', 0, 0, 'Y', '103.0495426236', '30.016792545706', 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511900, '巴中市', 510000, '', 0, 0, 'B', '106.75158530316', '31.872888585957', 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(512000, '资阳市', 510000, '', 0, 0, 'Z', '104.63443534164', '30.134956559253', 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513200, '阿坝藏族羌族自治州', 510000, '', 0, 0, 'A', '102.23141546175', '31.905511577267', 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513300, '甘孜藏族自治州', 510000, '', 0, 0, 'G', '101.96854674579', '30.055278843518', 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513400, '凉山彝族自治州', 510000, '', 0, 0, 'L', '102.27350268097', '27.88775230037', 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520100, '贵阳市', 520000, '', 0, 0, 'G', '106.63657676353', '26.65332482231', 2, 'tr_0 tr_520000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520200, '六盘水市', 520000, '', 0, 0, 'L', '104.83755460235', '26.598833108257', 2, 'tr_0 tr_520000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520300, '遵义市', 520000, '', 0, 0, 'Z', '106.93342774802', '27.731700878917', 2, 'tr_0 tr_520000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520400, '安顺市', 520000, '', 0, 0, 'A', '105.95441712389', '26.259252378715', 2, 'tr_0 tr_520000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520500, '毕节市', 520000, '', 0, 0, 'B', '105.33332337117', '27.408562131331', 2, 'tr_0 tr_520000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520600, '铜仁市', 520000, '', 0, 0, 'T', '109.16855802826', '27.674902690624', 2, 'tr_0 tr_520000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522300, '黔西南布依族苗族自治州', 520000, '', 0, 0, 'Q', '104.91249214627', '25.093967349417', 2, 'tr_0 tr_520000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522600, '黔东南苗族侗族自治州', 520000, '', 0, 0, 'Q', '107.98944624078', '26.589702969826', 2, 'tr_0 tr_520000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522700, '黔南布依族苗族自治州', 520000, '', 0, 0, 'Q', '107.52840270574', '26.260616196074', 2, 'tr_0 tr_520000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530100, '昆明市', 530000, '', 0, 0, 'K', '102.852448365', '24.873998150044', 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530300, '曲靖市', 530000, '', 0, 0, 'Q', '103.80243482795', '25.496406931544', 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530400, '玉溪市', 530000, '', 0, 0, 'Y', '102.55356029311', '24.357710942446', 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530500, '保山市', 530000, '', 0, 0, 'B', '99.177273285818', '25.139038793266', 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530600, '昭通市', 530000, '', 0, 0, 'Z', '103.72351177197', '27.344083860247', 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530700, '丽江市', 530000, '', 0, 0, 'L', '100.23246452903', '26.860657438065', 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530800, '普洱市', 530000, '', 0, 0, 'P', '100.97256981473', '22.83097918601', 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530900, '临沧市', 530000, '', 0, 0, 'L', '100.09544042015', '23.890468556279', 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532300, '楚雄彝族自治州', 530000, '', 0, 0, 'C', '101.5344124805', '25.05177356534', 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532500, '红河哈尼族彝族自治州', 530000, '', 0, 0, 'H', '103.38154905258', '23.369996247605', 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532600, '文山壮族苗族自治州', 530000, '', 0, 0, 'W', '104.22256899109', '23.405994293612', 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532800, '西双版纳傣族自治州', 530000, '', 0, 0, 'X', '100.80344682456', '22.013601254764', 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532900, '大理白族自治州', 530000, '', 0, 0, 'D', '100.27458284048', '25.612128418193', 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(533100, '德宏傣族景颇族自治州', 530000, '', 0, 0, 'D', '98.591359356114', '24.438010702758', 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(533300, '怒江傈僳族自治州', 530000, '', 0, 0, 'N', '98.863288381358', '25.823707417658', 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(533400, '迪庆藏族自治州', 530000, '', 0, 0, 'D', '99.70952999014', '27.825184683643', 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540100, '拉萨市', 540000, '', 0, 0, 'L', '91.120823915464', '29.650040274768', 2, 'tr_0 tr_540000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540200, '日喀则市', 540000, '', 0, 0, 'R', '88.893703034826', '29.275657822512', 2, 'tr_0 tr_540000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540300, '昌都市', 540000, '', 0, 0, 'C', '97.179583594086', '31.147346549327', 2, 'tr_0 tr_540000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540400, '林芝市', 540000, '', 0, 0, 'L', '94.368058287133', '29.654042176952', 2, 'tr_0 tr_540000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540500, '山南市', 540000, '', 0, 0, 'S', '91.778675138519', '29.243026939249', 2, 'tr_0 tr_540000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540600, '那曲市', 540000, '', 0, 0, 'N', '92.057338498175', '31.482438388455', 2, 'tr_0 tr_540000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(542500, '阿里地区', 540000, '', 0, 0, 'A', '80.112776921926', '32.506866017633', 2, 'tr_0 tr_540000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610100, '西安市', 610000, '', 0, 0, 'X', '108.94646555063', '34.347268816624', 2, 'tr_0 tr_610000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610200, '铜川市', 610000, '', 0, 0, 'T', '108.95240424836', '34.902637080503', 2, 'tr_0 tr_610000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610300, '宝鸡市', 610000, '', 0, 0, 'B', '107.24457536704', '34.36891564287', 2, 'tr_0 tr_610000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610400, '咸阳市', 610000, '', 0, 0, 'X', '108.71542245143', '34.335476293369', 2, 'tr_0 tr_610000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610500, '渭南市', 610000, '', 0, 0, 'W', '109.51658960526', '34.505715516753', 2, 'tr_0 tr_610000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610600, '延安市', 610000, '', 0, 0, 'Y', '109.49658191613', '36.591111035218', 2, 'tr_0 tr_610000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610700, '汉中市', 610000, '', 0, 0, 'H', '107.02943020926', '33.073799907834', 2, 'tr_0 tr_610000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610800, '榆林市', 610000, '', 0, 0, 'Y', '109.74161603381', '38.290883835484', 2, 'tr_0 tr_610000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610900, '安康市', 610000, '', 0, 0, 'A', '109.03560108266', '32.690512770574', 2, 'tr_0 tr_610000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(611000, '商洛市', 610000, '', 0, 0, 'S', '109.92441788136', '33.878633852208', 2, 'tr_0 tr_610000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620100, '兰州市', 620000, '', 0, 0, 'L', '103.84052119634', '36.067234693546', 2, 'tr_0 tr_620000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620200, '嘉峪关市', 620000, '', 0, 0, 'J', '98.296203843001', '39.777960147391', 2, 'tr_0 tr_620000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620300, '金昌市', 620000, '', 0, 0, 'J', '102.1946056867', '38.525820092093', 2, 'tr_0 tr_620000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620400, '白银市', 620000, '', 0, 0, 'B', '104.14445082834', '36.550825330415', 2, 'tr_0 tr_620000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620500, '天水市', 620000, '', 0, 0, 'T', '105.73141674567', '34.587411881651', 2, 'tr_0 tr_620000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620600, '武威市', 620000, '', 0, 0, 'W', '102.64455434037', '37.934377808158', 2, 'tr_0 tr_620000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620700, '张掖市', 620000, '', 0, 0, 'Z', '100.45641147406', '38.932066007005', 2, 'tr_0 tr_620000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620800, '平凉市', 620000, '', 0, 0, 'P', '106.67144234828', '35.549232050464', 2, 'tr_0 tr_620000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620900, '酒泉市', 620000, '', 0, 0, 'J', '98.500685216068', '39.738469080716', 2, 'tr_0 tr_620000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(621000, '庆阳市', 620000, '', 0, 0, 'Q', '107.64938569595', '35.715215983562', 2, 'tr_0 tr_620000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(621100, '定西市', 620000, '', 0, 0, 'D', '104.63242008306', '35.586832926562', 2, 'tr_0 tr_620000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(621200, '陇南市', 620000, '', 0, 0, 'L', '104.92857497071', '33.406620229951', 2, 'tr_0 tr_620000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(622900, '临夏回族自治州', 620000, '', 0, 0, 'L', '103.2163905653', '35.607562183503', 2, 'tr_0 tr_620000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(623000, '甘南藏族自治州', 620000, '', 0, 0, 'G', '102.91758468826', '34.989139909968', 2, 'tr_0 tr_620000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(630100, '西宁市', 630000, '', 0, 0, 'X', '101.78445017051', '36.623384696517', 2, 'tr_0 tr_630000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(630200, '海东市', 630000, '', 0, 0, 'H', '102.11044407228', '36.508511080941', 2, 'tr_0 tr_630000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632200, '海北藏族自治州', 630000, '', 0, 0, 'H', '100.90743432146', '36.96066282413', 2, 'tr_0 tr_630000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632300, '黄南藏族自治州', 630000, '', 0, 0, 'H', '102.02242827808', '35.525804586516', 2, 'tr_0 tr_630000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632500, '海南藏族自治州', 630000, '', 0, 0, 'H', '100.62662114446', '36.292102479899', 2, 'tr_0 tr_630000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632600, '果洛藏族自治州', 630000, '', 0, 0, 'G', '100.2515919788', '34.477193866471', 2, 'tr_0 tr_630000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632700, '玉树藏族自治州', 630000, '', 0, 0, 'Y', '97.013180762773', '33.010979585143', 2, 'tr_0 tr_630000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632800, '海西蒙古族藏族自治州', 630000, '', 0, 0, 'H', '97.376299116019', '37.382750462527', 2, 'tr_0 tr_630000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(640100, '银川市', 640000, '', 0, 0, 'Y', '106.2384935874', '38.49246005551', 2, 'tr_0 tr_640000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(640200, '石嘴山市', 640000, '', 0, 0, 'S', '106.3906004255', '38.989682839915', 2, 'tr_0 tr_640000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(640300, '吴忠市', 640000, '', 0, 0, 'W', '106.20537126664', '38.003712913453', 2, 'tr_0 tr_640000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(640400, '固原市', 640000, '', 0, 0, 'G', '106.24857742607', '36.021617258011', 2, 'tr_0 tr_640000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(640500, '中卫市', 640000, '', 0, 0, 'Z', '105.20357090089', '37.505701418703', 2, 'tr_0 tr_640000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(650100, '乌鲁木齐市', 650000, '', 0, 0, 'W', '87.62443993536', '43.83076320429', 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(650200, '克拉玛依市', 650000, '', 0, 0, 'K', '84.895900538875', '45.585675237814', 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(650400, '吐鲁番市', 650000, '', 0, 0, 'T', '89.266025488642', '42.678924820794', 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(650500, '哈密市', 650000, '', 0, 0, 'H', '93.529373012389', '42.344467104552', 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652300, '昌吉回族自治州', 650000, '', 0, 0, 'C', '87.315001624474', '44.01685415992', 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652700, '博尔塔拉蒙古自治州', 650000, '', 0, 0, 'B', '82.072914758274', '44.912196413465', 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652800, '巴音郭楞蒙古自治州', 650000, '', 0, 0, 'B', '86.151713865333', '41.77028733045', 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652900, '阿克苏地区', 650000, '', 0, 0, 'A', '80.266943484735', '41.175029860077', 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(653000, '克孜勒苏柯尔克孜自治州', 650000, '', 0, 0, 'K', '76.174308676212', '39.720471204871', 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(653100, '喀什地区', 650000, '', 0, 0, 'K', '75.996390556397', '39.476096748645', 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(653200, '和田地区', 650000, '', 0, 0, 'H', '79.928507063512', '37.120446463042', 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(654000, '伊犁哈萨克自治州', 650000, '', 0, 0, 'Y', '81.330537747532', '43.922723137492', 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(654200, '塔城地区', 650000, '', 0, 0, 'T', '82.987235518406', '46.750948254373', 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(654300, '阿勒泰地区', 650000, '', 0, 0, 'A', '88.147926203735', '47.850727870102', 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(659000, '自治区直辖县级行政区划', 650000, '', 0, 0, 'Z', '87.633473205738', '43.79923810129', 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(110101, '东城区', 110100, '', 0, 0, 'D', '116.42240097766', '39.934827272396', 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(110102, '西城区', 110100, '', 0, 0, 'X', '116.37251358117', '39.918123605841', 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(110105, '朝阳区', 110100, '', 0, 0, 'C', '112.85530302042', '35.520558754673', 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(110106, '丰台区', 110100, '', 0, 0, 'F', '116.29240188731', '39.864937197557', 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(110107, '石景山区', 110100, '', 0, 0, 'S', '116.22961266776', '39.911353808778', 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(110108, '海淀区', 110100, '', 0, 0, 'H', '116.3054340545', '39.965489841101', 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(110109, '门头沟区', 110100, '', 0, 0, 'M', '116.10760355577', '39.946146720034', 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(110111, '房山区', 110100, '', 0, 0, 'F', '116.14944375184', '39.754325839773', 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(110112, '通州区', 110100, '', 0, 0, 'T', '112.85530302042', '35.520558754673', 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(110113, '顺义区', 110100, '', 0, 0, 'S', '116.66142426369', '40.136350762231', 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(110114, '昌平区', 110100, '', 0, 0, 'C', '116.23761791731', '40.226413371594', 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(110115, '大兴区', 110100, '', 0, 0, 'D', '116.34862521223', '39.732555236554', 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(110116, '怀柔区', 110100, '', 0, 0, 'H', '116.63838587143', '40.322618404266', 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(110117, '平谷区', 110100, '', 0, 0, 'P', '117.1273791046', '40.146950735799', 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(110118, '密云区', 110100, '', 0, 0, 'M', '116.84954704427', '40.382175658138', 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(110119, '延庆区', 110100, '', 0, 0, 'Y', '115.98163156902', '40.462168973754', 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(120101, '和平区', 120100, '', 0, 0, 'H', '112.85530302042', '35.520558754673', 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(120102, '河东区', 120100, '', 0, 0, 'H', '117.26169316527', '39.126625684666', 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(120103, '河西区', 120100, '', 0, 0, 'H', '117.22941628002', '39.115718082216', 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(120104, '南开区', 120100, '', 0, 0, 'N', '117.15651537432', '39.144105279768', 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(120105, '河北区', 120100, '', 0, 0, 'H', '117.20359278136', '39.153485144705', 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(120106, '红桥区', 120100, '', 0, 0, 'H', '117.15751788327', '39.173285646564', 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(120110, '东丽区', 120100, '', 0, 0, 'D', '117.32056850791', '39.092332342815', 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(120111, '西青区', 120100, '', 0, 0, 'X', '117.01441017994', '39.148726608967', 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(120112, '津南区', 120100, '', 0, 0, 'J', '117.36338677903', '38.944148568115', 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(120113, '北辰区', 120100, '', 0, 0, 'B', '117.14140273158', '39.230343909918', 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(120114, '武清区', 120100, '', 0, 0, 'W', '117.05059715978', '39.389871228788', 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(120115, '宝坻区', 120100, '', 0, 0, 'B', '117.31660069248', '39.723194482933', 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(120116, '滨海新区', 120100, '', 0, 0, 'B', '117.71739882966', '39.009415773647', 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(120117, '宁河区', 120100, '', 0, 0, 'N', '117.83239334342', '39.336956431227', 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(120118, '静海区', 120100, '', 0, 0, 'J', '116.98046860455', '38.953370689172', 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(120119, '蓟州区', 120100, '', 0, 0, 'J', '117.41457869479', '40.051508786395', 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140105, '小店区', 140100, '', 0, 0, 'X', '112.57239624162', '37.742322528645', 3, 'tr_0 tr_140000 tr_140100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140106, '迎泽区', 140100, '', 0, 0, 'Y', '112.5693846724', '37.869532484225', 3, 'tr_0 tr_140000 tr_140100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140107, '杏花岭区', 140100, '', 0, 0, 'X', '112.5763830113', '37.900186246845', 3, 'tr_0 tr_140000 tr_140100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140108, '尖草坪区', 140100, '', 0, 0, 'J', '112.49360496704', '37.945943354548', 3, 'tr_0 tr_140000 tr_140100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140109, '万柏林区', 140100, '', 0, 0, 'W', '112.52257675702', '37.864974410402', 3, 'tr_0 tr_140000 tr_140100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140110, '晋源区', 140100, '', 0, 0, 'J', '112.48456424072', '37.721168857849', 3, 'tr_0 tr_140000 tr_140100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140121, '清徐县', 140100, '', 0, 0, 'Q', '112.36455763137', '37.613066838238', 3, 'tr_0 tr_140000 tr_140100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140122, '阳曲县', 140100, '', 0, 0, 'Y', '112.6794089516', '38.064620819448', 3, 'tr_0 tr_140000 tr_140100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140123, '娄烦县', 140100, '', 0, 0, 'L', '111.80359063362', '38.073195368896', 3, 'tr_0 tr_140000 tr_140100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140171, '山西转型综合改革示范区', 140100, '', 0, 0, 'S', '112.55639149167', '37.876989028848', 3, 'tr_0 tr_140000 tr_140100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140181, '古交市', 140100, '', 0, 0, 'G', '112.1824528689', '37.912999960962', 3, 'tr_0 tr_140000 tr_140100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140212, '新荣区', 140200, '', 0, 0, 'X', '113.14644373539', '40.261971219328', 3, 'tr_0 tr_140000 tr_140200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140213, '平城区', 140200, '', 0, 0, 'P', '113.30442522204', '40.081998375025', 3, 'tr_0 tr_140000 tr_140200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140214, '云冈区', 140200, '', 0, 0, 'Y', '113.16240150396', '39.996838811279', 3, 'tr_0 tr_140000 tr_140200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140215, '云州区', 140200, '', 0, 0, 'Y', '113.61847103172', '40.046229886508', 3, 'tr_0 tr_140000 tr_140200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140221, '阳高县', 140200, '', 0, 0, 'Y', '113.75541420332', '40.367391842472', 3, 'tr_0 tr_140000 tr_140200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140222, '天镇县', 140200, '', 0, 0, 'T', '114.09747753304', '40.426412198691', 3, 'tr_0 tr_140000 tr_140200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140223, '广灵县', 140200, '', 0, 0, 'G', '114.28858637097', '39.766004217139', 3, 'tr_0 tr_140000 tr_140200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140224, '灵丘县', 140200, '', 0, 0, 'L', '114.24136819946', '39.448825128052', 3, 'tr_0 tr_140000 tr_140200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140225, '浑源县', 140200, '', 0, 0, 'H', '113.70560028822', '39.698952969845', 3, 'tr_0 tr_140000 tr_140200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140226, '左云县', 140200, '', 0, 0, 'Z', '112.70946328956', '40.019623449015', 3, 'tr_0 tr_140000 tr_140200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140271, '山西大同经济开发区', 140200, '', 0, 0, 'S', '113.30643625859', '40.082468716161', 3, 'tr_0 tr_140000 tr_140200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140302, '城区', 140300, '', 0, 0, 'C', '113.61283811719', '37.85786536147', 3, 'tr_0 tr_140000 tr_140300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140303, '矿区', 140300, '', 0, 0, 'K', '113.54077065934', '37.890804244519', 3, 'tr_0 tr_140000 tr_140300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140311, '郊区', 140300, '', 0, 0, 'J', '113.60060283682', '37.950352892943', 3, 'tr_0 tr_140000 tr_140300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140321, '平定县', 140300, '', 0, 0, 'P', '113.66442115516', '37.792796383591', 3, 'tr_0 tr_140000 tr_140300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140322, '盂县', 140300, '', 0, 0, 'Y', '113.41842046075', '38.091979630201', 3, 'tr_0 tr_140000 tr_140300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140403, '潞州区', 140400, '', 0, 0, 'L', '113.12952091721', '36.209472481338', 3, 'tr_0 tr_140000 tr_140400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'); -INSERT INTO `hg_sys_provinces` (`id`, `title`, `pid`, `short_title`, `areacode`, `zipcode`, `pinyin`, `lng`, `lat`, `level`, `tree`, `sort`, `status`, `created_at`, `updated_at`) VALUES -(140404, '上党区', 140400, '', 0, 0, 'S', '113.05741608986', '36.059286479291', 3, 'tr_0 tr_140000 tr_140400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140405, '屯留区', 140400, '', 0, 0, 'T', '112.89847476377', '36.321630843108', 3, 'tr_0 tr_140000 tr_140400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140406, '潞城区', 140400, '', 0, 0, 'L', '113.23557845894', '36.339691267612', 3, 'tr_0 tr_140000 tr_140400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140423, '襄垣县', 140400, '', 0, 0, 'X', '113.05741258647', '36.541685821155', 3, 'tr_0 tr_140000 tr_140400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140425, '平顺县', 140400, '', 0, 0, 'P', '113.44251696707', '36.205989459384', 3, 'tr_0 tr_140000 tr_140400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140426, '黎城县', 140400, '', 0, 0, 'L', '113.39343247604', '36.508669901441', 3, 'tr_0 tr_140000 tr_140400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140427, '壶关县', 140400, '', 0, 0, 'H', '113.21357985531', '36.121334604237', 3, 'tr_0 tr_140000 tr_140400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140428, '长子县', 140400, '', 0, 0, 'Z', '112.88456585041', '36.128001557794', 3, 'tr_0 tr_140000 tr_140400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140429, '武乡县', 140400, '', 0, 0, 'W', '112.8706056438', '36.843167949301', 3, 'tr_0 tr_140000 tr_140400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140430, '沁县', 140400, '', 0, 0, 'Q', '112.70545801478', '36.762189938552', 3, 'tr_0 tr_140000 tr_140400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140431, '沁源县', 140400, '', 0, 0, 'Q', '112.34445202694', '36.506103350913', 3, 'tr_0 tr_140000 tr_140400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140471, '山西长治高新技术产业园区', 140400, '', 0, 0, 'S', '113.12255886985', '36.201268372155', 3, 'tr_0 tr_140000 tr_140400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140502, '城区', 140500, '', 0, 0, 'C', '112.85958379452', '35.507278924584', 3, 'tr_0 tr_140000 tr_140500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140521, '沁水县', 140500, '', 0, 0, 'Q', '112.19342620969', '35.696364462457', 3, 'tr_0 tr_140000 tr_140500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140522, '阳城县', 140500, '', 0, 0, 'Y', '112.42145378712', '35.492181320425', 3, 'tr_0 tr_140000 tr_140500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140524, '陵川县', 140500, '', 0, 0, 'L', '113.28740655466', '35.781743639538', 3, 'tr_0 tr_140000 tr_140500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140525, '泽州县', 140500, '', 0, 0, 'Z', '112.79440121959', '35.599769729488', 3, 'tr_0 tr_140000 tr_140500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140581, '高平市', 140500, '', 0, 0, 'G', '112.93041239923', '35.804336798578', 3, 'tr_0 tr_140000 tr_140500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140602, '朔城区', 140600, '', 0, 0, 'S', '112.43837642564', '39.325302712534', 3, 'tr_0 tr_140000 tr_140600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140603, '平鲁区', 140600, '', 0, 0, 'P', '112.29552500886', '39.517389104237', 3, 'tr_0 tr_140000 tr_140600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140621, '山阴县', 140600, '', 0, 0, 'S', '112.82243194473', '39.534030498011', 3, 'tr_0 tr_140000 tr_140600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140622, '应县', 140600, '', 0, 0, 'Y', '113.19749353922', '39.560077852375', 3, 'tr_0 tr_140000 tr_140600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140623, '右玉县', 140600, '', 0, 0, 'Y', '112.47350008125', '39.994859555431', 3, 'tr_0 tr_140000 tr_140600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140671, '山西朔州经济开发区', 140600, '', 0, 0, 'S', '112.46306042376', '39.354781496121', 3, 'tr_0 tr_140000 tr_140600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140681, '怀仁市', 140600, '', 0, 0, 'H', '113.10660846738', '39.833756889522', 3, 'tr_0 tr_140000 tr_140600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140702, '榆次区', 140700, '', 0, 0, 'Y', '112.71450350211', '37.703940486801', 3, 'tr_0 tr_140000 tr_140700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140721, '榆社县', 140700, '', 0, 0, 'Y', '112.98159856583', '37.0763696687', 3, 'tr_0 tr_140000 tr_140700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140722, '左权县', 140700, '', 0, 0, 'Z', '113.38545184006', '37.088555147171', 3, 'tr_0 tr_140000 tr_140700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140723, '和顺县', 140700, '', 0, 0, 'H', '113.57660568309', '37.334807738688', 3, 'tr_0 tr_140000 tr_140700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140724, '昔阳县', 140700, '', 0, 0, 'X', '113.71361290387', '37.617884042996', 3, 'tr_0 tr_140000 tr_140700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140725, '寿阳县', 140700, '', 0, 0, 'S', '113.18341017493', '37.901307606957', 3, 'tr_0 tr_140000 tr_140700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140726, '太谷县', 140700, '', 0, 0, 'T', '112.55738411926', '37.427395577313', 3, 'tr_0 tr_140000 tr_140700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140727, '祁县', 140700, '', 0, 0, 'Q', '112.34244242768', '37.364131283475', 3, 'tr_0 tr_140000 tr_140700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140728, '平遥县', 140700, '', 0, 0, 'P', '112.18245556381', '37.195600690703', 3, 'tr_0 tr_140000 tr_140700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140729, '灵石县', 140700, '', 0, 0, 'L', '111.78561787596', '36.85336750127', 3, 'tr_0 tr_140000 tr_140700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140781, '介休市', 140700, '', 0, 0, 'J', '111.92356319719', '37.032686403603', 3, 'tr_0 tr_140000 tr_140700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140802, '盐湖区', 140800, '', 0, 0, 'Y', '111.00437711462', '35.021425327829', 3, 'tr_0 tr_140000 tr_140800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140821, '临猗县', 140800, '', 0, 0, 'L', '110.78040700351', '35.149542242622', 3, 'tr_0 tr_140000 tr_140800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140822, '万荣县', 140800, '', 0, 0, 'W', '110.84457611016', '35.421108800536', 3, 'tr_0 tr_140000 tr_140800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140823, '闻喜县', 140800, '', 0, 0, 'W', '111.23141035768', '35.362931196381', 3, 'tr_0 tr_140000 tr_140800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140824, '稷山县', 140800, '', 0, 0, 'J', '110.98941457872', '35.610403569616', 3, 'tr_0 tr_140000 tr_140800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140825, '新绛县', 140800, '', 0, 0, 'X', '111.23140649497', '35.622630103082', 3, 'tr_0 tr_140000 tr_140800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140826, '绛县', 140800, '', 0, 0, 'J', '111.57548652056', '35.497276373896', 3, 'tr_0 tr_140000 tr_140800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140827, '垣曲县', 140800, '', 0, 0, 'Y', '111.67660670572', '35.303014517418', 3, 'tr_0 tr_140000 tr_140800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140828, '夏县', 140800, '', 0, 0, 'X', '111.2264314994', '35.147461779807', 3, 'tr_0 tr_140000 tr_140800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140829, '平陆县', 140800, '', 0, 0, 'P', '111.22348047596', '34.842925154581', 3, 'tr_0 tr_140000 tr_140800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140830, '芮城县', 140800, '', 0, 0, 'R', '110.7006115132', '34.699388110563', 3, 'tr_0 tr_140000 tr_140800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140881, '永济市', 140800, '', 0, 0, 'Y', '110.45457767131', '34.872829714714', 3, 'tr_0 tr_140000 tr_140800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140882, '河津市', 140800, '', 0, 0, 'H', '110.71857214373', '35.601926575322', 3, 'tr_0 tr_140000 tr_140800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140902, '忻府区', 140900, '', 0, 0, 'X', '112.75261366422', '38.40987981762', 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140921, '定襄县', 140900, '', 0, 0, 'D', '112.96352861152', '38.479974305847', 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140922, '五台县', 140900, '', 0, 0, 'W', '113.26145109492', '38.734181590565', 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140923, '代县', 140900, '', 0, 0, 'D', '112.96655194854', '39.072728346381', 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140924, '繁峙县', 140900, '', 0, 0, 'F', '113.27140827251', '39.195237430734', 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140925, '宁武县', 140900, '', 0, 0, 'N', '112.32639824212', '39.024342381431', 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140926, '静乐县', 140900, '', 0, 0, 'J', '111.94543190585', '38.365147088438', 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140927, '神池县', 140900, '', 0, 0, 'S', '112.21738276001', '39.096875824863', 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140928, '五寨县', 140900, '', 0, 0, 'W', '111.85340993856', '38.917019909692', 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140929, '岢岚县', 140900, '', 0, 0, 'K', '111.57947778177', '38.710151038936', 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140930, '河曲县', 140900, '', 0, 0, 'H', '111.14444863516', '39.390702488715', 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140931, '保德县', 140900, '', 0, 0, 'B', '111.09254175805', '39.028336932396', 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140932, '偏关县', 140900, '', 0, 0, 'P', '111.51447352049', '39.442230090387', 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140971, '五台山风景名胜区', 140900, '', 0, 0, 'W', '113.602695497', '38.983546253607', 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(140981, '原平市', 140900, '', 0, 0, 'Y', '112.71748713403', '38.736475897605', 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141002, '尧都区', 141000, '', 0, 0, 'Y', '111.58643021727', '36.084562230192', 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141021, '曲沃县', 141000, '', 0, 0, 'Q', '111.48239637819', '35.647327335982', 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141022, '翼城县', 141000, '', 0, 0, 'Y', '111.72537553219', '35.744429075039', 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141023, '襄汾县', 141000, '', 0, 0, 'X', '111.44854005199', '35.882062670676', 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141024, '洪洞县', 141000, '', 0, 0, 'H', '111.68158942672', '36.259467079377', 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141025, '古县', 141000, '', 0, 0, 'G', '111.92657314947', '36.272338064827', 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141026, '安泽县', 141000, '', 0, 0, 'A', '112.2566128396', '36.153514380523', 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141027, '浮山县', 141000, '', 0, 0, 'F', '111.85538495306', '35.974392753943', 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141028, '吉县', 141000, '', 0, 0, 'J', '110.68854637189', '36.103999062021', 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141029, '乡宁县', 141000, '', 0, 0, 'X', '110.85349790083', '35.976441665474', 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141030, '大宁县', 141000, '', 0, 0, 'D', '110.75938440882', '36.471305687097', 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141031, '隰县', 141000, '', 0, 0, 'X', '110.94759127079', '36.699061383227', 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141032, '永和县', 141000, '', 0, 0, 'Y', '110.63841589393', '36.765908673933', 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141033, '蒲县', 141000, '', 0, 0, 'P', '111.10247405258', '36.418005429177', 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141034, '汾西县', 141000, '', 0, 0, 'F', '111.56954629571', '36.658782264232', 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141081, '侯马市', 141000, '', 0, 0, 'H', '111.37839658489', '35.625364816258', 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141082, '霍州市', 141000, '', 0, 0, 'H', '111.76150942218', '36.574606950709', 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141102, '离石区', 141100, '', 0, 0, 'L', '111.15749077354', '37.523577475907', 3, 'tr_0 tr_140000 tr_141100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141121, '文水县', 141100, '', 0, 0, 'W', '112.0355986926', '37.444300082651', 3, 'tr_0 tr_140000 tr_141100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141122, '交城县', 141100, '', 0, 0, 'J', '112.16256770864', '37.557772236259', 3, 'tr_0 tr_140000 tr_141100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141123, '兴县', 141100, '', 0, 0, 'X', '111.13439210498', '38.468803780991', 3, 'tr_0 tr_140000 tr_141100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141124, '临县', 141100, '', 0, 0, 'L', '110.99841488129', '37.957210672321', 3, 'tr_0 tr_140000 tr_141100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141125, '柳林县', 141100, '', 0, 0, 'L', '110.8953898393', '37.435492964934', 3, 'tr_0 tr_140000 tr_141100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141126, '石楼县', 141100, '', 0, 0, 'S', '110.84159553248', '37.004470503012', 3, 'tr_0 tr_140000 tr_141100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141127, '岚县', 141100, '', 0, 0, 'L', '111.67859223038', '38.28502878885', 3, 'tr_0 tr_140000 tr_141100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141128, '方山县', 141100, '', 0, 0, 'F', '111.25037044293', '37.90102023916', 3, 'tr_0 tr_140000 tr_141100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141129, '中阳县', 141100, '', 0, 0, 'Z', '111.18562956483', '37.36287279238', 3, 'tr_0 tr_140000 tr_141100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141130, '交口县', 141100, '', 0, 0, 'J', '111.18762820476', '36.987872666553', 3, 'tr_0 tr_140000 tr_141100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141181, '孝义市', 141100, '', 0, 0, 'X', '111.78560601833', '37.151063319102', 3, 'tr_0 tr_140000 tr_141100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(141182, '汾阳市', 141100, '', 0, 0, 'F', '111.7945966192', '37.271291794518', 3, 'tr_0 tr_140000 tr_141100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150102, '新城区', 150100, '', 0, 0, 'X', '111.671620122', '40.863877021183', 3, 'tr_0 tr_150000 tr_150100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150103, '回民区', 150100, '', 0, 0, 'H', '111.63047018388', '40.814506362944', 3, 'tr_0 tr_150000 tr_150100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150104, '玉泉区', 150100, '', 0, 0, 'Y', '111.68157514366', '40.758058968635', 3, 'tr_0 tr_150000 tr_150100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150105, '赛罕区', 150100, '', 0, 0, 'S', '111.7084206445', '40.798394236975', 3, 'tr_0 tr_150000 tr_150100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150121, '土默特左旗', 150100, '', 0, 0, 'T', '111.16958672672', '40.735293711759', 3, 'tr_0 tr_150000 tr_150100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150122, '托克托县', 150100, '', 0, 0, 'T', '111.20057494309', '40.283146729007', 3, 'tr_0 tr_150000 tr_150100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150123, '和林格尔县', 150100, '', 0, 0, 'H', '111.82843021826', '40.384797744251', 3, 'tr_0 tr_150000 tr_150100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150124, '清水河县', 150100, '', 0, 0, 'Q', '111.65357648803', '39.926333854389', 3, 'tr_0 tr_150000 tr_150100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150125, '武川县', 150100, '', 0, 0, 'W', '111.45749705623', '41.102418723793', 3, 'tr_0 tr_150000 tr_150100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150171, '呼和浩特金海工业园区', 150100, '', 0, 0, 'H', '111.61859862741', '40.813484420815', 3, 'tr_0 tr_150000 tr_150100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150172, '呼和浩特经济技术开发区', 150100, '', 0, 0, 'H', '111.75550856171', '40.848422997113', 3, 'tr_0 tr_150000 tr_150100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150202, '东河区', 150200, '', 0, 0, 'D', '110.05039480879', '40.582228038324', 3, 'tr_0 tr_150000 tr_150200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150203, '昆都仑区', 150200, '', 0, 0, 'K', '109.84553830335', '40.647644106921', 3, 'tr_0 tr_150000 tr_150200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150204, '青山区', 150200, '', 0, 0, 'Q', '109.9074160123', '40.649473068783', 3, 'tr_0 tr_150000 tr_150200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150205, '石拐区', 150200, '', 0, 0, 'S', '110.27838088451', '40.67829939834', 3, 'tr_0 tr_150000 tr_150200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150206, '白云鄂博矿区', 150200, '', 0, 0, 'B', '109.97962576174', '41.774995234182', 3, 'tr_0 tr_150000 tr_150200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150207, '九原区', 150200, '', 0, 0, 'J', '109.96958800614', '40.613396589444', 3, 'tr_0 tr_150000 tr_150200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150221, '土默特右旗', 150200, '', 0, 0, 'T', '110.53038926652', '40.575127429108', 3, 'tr_0 tr_150000 tr_150200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150222, '固阳县', 150200, '', 0, 0, 'G', '110.06643261639', '41.040162852726', 3, 'tr_0 tr_150000 tr_150200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150223, '达尔罕茂明安联合旗', 150200, '', 0, 0, 'D', '110.43952090317', '41.704548551002', 3, 'tr_0 tr_150000 tr_150200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150271, '包头稀土高新技术产业开发区', 150200, '', 0, 0, 'B', '109.84664914794', '40.637085021364', 3, 'tr_0 tr_150000 tr_150200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150302, '海勃湾区', 150300, '', 0, 0, 'H', '106.82943856714', '39.696907993535', 3, 'tr_0 tr_150000 tr_150300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150303, '海南区', 150300, '', 0, 0, 'H', '106.89847100998', '39.446827515087', 3, 'tr_0 tr_150000 tr_150300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150304, '乌达区', 150300, '', 0, 0, 'W', '106.7326063535', '39.511468916129', 3, 'tr_0 tr_150000 tr_150300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150402, '红山区', 150400, '', 0, 0, 'H', '118.96356353651', '42.27047843525', 3, 'tr_0 tr_150000 tr_150400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150403, '元宝山区', 150400, '', 0, 0, 'Y', '119.29540450885', '42.045124715638', 3, 'tr_0 tr_150000 tr_150400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150404, '松山区', 150400, '', 0, 0, 'S', '118.9394138505', '42.292481572694', 3, 'tr_0 tr_150000 tr_150400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150421, '阿鲁科尔沁旗', 150400, '', 0, 0, 'A', '120.07261385472', '43.877953412182', 3, 'tr_0 tr_150000 tr_150400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150422, '巴林左旗', 150400, '', 0, 0, 'B', '119.38644328076', '43.97638259461', 3, 'tr_0 tr_150000 tr_150400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150423, '巴林右旗', 150400, '', 0, 0, 'B', '118.67039425705', '43.540131553108', 3, 'tr_0 tr_150000 tr_150400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150424, '林西县', 150400, '', 0, 0, 'L', '118.06246142182', '43.624210259291', 3, 'tr_0 tr_150000 tr_150400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150425, '克什克腾旗', 150400, '', 0, 0, 'K', '117.55162041051', '43.270757591896', 3, 'tr_0 tr_150000 tr_150400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150426, '翁牛特旗', 150400, '', 0, 0, 'W', '119.01250888002', '42.942019262236', 3, 'tr_0 tr_150000 tr_150400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150428, '喀喇沁旗', 150400, '', 0, 0, 'K', '118.7104736845', '41.932214335643', 3, 'tr_0 tr_150000 tr_150400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150429, '宁城县', 150400, '', 0, 0, 'N', '119.35060897566', '41.600245148269', 3, 'tr_0 tr_150000 tr_150400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150430, '敖汉旗', 150400, '', 0, 0, 'A', '119.92757793861', '42.296507085243', 3, 'tr_0 tr_150000 tr_150400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150502, '科尔沁区', 150500, '', 0, 0, 'K', '122.2624570337', '43.628712488829', 3, 'tr_0 tr_150000 tr_150500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150521, '科尔沁左翼中旗', 150500, '', 0, 0, 'K', '123.31858853365', '44.132294228308', 3, 'tr_0 tr_150000 tr_150500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150522, '科尔沁左翼后旗', 150500, '', 0, 0, 'K', '122.36356257648', '42.93956249402', 3, 'tr_0 tr_150000 tr_150500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150523, '开鲁县', 150500, '', 0, 0, 'K', '121.32538568843', '43.606369431362', 3, 'tr_0 tr_150000 tr_150500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150524, '库伦旗', 150500, '', 0, 0, 'K', '121.81740576201', '42.741211100235', 3, 'tr_0 tr_150000 tr_150500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150525, '奈曼旗', 150500, '', 0, 0, 'N', '120.66464641294', '42.87184654666', 3, 'tr_0 tr_150000 tr_150500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150526, '扎鲁特旗', 150500, '', 0, 0, 'Z', '120.91862585689', '44.562213133099', 3, 'tr_0 tr_150000 tr_150500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150571, '通辽经济技术开发区', 150500, '', 0, 0, 'T', '122.22276854881', '43.676026521565', 3, 'tr_0 tr_150000 tr_150500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150581, '霍林郭勒市', 150500, '', 0, 0, 'H', '119.67046591394', '45.53751332061', 3, 'tr_0 tr_150000 tr_150500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130100, '石家庄市', 130000, '', 0, 0, 'S', '114.52153190157', '38.048311926873', 2, 'tr_0 tr_130000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130200, '唐山市', 130000, '', 0, 0, 'T', '118.18645947204', '39.636583724147', 2, 'tr_0 tr_130000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130300, '秦皇岛市', 130000, '', 0, 0, 'Q', '119.60853063334', '39.941748102378', 2, 'tr_0 tr_130000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130400, '邯郸市', 130000, '', 0, 0, 'H', '114.54562822824', '36.631262731204', 2, 'tr_0 tr_130000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130500, '邢台市', 130000, '', 0, 0, 'X', '114.51146225613', '37.076685950966', 2, 'tr_0 tr_130000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130600, '保定市', 130000, '', 0, 0, 'B', '115.47146383769', '38.879987768455', 2, 'tr_0 tr_130000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130700, '张家口市', 130000, '', 0, 0, 'Z', '114.89257223145', '40.773237202691', 2, 'tr_0 tr_130000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130800, '承德市', 130000, '', 0, 0, 'C', '117.96939750997', '40.957856012338', 2, 'tr_0 tr_130000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130900, '沧州市', 130000, '', 0, 0, 'C', '116.84558075595', '38.310215141107', 2, 'tr_0 tr_130000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(131000, '廊坊市', 130000, '', 0, 0, 'L', '116.69058173343', '39.543366662759', 2, 'tr_0 tr_130000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(131100, '衡水市', 130000, '', 0, 0, 'H', '115.67540613762', '37.745191408077', 2, 'tr_0 tr_130000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150602, '东胜区', 150600, '', 0, 0, 'D', '109.96956006883', '39.827986984444', 3, 'tr_0 tr_150000 tr_150600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150603, '康巴什区', 150600, '', 0, 0, 'K', '109.86962735373', '39.616378146766', 3, 'tr_0 tr_150000 tr_150600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150621, '达拉特旗', 150600, '', 0, 0, 'D', '110.04036612608', '40.418907154391', 3, 'tr_0 tr_150000 tr_150600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150622, '准格尔旗', 150600, '', 0, 0, 'Z', '111.24639840546', '39.870540265037', 3, 'tr_0 tr_150000 tr_150600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150623, '鄂托克前旗', 150600, '', 0, 0, 'E', '107.48458472303', '38.188216741284', 3, 'tr_0 tr_150000 tr_150600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150624, '鄂托克旗', 150600, '', 0, 0, 'E', '107.98244495023', '39.095293413608', 3, 'tr_0 tr_150000 tr_150600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150625, '杭锦旗', 150600, '', 0, 0, 'H', '108.74241293879', '39.838815768815', 3, 'tr_0 tr_150000 tr_150600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150626, '乌审旗', 150600, '', 0, 0, 'W', '108.82443496914', '38.610026521177', 3, 'tr_0 tr_150000 tr_150600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150627, '伊金霍洛旗', 150600, '', 0, 0, 'Y', '109.78744317924', '39.614482313949', 3, 'tr_0 tr_150000 tr_150600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150702, '海拉尔区', 150700, '', 0, 0, 'H', '119.74246537006', '49.218215799363', 3, 'tr_0 tr_150000 tr_150700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150703, '扎赉诺尔区', 150700, '', 0, 0, 'Z', '117.69453227349', '49.467770183628', 3, 'tr_0 tr_150000 tr_150700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150721, '阿荣旗', 150700, '', 0, 0, 'A', '123.46544000531', '48.131971245042', 3, 'tr_0 tr_150000 tr_150700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150722, '莫力达瓦达斡尔族自治旗', 150700, '', 0, 0, 'M', '124.52557642071', '48.482896292115', 3, 'tr_0 tr_150000 tr_150700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150723, '鄂伦春自治旗', 150700, '', 0, 0, 'E', '123.73234507742', '50.597947928064', 3, 'tr_0 tr_150000 tr_150700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150724, '鄂温克族自治旗', 150700, '', 0, 0, 'E', '119.76135125527', '49.15304476395', 3, 'tr_0 tr_150000 tr_150700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150725, '陈巴尔虎旗', 150700, '', 0, 0, 'C', '119.43046248677', '49.334914288885', 3, 'tr_0 tr_150000 tr_150700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150726, '新巴尔虎左旗', 150700, '', 0, 0, 'X', '118.27660837276', '48.223786760037', 3, 'tr_0 tr_150000 tr_150700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150727, '新巴尔虎右旗', 150700, '', 0, 0, 'X', '116.83063240352', '48.677053599089', 3, 'tr_0 tr_150000 tr_150700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150781, '满洲里市', 150700, '', 0, 0, 'M', '117.38543585768', '49.604098854866', 3, 'tr_0 tr_150000 tr_150700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150782, '牙克石市', 150700, '', 0, 0, 'Y', '120.7183468371', '49.292023693206', 3, 'tr_0 tr_150000 tr_150700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150783, '扎兰屯市', 150700, '', 0, 0, 'Z', '122.74445371486', '48.01995552011', 3, 'tr_0 tr_150000 tr_150700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150784, '额尔古纳市', 150700, '', 0, 0, 'E', '120.18663369726', '50.248131758636', 3, 'tr_0 tr_150000 tr_150700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150785, '根河市', 150700, '', 0, 0, 'G', '121.52758526594', '50.786140434318', 3, 'tr_0 tr_150000 tr_150700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150802, '临河区', 150800, '', 0, 0, 'L', '107.36953379568', '40.75668072584', 3, 'tr_0 tr_150000 tr_150800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150821, '五原县', 150800, '', 0, 0, 'W', '108.2734913541', '41.094454821479', 3, 'tr_0 tr_150000 tr_150800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150822, '磴口县', 150800, '', 0, 0, 'D', '107.01452247', '40.336470177103', 3, 'tr_0 tr_150000 tr_150800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150823, '乌拉特前旗', 150800, '', 0, 0, 'W', '108.6586151381', '40.742103512928', 3, 'tr_0 tr_150000 tr_150800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150824, '乌拉特中旗', 150800, '', 0, 0, 'W', '108.51951244005', '41.593346263746', 3, 'tr_0 tr_150000 tr_150800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150825, '乌拉特后旗', 150800, '', 0, 0, 'W', '107.08154612207', '41.089422269258', 3, 'tr_0 tr_150000 tr_150800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150826, '杭锦后旗', 150800, '', 0, 0, 'H', '107.15737244949', '40.892179419823', 3, 'tr_0 tr_150000 tr_150800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150902, '集宁区', 150900, '', 0, 0, 'J', '113.12058699942', '41.041146171787', 3, 'tr_0 tr_150000 tr_150900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150921, '卓资县', 150900, '', 0, 0, 'Z', '112.5844095507', '40.900291837834', 3, 'tr_0 tr_150000 tr_150900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150922, '化德县', 150900, '', 0, 0, 'H', '114.0164087845', '41.909602587109', 3, 'tr_0 tr_150000 tr_150900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150923, '商都县', 150900, '', 0, 0, 'S', '113.58463922926', '41.567566637224', 3, 'tr_0 tr_150000 tr_150900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150924, '兴和县', 150900, '', 0, 0, 'X', '113.84057886567', '40.879341798933', 3, 'tr_0 tr_150000 tr_150900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150925, '凉城县', 150900, '', 0, 0, 'L', '112.51060018864', '40.5371631252', 3, 'tr_0 tr_150000 tr_150900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150926, '察哈尔右翼前旗', 150900, '', 0, 0, 'C', '113.22160531673', '40.791267302593', 3, 'tr_0 tr_150000 tr_150900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150927, '察哈尔右翼中旗', 150900, '', 0, 0, 'C', '112.64258040196', '41.283272943291', 3, 'tr_0 tr_150000 tr_150900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150928, '察哈尔右翼后旗', 150900, '', 0, 0, 'C', '113.19853090242', '41.441770999655', 3, 'tr_0 tr_150000 tr_150900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150929, '四子王旗', 150900, '', 0, 0, 'S', '111.71241927182', '41.539353349915', 3, 'tr_0 tr_150000 tr_150900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(150981, '丰镇市', 150900, '', 0, 0, 'F', '113.11660121788', '40.441804808844', 3, 'tr_0 tr_150000 tr_150900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(152201, '乌兰浩特市', 152200, '', 0, 0, 'W', '122.09962235198', '46.078654343582', 3, 'tr_0 tr_150000 tr_152200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(152202, '阿尔山市', 152200, '', 0, 0, 'A', '119.95065315166', '47.18305415375', 3, 'tr_0 tr_150000 tr_152200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(152221, '科尔沁右翼前旗', 152200, '', 0, 0, 'K', '121.9645531355', '46.082648853819', 3, 'tr_0 tr_150000 tr_152200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(152222, '科尔沁右翼中旗', 152200, '', 0, 0, 'K', '121.48354781458', '45.066470993428', 3, 'tr_0 tr_150000 tr_152200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(152223, '扎赉特旗', 152200, '', 0, 0, 'Z', '122.90644442883', '46.729189539358', 3, 'tr_0 tr_150000 tr_152200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(152224, '突泉县', 152200, '', 0, 0, 'T', '121.60054536997', '45.387830342585', 3, 'tr_0 tr_150000 tr_152200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(152501, '二连浩特市', 152500, '', 0, 0, 'E', '111.95836319333', '43.648800184052', 3, 'tr_0 tr_150000 tr_152500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(152502, '锡林浩特市', 152500, '', 0, 0, 'X', '116.09361388474', '43.93833380136', 3, 'tr_0 tr_150000 tr_152500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(152522, '阿巴嘎旗', 152500, '', 0, 0, 'A', '114.95736709772', '44.028101587023', 3, 'tr_0 tr_150000 tr_152500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(152523, '苏尼特左旗', 152500, '', 0, 0, 'S', '113.67347993742', '43.865553657792', 3, 'tr_0 tr_150000 tr_152500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(152524, '苏尼特右旗', 152500, '', 0, 0, 'S', '112.64856904548', '42.747368922463', 3, 'tr_0 tr_150000 tr_152500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(152525, '东乌珠穆沁旗', 152500, '', 0, 0, 'D', '116.97850435996', '45.515743305312', 3, 'tr_0 tr_150000 tr_152500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(152526, '西乌珠穆沁旗', 152500, '', 0, 0, 'X', '117.61637700896', '44.593802912007', 3, 'tr_0 tr_150000 tr_152500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(152527, '太仆寺旗', 152500, '', 0, 0, 'T', '115.29053531645', '41.882291746043', 3, 'tr_0 tr_150000 tr_152500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(152528, '镶黄旗', 152500, '', 0, 0, 'X', '113.85450538582', '42.237661285279', 3, 'tr_0 tr_150000 tr_152500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(152529, '正镶白旗', 152500, '', 0, 0, 'Z', '115.03662171828', '42.292605429249', 3, 'tr_0 tr_150000 tr_152500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(152530, '正蓝旗', 152500, '', 0, 0, 'Z', '115.99860388383', '42.247118844188', 3, 'tr_0 tr_150000 tr_152500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(152531, '多伦县', 152500, '', 0, 0, 'D', '116.49250878204', '42.208920864211', 3, 'tr_0 tr_150000 tr_152500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(152571, '乌拉盖管委会', 152500, '', 0, 0, 'W', '114.09790153324', '42.80523252057', 3, 'tr_0 tr_150000 tr_152500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(152921, '阿拉善左旗', 152900, '', 0, 0, 'A', '105.67259866528', '38.839094137436', 3, 'tr_0 tr_150000 tr_152900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(152922, '阿拉善右旗', 152900, '', 0, 0, 'A', '101.67346389594', '39.222240969855', 3, 'tr_0 tr_150000 tr_152900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(152923, '额济纳旗', 152900, '', 0, 0, 'E', '101.06240334058', '41.960297611813', 3, 'tr_0 tr_150000 tr_152900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(152971, '内蒙古阿拉善经济开发区', 152900, '', 0, 0, 'N', '105.77197191571', '40.314622117574', 3, 'tr_0 tr_150000 tr_152900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210102, '和平区', 210100, '', 0, 0, 'H', '123.42664426615', '41.795236052902', 3, 'tr_0 tr_210000 tr_210100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210103, '沈河区', 210100, '', 0, 0, 'S', '123.46546103538', '41.802274138805', 3, 'tr_0 tr_210000 tr_210100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210104, '大东区', 210100, '', 0, 0, 'D', '123.47640473208', '41.811425174494', 3, 'tr_0 tr_210000 tr_210100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210105, '皇姑区', 210100, '', 0, 0, 'H', '123.43162078885', '41.826042120277', 3, 'tr_0 tr_210000 tr_210100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210106, '铁西区', 210100, '', 0, 0, 'T', '123.38343595078', '41.809037832217', 3, 'tr_0 tr_210000 tr_210100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210111, '苏家屯区', 210100, '', 0, 0, 'S', '123.35043463177', '41.671253644959', 3, 'tr_0 tr_210000 tr_210100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210112, '浑南区', 210100, '', 0, 0, 'H', '123.45598993089', '41.720915668889', 3, 'tr_0 tr_210000 tr_210100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210113, '沈北新区', 210100, '', 0, 0, 'S', '123.53360460492', '42.058914115763', 3, 'tr_0 tr_210000 tr_210100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210114, '于洪区', 210100, '', 0, 0, 'Y', '123.31463302499', '41.799668255615', 3, 'tr_0 tr_210000 tr_210100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210115, '辽中区', 210100, '', 0, 0, 'L', '122.77237835983', '41.523149081842', 3, 'tr_0 tr_210000 tr_210100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210123, '康平县', 210100, '', 0, 0, 'K', '123.33751124938', '42.749925495719', 3, 'tr_0 tr_210000 tr_210100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210124, '法库县', 210100, '', 0, 0, 'F', '123.41462107572', '42.509606549903', 3, 'tr_0 tr_210000 tr_210100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210181, '新民市', 210100, '', 0, 0, 'X', '122.87539513741', '42.007109320665', 3, 'tr_0 tr_210000 tr_210100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210202, '中山区', 210200, '', 0, 0, 'Z', '121.65154739367', '38.924511115496', 3, 'tr_0 tr_210000 tr_210200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210203, '西岗区', 210200, '', 0, 0, 'X', '121.61862512554', '38.920472689273', 3, 'tr_0 tr_210000 tr_210200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210204, '沙河口区', 210200, '', 0, 0, 'S', '121.59450670057', '38.913544290956', 3, 'tr_0 tr_210000 tr_210200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210211, '甘井子区', 210200, '', 0, 0, 'G', '121.5315189555', '38.958002162932', 3, 'tr_0 tr_210000 tr_210200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210212, '旅顺口区', 210200, '', 0, 0, 'L', '121.26859688019', '38.856832222859', 3, 'tr_0 tr_210000 tr_210200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210213, '金州区', 210200, '', 0, 0, 'J', '121.78943558267', '39.056432991661', 3, 'tr_0 tr_210000 tr_210200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210214, '普兰店区', 210200, '', 0, 0, 'P', '121.94645983497', '39.398089145183', 3, 'tr_0 tr_210000 tr_210200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210224, '长海县', 210200, '', 0, 0, 'Z', '122.59462651637', '39.278270217167', 3, 'tr_0 tr_210000 tr_210200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210281, '瓦房店市', 210200, '', 0, 0, 'W', '121.98563754334', '39.632740747388', 3, 'tr_0 tr_210000 tr_210200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210283, '庄河市', 210200, '', 0, 0, 'Z', '122.97449548263', '39.686956078878', 3, 'tr_0 tr_210000 tr_210200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210302, '铁东区', 210300, '', 0, 0, 'T', '122.99739966805', '41.096331870506', 3, 'tr_0 tr_210000 tr_210300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210303, '铁西区', 210300, '', 0, 0, 'T', '122.97549026615', '41.125475259583', 3, 'tr_0 tr_210000 tr_210300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210304, '立山区', 210300, '', 0, 0, 'L', '123.03548413862', '41.156116121102', 3, 'tr_0 tr_210000 tr_210300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210311, '千山区', 210300, '', 0, 0, 'Q', '122.96757421833', '41.080938608935', 3, 'tr_0 tr_210000 tr_210300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210321, '台安县', 210300, '', 0, 0, 'T', '122.44255004099', '41.418590371099', 3, 'tr_0 tr_210000 tr_210300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210323, '岫岩满族自治县', 210300, '', 0, 0, 'X', '123.28754677827', '40.295892396362', 3, 'tr_0 tr_210000 tr_210300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210381, '海城市', 210300, '', 0, 0, 'H', '122.69156940124', '40.887633947097', 3, 'tr_0 tr_210000 tr_210300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210402, '新抚区', 210400, '', 0, 0, 'X', '123.91958231814', '41.867805858593', 3, 'tr_0 tr_210000 tr_210400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210403, '东洲区', 210400, '', 0, 0, 'D', '124.04554972353', '41.859190936634', 3, 'tr_0 tr_210000 tr_210400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210404, '望花区', 210400, '', 0, 0, 'W', '123.790604152', '41.859030362749', 3, 'tr_0 tr_210000 tr_210400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210411, '顺城区', 210400, '', 0, 0, 'S', '123.95141404338', '41.889163788467', 3, 'tr_0 tr_210000 tr_210400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210421, '抚顺县', 210400, '', 0, 0, 'F', '123.92159012079', '41.887037475382', 3, 'tr_0 tr_210000 tr_210400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210422, '新宾满族自治县', 210400, '', 0, 0, 'X', '125.04635620406', '41.739968775071', 3, 'tr_0 tr_210000 tr_210400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210423, '清原满族自治县', 210400, '', 0, 0, 'Q', '124.93036025933', '42.106760992634', 3, 'tr_0 tr_210000 tr_210400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210502, '平山区', 210500, '', 0, 0, 'P', '123.77461422409', '41.301604181774', 3, 'tr_0 tr_210000 tr_210500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210503, '溪湖区', 210500, '', 0, 0, 'X', '123.77461054104', '41.334802931364', 3, 'tr_0 tr_210000 tr_210500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210504, '明山区', 210500, '', 0, 0, 'M', '123.82347449807', '41.314939368877', 3, 'tr_0 tr_210000 tr_210500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210505, '南芬区', 210500, '', 0, 0, 'N', '123.75146713686', '41.10709572322', 3, 'tr_0 tr_210000 tr_210500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210521, '本溪满族自治县', 210500, '', 0, 0, 'B', '124.12758486914', '41.307902881353', 3, 'tr_0 tr_210000 tr_210500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210522, '桓仁满族自治县', 210500, '', 0, 0, 'H', '125.36754435102', '41.27292530103', 3, 'tr_0 tr_210000 tr_210500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210602, '元宝区', 210600, '', 0, 0, 'Y', '124.40258403322', '40.142251463139', 3, 'tr_0 tr_210000 tr_210600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210603, '振兴区', 210600, '', 0, 0, 'Z', '124.36657851109', '40.110719472216', 3, 'tr_0 tr_210000 tr_210600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210604, '振安区', 210600, '', 0, 0, 'Z', '124.43438692285', '40.164697025661', 3, 'tr_0 tr_210000 tr_210600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210624, '宽甸满族自治县', 210600, '', 0, 0, 'K', '124.79042662868', '40.73755320049', 3, 'tr_0 tr_210000 tr_210600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210681, '东港市', 210600, '', 0, 0, 'D', '124.15961035888', '39.867716187286', 3, 'tr_0 tr_210000 tr_210600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210682, '凤城市', 210600, '', 0, 0, 'F', '124.07242172439', '40.459180482456', 3, 'tr_0 tr_210000 tr_210600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210702, '古塔区', 210700, '', 0, 0, 'G', '121.13458496929', '41.122900925898', 3, 'tr_0 tr_210000 tr_210700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210703, '凌河区', 210700, '', 0, 0, 'L', '121.15759003442', '41.120690614472', 3, 'tr_0 tr_210000 tr_210700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210711, '太和区', 210700, '', 0, 0, 'T', '121.1104532494', '41.115109307132', 3, 'tr_0 tr_210000 tr_210700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210726, '黑山县', 210700, '', 0, 0, 'H', '122.13055703906', '41.671592983776', 3, 'tr_0 tr_210000 tr_210700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210727, '义县', 210700, '', 0, 0, 'Y', '121.24556854895', '41.538938862271', 3, 'tr_0 tr_210000 tr_210700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210781, '凌海市', 210700, '', 0, 0, 'L', '121.36253879584', '41.166487628588', 3, 'tr_0 tr_210000 tr_210700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210782, '北镇市', 210700, '', 0, 0, 'B', '121.78344729848', '41.594428096803', 3, 'tr_0 tr_210000 tr_210700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210802, '站前区', 210800, '', 0, 0, 'Z', '122.26543743173', '40.678764125936', 3, 'tr_0 tr_210000 tr_210800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210803, '西市区', 210800, '', 0, 0, 'X', '122.21358238684', '40.672110926311', 3, 'tr_0 tr_210000 tr_210800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210804, '鲅鱼圈区', 210800, '', 0, 0, 'B', '122.12757349697', '40.232339850773', 3, 'tr_0 tr_210000 tr_210800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210811, '老边区', 210800, '', 0, 0, 'L', '122.38643918392', '40.686383619803', 3, 'tr_0 tr_210000 tr_210800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210881, '盖州市', 210800, '', 0, 0, 'G', '122.35559128288', '40.406167457268', 3, 'tr_0 tr_210000 tr_210800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210882, '大石桥市', 210800, '', 0, 0, 'D', '122.5153795314', '40.650802164815', 3, 'tr_0 tr_210000 tr_210800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210902, '海州区', 210900, '', 0, 0, 'H', '121.66943571061', '42.023734789385', 3, 'tr_0 tr_210000 tr_210900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210903, '新邱区', 210900, '', 0, 0, 'X', '121.79936338568', '42.093934514765', 3, 'tr_0 tr_210000 tr_210900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210904, '太平区', 210900, '', 0, 0, 'T', '121.68538413681', '42.016967854141', 3, 'tr_0 tr_210000 tr_210900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210905, '清河门区', 210900, '', 0, 0, 'Q', '121.42247894964', '41.789318551009', 3, 'tr_0 tr_210000 tr_210900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210911, '细河区', 210900, '', 0, 0, 'X', '121.68639230508', '42.03187124588', 3, 'tr_0 tr_210000 tr_210900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210921, '阜新蒙古族自治县', 210900, '', 0, 0, 'F', '121.76357399585', '42.071368153837', 3, 'tr_0 tr_210000 tr_210900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(210922, '彰武县', 210900, '', 0, 0, 'Z', '122.54544932021', '42.392706534364', 3, 'tr_0 tr_210000 tr_210900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211002, '白塔区', 211000, '', 0, 0, 'B', '123.18060844799', '41.275845361792', 3, 'tr_0 tr_210000 tr_211000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211003, '文圣区', 211000, '', 0, 0, 'W', '123.19160469557', '41.268438007815', 3, 'tr_0 tr_210000 tr_211000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211004, '宏伟区', 211000, '', 0, 0, 'H', '123.20358018598', '41.223368108445', 3, 'tr_0 tr_210000 tr_211000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211005, '弓长岭区', 211000, '', 0, 0, 'G', '123.42661543055', '41.157327042722', 3, 'tr_0 tr_210000 tr_211000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211011, '太子河区', 211000, '', 0, 0, 'T', '123.188604445', '41.259226178044', 3, 'tr_0 tr_210000 tr_211000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211021, '辽阳县', 211000, '', 0, 0, 'L', '123.1124212208', '41.211678771808', 3, 'tr_0 tr_210000 tr_211000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211081, '灯塔市', 211000, '', 0, 0, 'D', '123.34546215145', '41.432474125926', 3, 'tr_0 tr_210000 tr_211000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211102, '双台子区', 211100, '', 0, 0, 'S', '122.04639299922', '41.206071617512', 3, 'tr_0 tr_210000 tr_211100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211103, '兴隆台区', 211100, '', 0, 0, 'X', '121.96962911034', '41.155830887559', 3, 'tr_0 tr_210000 tr_211100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211104, '大洼区', 211100, '', 0, 0, 'D', '122.08855478867', '41.00817878896', 3, 'tr_0 tr_210000 tr_211100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211122, '盘山县', 211100, '', 0, 0, 'P', '122.00356035522', '41.248263682582', 3, 'tr_0 tr_210000 tr_211100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211202, '银州区', 211200, '', 0, 0, 'Y', '123.8483863963', '42.292573681442', 3, 'tr_0 tr_210000 tr_211200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211204, '清河区', 211200, '', 0, 0, 'Q', '124.16556298034', '42.552494793453', 3, 'tr_0 tr_210000 tr_211200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211221, '铁岭县', 211200, '', 0, 0, 'T', '123.7353723767', '42.229225608048', 3, 'tr_0 tr_210000 tr_211200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211223, '西丰县', 211200, '', 0, 0, 'X', '124.73361509331', '42.744014442436', 3, 'tr_0 tr_210000 tr_211200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211224, '昌图县', 211200, '', 0, 0, 'C', '124.11750067115', '42.792178371844', 3, 'tr_0 tr_210000 tr_211200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211281, '调兵山市', 211200, '', 0, 0, 'D', '123.57350868313', '42.473738012058', 3, 'tr_0 tr_210000 tr_211200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211282, '开原市', 211200, '', 0, 0, 'K', '124.04456886375', '42.552079074779', 3, 'tr_0 tr_210000 tr_211200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211302, '双塔区', 211300, '', 0, 0, 'S', '120.46048690274', '41.571779500856', 3, 'tr_0 tr_210000 tr_211300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211303, '龙城区', 211300, '', 0, 0, 'L', '120.4435668693', '41.59846852305', 3, 'tr_0 tr_210000 tr_211300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211321, '朝阳县', 211300, '', 0, 0, 'C', '120.25939061432', '41.241075720873', 3, 'tr_0 tr_210000 tr_211300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211322, '建平县', 211300, '', 0, 0, 'J', '119.64938035777', '41.409455511027', 3, 'tr_0 tr_210000 tr_211300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211324, '喀喇沁左翼蒙古族自治县', 211300, '', 0, 0, 'K', '119.74741405502', '41.133689119828', 3, 'tr_0 tr_210000 tr_211300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211381, '北票市', 211300, '', 0, 0, 'B', '120.77762773422', '41.80648256895', 3, 'tr_0 tr_210000 tr_211300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211382, '凌源市', 211300, '', 0, 0, 'L', '119.40735807879', '41.251651297148', 3, 'tr_0 tr_210000 tr_211300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211402, '连山区', 211400, '', 0, 0, 'L', '120.87648167423', '40.780893808442', 3, 'tr_0 tr_210000 tr_211400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211403, '龙港区', 211400, '', 0, 0, 'L', '120.90062076024', '40.741056601241', 3, 'tr_0 tr_210000 tr_211400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'); -INSERT INTO `hg_sys_provinces` (`id`, `title`, `pid`, `short_title`, `areacode`, `zipcode`, `pinyin`, `lng`, `lat`, `level`, `tree`, `sort`, `status`, `created_at`, `updated_at`) VALUES -(211404, '南票区', 211400, '', 0, 0, 'N', '120.75649312082', '41.113097595823', 3, 'tr_0 tr_210000 tr_211400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211421, '绥中县', 211400, '', 0, 0, 'S', '120.35042453538', '40.331843475397', 3, 'tr_0 tr_210000 tr_211400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211422, '建昌县', 211400, '', 0, 0, 'J', '119.84359526665', '40.830379953809', 3, 'tr_0 tr_210000 tr_211400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(211481, '兴城市', 211400, '', 0, 0, 'X', '120.76455846701', '40.616555664044', 3, 'tr_0 tr_210000 tr_211400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220102, '南关区', 220100, '', 0, 0, 'N', '125.35660981703', '43.869873025193', 3, 'tr_0 tr_220000 tr_220100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220103, '宽城区', 220100, '', 0, 0, 'K', '125.33462450832', '43.949502239804', 3, 'tr_0 tr_220000 tr_220100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220104, '朝阳区', 220100, '', 0, 0, 'C', '125.29540125585', '43.840641474962', 3, 'tr_0 tr_220000 tr_220100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220105, '二道区', 220100, '', 0, 0, 'E', '125.38046755375', '43.871276524271', 3, 'tr_0 tr_220000 tr_220100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220106, '绿园区', 220100, '', 0, 0, 'L', '125.26244260635', '43.886810403937', 3, 'tr_0 tr_220000 tr_220100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220112, '双阳区', 220100, '', 0, 0, 'S', '125.67144793217', '43.531091309119', 3, 'tr_0 tr_220000 tr_220100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220113, '九台区', 220100, '', 0, 0, 'J', '125.84556442307', '44.157791853861', 3, 'tr_0 tr_220000 tr_220100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220122, '农安县', 220100, '', 0, 0, 'N', '125.19148410666', '44.438903951261', 3, 'tr_0 tr_220000 tr_220100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220171, '长春经济技术开发区', 220100, '', 0, 0, 'Z', '125.37014719124', '43.866004586928', 3, 'tr_0 tr_220000 tr_220100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220172, '长春净月高新技术产业开发区', 220100, '', 0, 0, 'Z', '125.26127292275', '43.823034492758', 3, 'tr_0 tr_220000 tr_220100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220173, '长春高新技术产业开发区', 220100, '', 0, 0, 'Z', '125.26127292275', '43.823034492758', 3, 'tr_0 tr_220000 tr_220100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220174, '长春汽车经济技术开发区', 220100, '', 0, 0, 'Z', '125.33060207591', '43.821953501043', 3, 'tr_0 tr_220000 tr_220100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220182, '榆树市', 220100, '', 0, 0, 'Y', '126.53960936347', '44.845439727693', 3, 'tr_0 tr_220000 tr_220100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220183, '德惠市', 220100, '', 0, 0, 'D', '125.73451517728', '44.527161066608', 3, 'tr_0 tr_220000 tr_220100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220202, '昌邑区', 220200, '', 0, 0, 'C', '126.58144866124', '43.887992474736', 3, 'tr_0 tr_220000 tr_220200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220203, '龙潭区', 220200, '', 0, 0, 'L', '126.56854459242', '43.91634255363', 3, 'tr_0 tr_220000 tr_220200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220204, '船营区', 220200, '', 0, 0, 'C', '126.54764973677', '43.83992740229', 3, 'tr_0 tr_220000 tr_220200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220211, '丰满区', 220200, '', 0, 0, 'F', '126.56857046362', '43.827151576836', 3, 'tr_0 tr_220000 tr_220200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220221, '永吉县', 220200, '', 0, 0, 'Y', '126.50441572986', '43.678720676989', 3, 'tr_0 tr_220000 tr_220200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220271, '吉林经济开发区', 220200, '', 0, 0, 'J', '126.55563450495', '43.843567834579', 3, 'tr_0 tr_220000 tr_220200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220272, '吉林高新技术产业开发区', 220200, '', 0, 0, 'J', '126.55091570611', '43.822448990547', 3, 'tr_0 tr_220000 tr_220200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220273, '吉林中国新加坡食品区', 220200, '', 0, 0, 'J', '126.55563450495', '43.843567834579', 3, 'tr_0 tr_220000 tr_220200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220281, '蛟河市', 220200, '', 0, 0, 'J', '127.35148018677', '43.730003870507', 3, 'tr_0 tr_220000 tr_220200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220282, '桦甸市', 220200, '', 0, 0, 'H', '126.75248423373', '42.977982779881', 3, 'tr_0 tr_220000 tr_220200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220283, '舒兰市', 220200, '', 0, 0, 'S', '126.97137703226', '44.412270028324', 3, 'tr_0 tr_220000 tr_220200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220284, '磐石市', 220200, '', 0, 0, 'P', '126.06661629889', '42.951817500114', 3, 'tr_0 tr_220000 tr_220200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220302, '铁西区', 220300, '', 0, 0, 'T', '124.35246676034', '43.152575391803', 3, 'tr_0 tr_220000 tr_220300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220303, '铁东区', 220300, '', 0, 0, 'T', '124.4164827059', '43.167993993185', 3, 'tr_0 tr_220000 tr_220300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220322, '梨树县', 220300, '', 0, 0, 'L', '124.3424012471', '43.313345515553', 3, 'tr_0 tr_220000 tr_220300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220323, '伊通满族自治县', 220300, '', 0, 0, 'Y', '125.31148460754', '43.351103666821', 3, 'tr_0 tr_220000 tr_220300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220381, '公主岭市', 220300, '', 0, 0, 'G', '124.82944866071', '43.510832663153', 3, 'tr_0 tr_220000 tr_220300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220382, '双辽市', 220300, '', 0, 0, 'S', '123.50943776128', '43.524527382171', 3, 'tr_0 tr_220000 tr_220300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220402, '龙山区', 220400, '', 0, 0, 'L', '125.14345242969', '42.907634012133', 3, 'tr_0 tr_220000 tr_220400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220403, '西安区', 220400, '', 0, 0, 'X', '125.15537330313', '42.933308420625', 3, 'tr_0 tr_220000 tr_220400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220421, '东丰县', 220400, '', 0, 0, 'D', '125.53737790091', '42.683310778553', 3, 'tr_0 tr_220000 tr_220400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220422, '东辽县', 220400, '', 0, 0, 'D', '124.99758944369', '42.931879101776', 3, 'tr_0 tr_220000 tr_220400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220502, '东昌区', 220500, '', 0, 0, 'D', '125.93359459016', '41.70840538484', 3, 'tr_0 tr_220000 tr_220500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220503, '二道江区', 220500, '', 0, 0, 'E', '126.0495917027', '41.779966174493', 3, 'tr_0 tr_220000 tr_220500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220521, '通化县', 220500, '', 0, 0, 'T', '125.76539191393', '41.685682238068', 3, 'tr_0 tr_220000 tr_220500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220523, '辉南县', 220500, '', 0, 0, 'H', '126.05358125713', '42.690699881882', 3, 'tr_0 tr_220000 tr_220500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220524, '柳河县', 220500, '', 0, 0, 'L', '125.75142398189', '42.290871215056', 3, 'tr_0 tr_220000 tr_220500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220581, '梅河口市', 220500, '', 0, 0, 'M', '125.71760780995', '42.544883890284', 3, 'tr_0 tr_220000 tr_220500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220582, '集安市', 220500, '', 0, 0, 'J', '126.199577372', '41.131299724033', 3, 'tr_0 tr_220000 tr_220500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220602, '浑江区', 220600, '', 0, 0, 'H', '126.42361952721', '41.95042372822', 3, 'tr_0 tr_220000 tr_220600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220605, '江源区', 220600, '', 0, 0, 'J', '126.59739097896', '42.062939372081', 3, 'tr_0 tr_220000 tr_220600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220621, '抚松县', 220600, '', 0, 0, 'F', '127.45537119527', '42.227335272553', 3, 'tr_0 tr_220000 tr_220600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220622, '靖宇县', 220600, '', 0, 0, 'J', '126.81949899257', '42.394765734578', 3, 'tr_0 tr_220000 tr_220600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220623, '长白朝鲜族自治县', 220600, '', 0, 0, 'Z', '128.20758420219', '41.425895812594', 3, 'tr_0 tr_220000 tr_220600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220681, '临江市', 220600, '', 0, 0, 'L', '126.9245815135', '41.817678643992', 3, 'tr_0 tr_220000 tr_220600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220702, '宁江区', 220700, '', 0, 0, 'N', '124.82342254815', '45.178039438667', 3, 'tr_0 tr_220000 tr_220700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220721, '前郭尔罗斯蒙古族自治县', 220700, '', 0, 0, 'Q', '124.83045556165', '45.123416092926', 3, 'tr_0 tr_220000 tr_220700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220722, '长岭县', 220700, '', 0, 0, 'Z', '123.9743741034', '44.281638280052', 3, 'tr_0 tr_220000 tr_220700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220723, '乾安县', 220700, '', 0, 0, 'G', '124.0475638046', '45.008434321605', 3, 'tr_0 tr_220000 tr_220700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220771, '吉林松原经济开发区', 220700, '', 0, 0, 'J', '124.83148187569', '45.147404193414', 3, 'tr_0 tr_220000 tr_220700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220781, '扶余市', 220700, '', 0, 0, 'F', '126.0566062111', '44.994168421151', 3, 'tr_0 tr_220000 tr_220700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220802, '洮北区', 220800, '', 0, 0, 'T', '122.85750977516', '45.627524686514', 3, 'tr_0 tr_220000 tr_220800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220821, '镇赉县', 220800, '', 0, 0, 'Z', '123.20657575565', '45.853116635389', 3, 'tr_0 tr_220000 tr_220800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220822, '通榆县', 220800, '', 0, 0, 'T', '123.09452077673', '44.818963735882', 3, 'tr_0 tr_220000 tr_220800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220871, '吉林白城经济开发区', 220800, '', 0, 0, 'J', '122.81641245977', '45.642168989302', 3, 'tr_0 tr_220000 tr_220800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220881, '洮南市', 220800, '', 0, 0, 'T', '122.7944676826', '45.341131872567', 3, 'tr_0 tr_220000 tr_220800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(220882, '大安市', 220800, '', 0, 0, 'D', '124.29850428102', '45.513045149628', 3, 'tr_0 tr_220000 tr_220800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(222401, '延吉市', 222400, '', 0, 0, 'Y', '129.52052013726', '42.91271700988', 3, 'tr_0 tr_220000 tr_222400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(222402, '图们市', 222400, '', 0, 0, 'T', '129.85038151375', '42.974283499075', 3, 'tr_0 tr_220000 tr_222400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(222403, '敦化市', 222400, '', 0, 0, 'D', '128.23861239315', '43.378291274517', 3, 'tr_0 tr_220000 tr_222400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(222404, '珲春市', 222400, '', 0, 0, 'H', '130.37261321858', '42.868515115192', 3, 'tr_0 tr_220000 tr_222400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(222405, '龙井市', 222400, '', 0, 0, 'L', '129.43263477701', '42.771534868349', 3, 'tr_0 tr_220000 tr_222400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(222406, '和龙市', 222400, '', 0, 0, 'H', '129.01738712621', '42.552322568432', 3, 'tr_0 tr_220000 tr_222400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(222424, '汪清县', 222400, '', 0, 0, 'W', '129.77760879625', '43.318450833865', 3, 'tr_0 tr_220000 tr_222400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(222426, '安图县', 222400, '', 0, 0, 'A', '128.90544846814', '43.117916954912', 3, 'tr_0 tr_220000 tr_222400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230102, '道里区', 230100, '', 0, 0, 'D', '126.62343158837', '45.761844478815', 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230103, '南岗区', 230100, '', 0, 0, 'N', '126.67563849952', '45.765866163758', 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230104, '道外区', 230100, '', 0, 0, 'D', '126.65560404089', '45.797776220434', 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230108, '平房区', 230100, '', 0, 0, 'P', '126.54161509032', '45.808825827952', 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230109, '松北区', 230100, '', 0, 0, 'S', '126.51648256825', '45.808592561429', 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230110, '香坊区', 230100, '', 0, 0, 'X', '126.66962434413', '45.713619645389', 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230111, '呼兰区', 230100, '', 0, 0, 'H', '126.5943989831', '45.895209780863', 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230112, '阿城区', 230100, '', 0, 0, 'A', '126.96435649552', '45.554275304352', 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230113, '双城区', 230100, '', 0, 0, 'S', '126.31962313777', '45.388111522394', 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230123, '依兰县', 230100, '', 0, 0, 'Y', '129.57451969721', '46.331260289052', 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230124, '方正县', 230100, '', 0, 0, 'F', '128.83563368134', '45.857758440062', 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230125, '宾县', 230100, '', 0, 0, 'B', '127.4734970145', '45.752465386742', 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230126, '巴彦县', 230100, '', 0, 0, 'B', '127.4105479864', '46.091282657815', 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230127, '木兰县', 230100, '', 0, 0, 'M', '128.05035620452', '45.956871319448', 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230128, '通河县', 230100, '', 0, 0, 'T', '128.75241627584', '45.996392590921', 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230129, '延寿县', 230100, '', 0, 0, 'Y', '128.33860582402', '45.457641195714', 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230183, '尚志市', 230100, '', 0, 0, 'S', '128.01548820666', '45.215473941867', 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230184, '五常市', 230100, '', 0, 0, 'W', '127.17352882965', '44.937842855774', 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230202, '龙沙区', 230200, '', 0, 0, 'L', '123.96437622285', '47.323576977429', 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230203, '建华区', 230200, '', 0, 0, 'J', '123.96135010108', '47.360554871046', 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230204, '铁锋区', 230200, '', 0, 0, 'T', '123.984415712', '47.347018863772', 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230205, '昂昂溪区', 230200, '', 0, 0, 'A', '123.82940626913', '47.161332243626', 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230206, '富拉尔基区', 230200, '', 0, 0, 'F', '123.63650980324', '47.215504082791', 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230207, '碾子山区', 230200, '', 0, 0, 'N', '122.89436680108', '47.523236298133', 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230208, '梅里斯达斡尔族区', 230200, '', 0, 0, 'M', '123.75954091741', '47.315549574077', 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230221, '龙江县', 230200, '', 0, 0, 'L', '123.21153898342', '47.343605740151', 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230223, '依安县', 230200, '', 0, 0, 'Y', '125.3124821661', '47.899483651368', 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230224, '泰来县', 230200, '', 0, 0, 'T', '123.42362630925', '46.39782928518', 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230225, '甘南县', 230200, '', 0, 0, 'G', '123.51248588182', '47.92688406951', 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230227, '富裕县', 230200, '', 0, 0, 'F', '124.48054247906', '47.780228063275', 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230229, '克山县', 230200, '', 0, 0, 'K', '125.88137832693', '48.043172360737', 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230230, '克东县', 230200, '', 0, 0, 'K', '126.25538674804', '48.048244160483', 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230231, '拜泉县', 230200, '', 0, 0, 'B', '126.10542147027', '47.601867301959', 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230281, '讷河市', 230200, '', 0, 0, 'N', '124.8905490562', '48.490086593264', 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230302, '鸡冠区', 230300, '', 0, 0, 'J', '130.98763160852', '45.309806344312', 3, 'tr_0 tr_230000 tr_230300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230303, '恒山区', 230300, '', 0, 0, 'H', '130.91138523344', '45.216971883154', 3, 'tr_0 tr_230000 tr_230300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230304, '滴道区', 230300, '', 0, 0, 'D', '130.85058046059', '45.354433617216', 3, 'tr_0 tr_230000 tr_230300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230305, '梨树区', 230300, '', 0, 0, 'L', '130.70339606719', '45.098241780981', 3, 'tr_0 tr_230000 tr_230300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230306, '城子河区', 230300, '', 0, 0, 'C', '131.02770429868', '45.379689760283', 3, 'tr_0 tr_230000 tr_230300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230307, '麻山区', 230300, '', 0, 0, 'M', '130.48453641613', '45.217934996767', 3, 'tr_0 tr_230000 tr_230300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230321, '鸡东县', 230300, '', 0, 0, 'J', '131.13055848296', '45.266184560826', 3, 'tr_0 tr_230000 tr_230300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230381, '虎林市', 230300, '', 0, 0, 'H', '132.94346566318', '45.768946912884', 3, 'tr_0 tr_230000 tr_230300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230382, '密山市', 230300, '', 0, 0, 'M', '131.85353110655', '45.535640809748', 3, 'tr_0 tr_230000 tr_230300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230402, '向阳区', 230400, '', 0, 0, 'X', '130.30046804764', '47.348580889067', 3, 'tr_0 tr_230000 tr_230400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230403, '工农区', 230400, '', 0, 0, 'G', '130.28161728617', '47.324430299458', 3, 'tr_0 tr_230000 tr_230400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230404, '南山区', 230400, '', 0, 0, 'N', '130.29354031555', '47.321245938809', 3, 'tr_0 tr_230000 tr_230400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230405, '兴安区', 230400, '', 0, 0, 'X', '130.24554573859', '47.258716269483', 3, 'tr_0 tr_230000 tr_230400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230406, '东山区', 230400, '', 0, 0, 'D', '130.32336109407', '47.344987135573', 3, 'tr_0 tr_230000 tr_230400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230407, '兴山区', 230400, '', 0, 0, 'X', '130.31736364716', '47.396045381282', 3, 'tr_0 tr_230000 tr_230400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230421, '萝北县', 230400, '', 0, 0, 'L', '130.8354950365', '47.583422197029', 3, 'tr_0 tr_230000 tr_230400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230422, '绥滨县', 230400, '', 0, 0, 'S', '131.85948651276', '47.295265458073', 3, 'tr_0 tr_230000 tr_230400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230502, '尖山区', 230500, '', 0, 0, 'J', '131.16534177061', '46.652585923812', 3, 'tr_0 tr_230000 tr_230500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230503, '岭东区', 230500, '', 0, 0, 'L', '131.164376721', '46.464596047853', 3, 'tr_0 tr_230000 tr_230500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230505, '四方台区', 230500, '', 0, 0, 'S', '131.345657378', '46.602012285083', 3, 'tr_0 tr_230000 tr_230500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230506, '宝山区', 230500, '', 0, 0, 'B', '131.40737518857', '46.583598340241', 3, 'tr_0 tr_230000 tr_230500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230521, '集贤县', 230500, '', 0, 0, 'J', '131.14743449942', '46.734517788557', 3, 'tr_0 tr_230000 tr_230500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230522, '友谊县', 230500, '', 0, 0, 'Y', '131.8145948627', '46.772973223022', 3, 'tr_0 tr_230000 tr_230500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230523, '宝清县', 230500, '', 0, 0, 'B', '132.20359411633', '46.332651823572', 3, 'tr_0 tr_230000 tr_230500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230524, '饶河县', 230500, '', 0, 0, 'R', '134.02046893233', '46.804182744162', 3, 'tr_0 tr_230000 tr_230500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230602, '萨尔图区', 230600, '', 0, 0, 'S', '125.13351006443', '46.638936435554', 3, 'tr_0 tr_230000 tr_230600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230603, '龙凤区', 230600, '', 0, 0, 'L', '125.14047256095', '46.567678067125', 3, 'tr_0 tr_230000 tr_230600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230604, '让胡路区', 230600, '', 0, 0, 'R', '124.87759881447', '46.658078458609', 3, 'tr_0 tr_230000 tr_230600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230605, '红岗区', 230600, '', 0, 0, 'H', '124.8974774171', '46.404313108628', 3, 'tr_0 tr_230000 tr_230600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230606, '大同区', 230600, '', 0, 0, 'D', '124.81937675979', '46.045583951311', 3, 'tr_0 tr_230000 tr_230600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230621, '肇州县', 230600, '', 0, 0, 'Z', '125.2753682248', '45.705107986871', 3, 'tr_0 tr_230000 tr_230600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230622, '肇源县', 230600, '', 0, 0, 'Z', '125.08457262601', '45.524152914206', 3, 'tr_0 tr_230000 tr_230600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230623, '林甸县', 230600, '', 0, 0, 'L', '124.86965042766', '47.177234395243', 3, 'tr_0 tr_230000 tr_230600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230624, '杜尔伯特蒙古族自治县', 230600, '', 0, 0, 'D', '124.44935879141', '46.868767758452', 3, 'tr_0 tr_230000 tr_230600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230671, '大庆高新技术产业开发区', 230600, '', 0, 0, 'D', '125.15778147083', '46.581298438495', 3, 'tr_0 tr_230000 tr_230600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230702, '伊春区', 230700, '', 0, 0, 'Y', '128.91345891818', '47.733954439001', 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230703, '南岔区', 230700, '', 0, 0, 'N', '129.28957179961', '47.143749913595', 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230704, '友好区', 230700, '', 0, 0, 'Y', '128.84257946937', '47.846436100332', 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230705, '西林区', 230700, '', 0, 0, 'X', '129.31959406806', '47.486393100686', 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230706, '翠峦区', 230700, '', 0, 0, 'C', '128.67648152295', '47.732893980201', 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230707, '新青区', 230700, '', 0, 0, 'X', '129.54064675236', '48.296134660851', 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230708, '美溪区', 230700, '', 0, 0, 'M', '129.13536777746', '47.64134415168', 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230709, '金山屯区', 230700, '', 0, 0, 'J', '129.43563861113', '47.418759014597', 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230710, '五营区', 230700, '', 0, 0, 'W', '129.25134952898', '48.11427128362', 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230711, '乌马河区', 230700, '', 0, 0, 'W', '128.80554637557', '47.73361851021', 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230712, '汤旺河区', 230700, '', 0, 0, 'T', '129.57747422403', '48.460614389845', 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230713, '带岭区', 230700, '', 0, 0, 'D', '129.02742523145', '47.034571951137', 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230714, '乌伊岭区', 230700, '', 0, 0, 'W', '129.44457666112', '48.596169129772', 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230715, '红星区', 230700, '', 0, 0, 'H', '129.39750706935', '48.245480405275', 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230716, '上甘岭区', 230700, '', 0, 0, 'S', '129.03043733966', '47.980913793769', 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230722, '嘉荫县', 230700, '', 0, 0, 'J', '130.41055547772', '48.894983469564', 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230781, '铁力市', 230700, '', 0, 0, 'T', '128.03836490393', '46.992948620259', 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230803, '向阳区', 230800, '', 0, 0, 'X', '130.37261186145', '46.813511816781', 3, 'tr_0 tr_230000 tr_230800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230804, '前进区', 230800, '', 0, 0, 'Q', '130.3816482759', '46.819626508482', 3, 'tr_0 tr_230000 tr_230800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230805, '东风区', 230800, '', 0, 0, 'D', '130.41056077772', '46.828385151991', 3, 'tr_0 tr_230000 tr_230800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230811, '郊区', 230800, '', 0, 0, 'J', '130.32735909257', '46.805689990858', 3, 'tr_0 tr_230000 tr_230800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230822, '桦南县', 230800, '', 0, 0, 'H', '130.56038502153', '46.24507747688', 3, 'tr_0 tr_230000 tr_230800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230826, '桦川县', 230800, '', 0, 0, 'H', '130.72554944886', '47.028816852926', 3, 'tr_0 tr_230000 tr_230800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230828, '汤原县', 230800, '', 0, 0, 'T', '129.91164504155', '46.735326720461', 3, 'tr_0 tr_230000 tr_230800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230881, '同江市', 230800, '', 0, 0, 'T', '132.51750949205', '47.647980676666', 3, 'tr_0 tr_230000 tr_230800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230882, '富锦市', 230800, '', 0, 0, 'F', '132.04453879528', '47.255932571848', 3, 'tr_0 tr_230000 tr_230800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230883, '抚远市', 230800, '', 0, 0, 'F', '134.31448962575', '48.370944696273', 3, 'tr_0 tr_230000 tr_230800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230902, '新兴区', 230900, '', 0, 0, 'X', '130.93837086995', '45.822310328543', 3, 'tr_0 tr_230000 tr_230900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230903, '桃山区', 230900, '', 0, 0, 'T', '131.02644424554', '45.771799915696', 3, 'tr_0 tr_230000 tr_230900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230904, '茄子河区', 230900, '', 0, 0, 'J', '131.0744805937', '45.791238180152', 3, 'tr_0 tr_230000 tr_230900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(230921, '勃利县', 230900, '', 0, 0, 'B', '130.59853255314', '45.760964313167', 3, 'tr_0 tr_230000 tr_230900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231002, '东安区', 231000, '', 0, 0, 'D', '129.63347765344', '44.587460377571', 3, 'tr_0 tr_230000 tr_231000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231003, '阳明区', 231000, '', 0, 0, 'Y', '129.64252736281', '44.601775026515', 3, 'tr_0 tr_230000 tr_231000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231004, '爱民区', 231000, '', 0, 0, 'A', '129.59836369953', '44.602350339442', 3, 'tr_0 tr_230000 tr_231000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231005, '西安区', 231000, '', 0, 0, 'X', '129.62241286515', '44.583861081842', 3, 'tr_0 tr_230000 tr_231000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231025, '林口县', 231000, '', 0, 0, 'L', '130.28757880086', '45.28412885062', 3, 'tr_0 tr_230000 tr_231000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231071, '牡丹江经济技术开发区', 231000, '', 0, 0, 'M', '129.63953977835', '44.556245708986', 3, 'tr_0 tr_230000 tr_231000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231081, '绥芬河市', 231000, '', 0, 0, 'S', '131.15739222567', '44.418154372388', 3, 'tr_0 tr_230000 tr_231000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231083, '海林市', 231000, '', 0, 0, 'H', '129.38742683358', '44.599871973195', 3, 'tr_0 tr_230000 tr_231000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231084, '宁安市', 231000, '', 0, 0, 'N', '129.48936798014', '44.3469835775', 3, 'tr_0 tr_230000 tr_231000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231085, '穆棱市', 231000, '', 0, 0, 'M', '130.53055850352', '44.924784589588', 3, 'tr_0 tr_230000 tr_231000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231086, '东宁市', 231000, '', 0, 0, 'D', '131.13154357445', '44.096101486248', 3, 'tr_0 tr_230000 tr_231000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231102, '爱辉区', 231100, '', 0, 0, 'A', '127.50663227086', '50.257709616452', 3, 'tr_0 tr_230000 tr_231100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231121, '嫩江县', 231100, '', 0, 0, 'N', '125.22763469543', '49.191320184756', 3, 'tr_0 tr_230000 tr_231100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231123, '逊克县', 231100, '', 0, 0, 'X', '128.48558459529', '49.5694914357', 3, 'tr_0 tr_230000 tr_231100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231124, '孙吴县', 231100, '', 0, 0, 'S', '127.34238770837', '49.431450606859', 3, 'tr_0 tr_230000 tr_231100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231181, '北安市', 231100, '', 0, 0, 'B', '126.49737974226', '48.247419532219', 3, 'tr_0 tr_230000 tr_231100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231182, '五大连池市', 231100, '', 0, 0, 'W', '126.21155518831', '48.522609551763', 3, 'tr_0 tr_230000 tr_231100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231202, '北林区', 231200, '', 0, 0, 'B', '126.99144894055', '46.643492672111', 3, 'tr_0 tr_230000 tr_231200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231221, '望奎县', 231200, '', 0, 0, 'W', '126.49238489413', '46.839167601749', 3, 'tr_0 tr_230000 tr_231200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231222, '兰西县', 231200, '', 0, 0, 'L', '126.29461952255', '46.258095172245', 3, 'tr_0 tr_230000 tr_231200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231223, '青冈县', 231200, '', 0, 0, 'Q', '126.10048887472', '46.71068498305', 3, 'tr_0 tr_230000 tr_231200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231224, '庆安县', 231200, '', 0, 0, 'Q', '127.5146121882', '46.885744465245', 3, 'tr_0 tr_230000 tr_231200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231225, '明水县', 231200, '', 0, 0, 'M', '125.91248269419', '47.179483374941', 3, 'tr_0 tr_230000 tr_231200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231226, '绥棱县', 231200, '', 0, 0, 'S', '127.12051514063', '47.242515793854', 3, 'tr_0 tr_230000 tr_231200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231281, '安达市', 231200, '', 0, 0, 'A', '125.34862234422', '46.425719232144', 3, 'tr_0 tr_230000 tr_231200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231282, '肇东市', 231200, '', 0, 0, 'Z', '125.96853740717', '46.056938289303', 3, 'tr_0 tr_230000 tr_231200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(231283, '海伦市', 231200, '', 0, 0, 'H', '126.93650857556', '47.456903841096', 3, 'tr_0 tr_230000 tr_231200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(232701, '漠河市', 232700, '', 0, 0, 'M', '122.5454208342', '52.978303678377', 3, 'tr_0 tr_230000 tr_232700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(232721, '呼玛县', 232700, '', 0, 0, 'H', '126.65964991907', '51.73094674724', 3, 'tr_0 tr_230000 tr_232700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(232722, '塔河县', 232700, '', 0, 0, 'T', '124.71651251449', '52.340305081113', 3, 'tr_0 tr_230000 tr_232700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(232761, '加格达奇区', 232700, '', 0, 0, 'J', '124.15292785448', '50.420025955028', 3, 'tr_0 tr_230000 tr_232700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(232762, '松岭区', 232700, '', 0, 0, 'S', '124.15292785448', '50.420025955028', 3, 'tr_0 tr_230000 tr_232700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(232763, '新林区', 232700, '', 0, 0, 'X', '124.53914092375', '51.801225110533', 3, 'tr_0 tr_230000 tr_232700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(232764, '呼中区', 232700, '', 0, 0, 'H', '123.58143136869', '52.037468814622', 3, 'tr_0 tr_230000 tr_232700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(310101, '黄浦区', 310100, '', 0, 0, 'H', '121.49158559252', '31.237247152064', 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(310104, '徐汇区', 310100, '', 0, 0, 'X', '121.44339635276', '31.194556772823', 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(310105, '长宁区', 310100, '', 0, 0, 'Z', '121.43045437545', '31.226847968225', 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(310106, '静安区', 310100, '', 0, 0, 'J', '121.45343177277', '31.233844930402', 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(310107, '普陀区', 310100, '', 0, 0, 'P', '112.85530302042', '35.520558754673', 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(310109, '虹口区', 310100, '', 0, 0, 'H', '121.51158645453', '31.269746698931', 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(310110, '杨浦区', 310100, '', 0, 0, 'Y', '121.53251993733', '31.265524144657', 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(310112, '闵行区', 310100, '', 0, 0, 'M', '121.38861193361', '31.118842580087', 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(310113, '宝山区', 310100, '', 0, 0, 'B', '131.40737518857', '46.583598340241', 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(310114, '嘉定区', 310100, '', 0, 0, 'J', '121.27259505835', '31.380155339677', 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(310115, '浦东新区', 310100, '', 0, 0, 'P', '121.55045460683', '31.227348292436', 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(310116, '金山区', 310100, '', 0, 0, 'J', '121.34848004512', '30.74785237657', 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(310117, '松江区', 310100, '', 0, 0, 'S', '121.23447959624', '31.037135176464', 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(310118, '青浦区', 310100, '', 0, 0, 'Q', '121.13055310467', '31.155454317981', 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(310120, '奉贤区', 310100, '', 0, 0, 'F', '121.48050373643', '30.923720110285', 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(310151, '崇明区', 310100, '', 0, 0, 'C', '121.40355686272', '31.628569984404', 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320102, '玄武区', 320100, '', 0, 0, 'X', '118.80441263575', '32.054756682949', 3, 'tr_0 tr_320000 tr_320100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320104, '秦淮区', 320100, '', 0, 0, 'Q', '118.80040736097', '32.045138606405', 3, 'tr_0 tr_320000 tr_320100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320105, '建邺区', 320100, '', 0, 0, 'J', '118.73856944695', '32.009369695446', 3, 'tr_0 tr_320000 tr_320100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320106, '鼓楼区', 320100, '', 0, 0, 'G', '118.77651899204', '32.072405160557', 3, 'tr_0 tr_320000 tr_320100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320111, '浦口区', 320100, '', 0, 0, 'P', '118.63460405875', '32.064679277923', 3, 'tr_0 tr_320000 tr_320100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320113, '栖霞区', 320100, '', 0, 0, 'Q', '118.91542298491', '32.10260020783', 3, 'tr_0 tr_320000 tr_320100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320114, '雨花台区', 320100, '', 0, 0, 'Y', '118.78544536406', '31.997858805466', 3, 'tr_0 tr_320000 tr_320100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320115, '江宁区', 320100, '', 0, 0, 'J', '118.84656705909', '31.958526869177', 3, 'tr_0 tr_320000 tr_320100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320116, '六合区', 320100, '', 0, 0, 'L', '118.82747132971', '32.32866604102', 3, 'tr_0 tr_320000 tr_320100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320117, '溧水区', 320100, '', 0, 0, 'L', '119.03440390903', '31.657283696314', 3, 'tr_0 tr_320000 tr_320100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320118, '高淳区', 320100, '', 0, 0, 'G', '118.89849765147', '31.333639123905', 3, 'tr_0 tr_320000 tr_320100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320205, '锡山区', 320200, '', 0, 0, 'X', '120.36342571103', '31.594761632814', 3, 'tr_0 tr_320000 tr_320200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320206, '惠山区', 320200, '', 0, 0, 'H', '120.30459559335', '31.686741337275', 3, 'tr_0 tr_320000 tr_320200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320211, '滨湖区', 320200, '', 0, 0, 'B', '120.29154752616', '31.534639699974', 3, 'tr_0 tr_320000 tr_320200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320213, '梁溪区', 320200, '', 0, 0, 'L', '120.30959951436', '31.571645024135', 3, 'tr_0 tr_320000 tr_320200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320214, '新吴区', 320200, '', 0, 0, 'X', '120.37039647195', '31.554850239842', 3, 'tr_0 tr_320000 tr_320200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320281, '江阴市', 320200, '', 0, 0, 'J', '120.29156800752', '31.926044909769', 3, 'tr_0 tr_320000 tr_320200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320282, '宜兴市', 320200, '', 0, 0, 'Y', '119.83160603216', '31.342956624268', 3, 'tr_0 tr_320000 tr_320200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320302, '鼓楼区', 320300, '', 0, 0, 'G', '117.19257874733', '34.293760084221', 3, 'tr_0 tr_320000 tr_320300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320303, '云龙区', 320300, '', 0, 0, 'Y', '117.2584239124', '34.259086691031', 3, 'tr_0 tr_320000 tr_320300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320305, '贾汪区', 320300, '', 0, 0, 'J', '117.46943039703', '34.441620400617', 3, 'tr_0 tr_320000 tr_320300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320311, '泉山区', 320300, '', 0, 0, 'Q', '117.20059046468', '34.249942871606', 3, 'tr_0 tr_320000 tr_320300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320312, '铜山区', 320300, '', 0, 0, 'T', '117.17556960199', '34.186100449885', 3, 'tr_0 tr_320000 tr_320300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320321, '丰县', 320300, '', 0, 0, 'F', '116.60258246804', '34.699769765634', 3, 'tr_0 tr_320000 tr_320300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320322, '沛县', 320300, '', 0, 0, 'P', '116.9425856239', '34.765151955415', 3, 'tr_0 tr_320000 tr_320300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320324, '睢宁县', 320300, '', 0, 0, 'S', '117.94743277245', '33.918789417818', 3, 'tr_0 tr_320000 tr_320300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320371, '徐州经济技术开发区', 320300, '', 0, 0, 'X', '117.28574962221', '34.272904039312', 3, 'tr_0 tr_320000 tr_320300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320381, '新沂市', 320300, '', 0, 0, 'X', '118.36153652102', '34.375610954637', 3, 'tr_0 tr_320000 tr_320300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320382, '邳州市', 320300, '', 0, 0, 'P', '117.96341066307', '34.339753160807', 3, 'tr_0 tr_320000 tr_320300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320402, '天宁区', 320400, '', 0, 0, 'T', '119.98046316025', '31.785570271253', 3, 'tr_0 tr_320000 tr_320400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320404, '钟楼区', 320400, '', 0, 0, 'Z', '119.908462716', '31.807646657754', 3, 'tr_0 tr_320000 tr_320400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320411, '新北区', 320400, '', 0, 0, 'X', '119.97751429276', '31.836323947624', 3, 'tr_0 tr_320000 tr_320400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320412, '武进区', 320400, '', 0, 0, 'W', '119.94861167229', '31.706446611742', 3, 'tr_0 tr_320000 tr_320400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320413, '金坛区', 320400, '', 0, 0, 'J', '119.60457090266', '31.72889303001', 3, 'tr_0 tr_320000 tr_320400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320481, '溧阳市', 320400, '', 0, 0, 'L', '119.49150603896', '31.422102292159', 3, 'tr_0 tr_320000 tr_320400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320505, '虎丘区', 320500, '', 0, 0, 'H', '120.57847178571', '31.301932876554', 3, 'tr_0 tr_320000 tr_320500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320506, '吴中区', 320500, '', 0, 0, 'W', '120.63850751921', '31.268261445846', 3, 'tr_0 tr_320000 tr_320500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320507, '相城区', 320500, '', 0, 0, 'X', '120.64856593584', '31.374689921493', 3, 'tr_0 tr_320000 tr_320500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320508, '姑苏区', 320500, '', 0, 0, 'G', '120.6234549731', '31.341831300993', 3, 'tr_0 tr_320000 tr_320500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320509, '吴江区', 320500, '', 0, 0, 'W', '120.65156717454', '31.144644190473', 3, 'tr_0 tr_320000 tr_320500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320571, '苏州工业园区', 320500, '', 0, 0, 'S', '120.82848521083', '31.309610913062', 3, 'tr_0 tr_320000 tr_320500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320581, '常熟市', 320500, '', 0, 0, 'C', '120.75949588665', '31.659538276741', 3, 'tr_0 tr_320000 tr_320500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320582, '张家港市', 320500, '', 0, 0, 'Z', '120.56155363871', '31.88114053634', 3, 'tr_0 tr_320000 tr_320500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320583, '昆山市', 320500, '', 0, 0, 'K', '120.98745249795', '31.390863425082', 3, 'tr_0 tr_320000 tr_320500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320585, '太仓市', 320500, '', 0, 0, 'T', '121.1355952935', '31.464599352978', 3, 'tr_0 tr_320000 tr_320500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320602, '崇川区', 320600, '', 0, 0, 'C', '120.86342022229', '32.015923029631', 3, 'tr_0 tr_320000 tr_320600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320611, '港闸区', 320600, '', 0, 0, 'G', '120.82445235808', '32.037345124875', 3, 'tr_0 tr_320000 tr_320600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320612, '通州区', 320600, '', 0, 0, 'T', '121.08142549498', '32.070355739676', 3, 'tr_0 tr_320000 tr_320600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320623, '如东县', 320600, '', 0, 0, 'R', '121.19243791024', '32.335872886155', 3, 'tr_0 tr_320000 tr_320600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320671, '南通经济技术开发区', 320600, '', 0, 0, 'N', '120.90159173866', '31.986549431201', 3, 'tr_0 tr_320000 tr_320600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320681, '启东市', 320600, '', 0, 0, 'Q', '121.66347374677', '31.814232849643', 3, 'tr_0 tr_320000 tr_320600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320682, '如皋市', 320600, '', 0, 0, 'R', '120.57946558109', '32.377851486109', 3, 'tr_0 tr_320000 tr_320600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320684, '海门市', 320600, '', 0, 0, 'H', '121.18843649817', '31.87361172603', 3, 'tr_0 tr_320000 tr_320600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320685, '海安市', 320600, '', 0, 0, 'H', '120.47443309578', '32.53919574424', 3, 'tr_0 tr_320000 tr_320600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320703, '连云区', 320700, '', 0, 0, 'L', '119.46701669742', '34.638921829102', 3, 'tr_0 tr_320000 tr_320700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320706, '海州区', 320700, '', 0, 0, 'H', '119.16940808819', '34.577456118597', 3, 'tr_0 tr_320000 tr_320700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320707, '赣榆区', 320700, '', 0, 0, 'G', '119.17943461497', '34.847682460846', 3, 'tr_0 tr_320000 tr_320700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320722, '东海县', 320700, '', 0, 0, 'D', '118.75956509248', '34.547918627364', 3, 'tr_0 tr_320000 tr_320700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320723, '灌云县', 320700, '', 0, 0, 'G', '119.24653354504', '34.288616060258', 3, 'tr_0 tr_320000 tr_320700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320724, '灌南县', 320700, '', 0, 0, 'G', '119.3225381861', '34.09259130777', 3, 'tr_0 tr_320000 tr_320700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320771, '连云港经济技术开发区', 320700, '', 0, 0, 'L', '119.35457059279', '34.70740063931', 3, 'tr_0 tr_320000 tr_320700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320772, '连云港高新技术产业开发区', 320700, '', 0, 0, 'L', '119.22862133317', '34.602249525267', 3, 'tr_0 tr_320000 tr_320700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320803, '淮安区', 320800, '', 0, 0, 'H', '119.14746320322', '33.508999838208', 3, 'tr_0 tr_320000 tr_320800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320804, '淮阴区', 320800, '', 0, 0, 'H', '119.04142174116', '33.638150424768', 3, 'tr_0 tr_320000 tr_320800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320812, '清江浦区', 320800, '', 0, 0, 'Q', '119.03241362334', '33.558562240066', 3, 'tr_0 tr_320000 tr_320800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320813, '洪泽区', 320800, '', 0, 0, 'H', '118.8795836493', '33.29962468147', 3, 'tr_0 tr_320000 tr_320800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320826, '涟水县', 320800, '', 0, 0, 'L', '119.26644843921', '33.7870787079', 3, 'tr_0 tr_320000 tr_320800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320830, '盱眙县', 320800, '', 0, 0, 'X', '118.55144127024', '33.01825474166', 3, 'tr_0 tr_320000 tr_320800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320831, '金湖县', 320800, '', 0, 0, 'J', '119.02646908663', '33.031283826757', 3, 'tr_0 tr_320000 tr_320800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320871, '淮安经济技术开发区', 320800, '', 0, 0, 'H', '119.13289044209', '33.610236869931', 3, 'tr_0 tr_320000 tr_320800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320902, '亭湖区', 320900, '', 0, 0, 'T', '120.20457816804', '33.395893486907', 3, 'tr_0 tr_320000 tr_320900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320903, '盐都区', 320900, '', 0, 0, 'Y', '120.16050325734', '33.344020315599', 3, 'tr_0 tr_320000 tr_320900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320904, '大丰区', 320900, '', 0, 0, 'D', '120.50743881649', '33.20475984971', 3, 'tr_0 tr_320000 tr_320900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320921, '响水县', 320900, '', 0, 0, 'X', '119.58460112202', '34.20474300276', 3, 'tr_0 tr_320000 tr_320900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320922, '滨海县', 320900, '', 0, 0, 'B', '119.82762105909', '33.995646547467', 3, 'tr_0 tr_320000 tr_320900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320923, '阜宁县', 320900, '', 0, 0, 'F', '119.80958074885', '33.765078727087', 3, 'tr_0 tr_320000 tr_320900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320924, '射阳县', 320900, '', 0, 0, 'S', '120.26444564892', '33.78101359213', 3, 'tr_0 tr_320000 tr_320900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320925, '建湖县', 320900, '', 0, 0, 'J', '119.80553127745', '33.469832978385', 3, 'tr_0 tr_320000 tr_320900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320971, '盐城经济技术开发区', 320900, '', 0, 0, 'Y', '120.16754426576', '33.355100917626', 3, 'tr_0 tr_320000 tr_320900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(320981, '东台市', 320900, '', 0, 0, 'D', '120.32653706475', '32.872716312488', 3, 'tr_0 tr_320000 tr_320900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321002, '广陵区', 321000, '', 0, 0, 'G', '119.43850484608', '32.40066115972', 3, 'tr_0 tr_320000 tr_321000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321003, '邗江区', 321000, '', 0, 0, 'H', '119.40438513671', '32.38275135526', 3, 'tr_0 tr_320000 tr_321000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321012, '江都区', 321000, '', 0, 0, 'J', '119.57660296908', '32.440294506243', 3, 'tr_0 tr_320000 tr_321000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321023, '宝应县', 321000, '', 0, 0, 'B', '119.36555570138', '33.247205461148', 3, 'tr_0 tr_320000 tr_321000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321071, '扬州经济技术开发区', 321000, '', 0, 0, 'Y', '119.41941890823', '32.40067693609', 3, 'tr_0 tr_320000 tr_321000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321081, '仪征市', 321000, '', 0, 0, 'Y', '119.19146705795', '32.278090483161', 3, 'tr_0 tr_320000 tr_321000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321084, '高邮市', 321000, '', 0, 0, 'G', '119.46561561654', '32.787147020528', 3, 'tr_0 tr_320000 tr_321000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'); -INSERT INTO `hg_sys_provinces` (`id`, `title`, `pid`, `short_title`, `areacode`, `zipcode`, `pinyin`, `lng`, `lat`, `level`, `tree`, `sort`, `status`, `created_at`, `updated_at`) VALUES -(321102, '京口区', 321100, '', 0, 0, 'J', '119.47560369584', '32.203785483528', 3, 'tr_0 tr_320000 tr_321100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321111, '润州区', 321100, '', 0, 0, 'R', '119.41844047387', '32.201494843152', 3, 'tr_0 tr_320000 tr_321100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321112, '丹徒区', 321100, '', 0, 0, 'D', '119.44050079109', '32.13792039565', 3, 'tr_0 tr_320000 tr_321100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321171, '镇江新区', 321100, '', 0, 0, 'Z', '119.67618104484', '32.168646770866', 3, 'tr_0 tr_320000 tr_321100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321181, '丹阳市', 321100, '', 0, 0, 'D', '119.61250060471', '32.01592027417', 3, 'tr_0 tr_320000 tr_321100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321182, '扬中市', 321100, '', 0, 0, 'Y', '119.80351961209', '32.242967194122', 3, 'tr_0 tr_320000 tr_321100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321183, '句容市', 321100, '', 0, 0, 'J', '119.1754332029', '31.950923490521', 3, 'tr_0 tr_320000 tr_321100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321202, '海陵区', 321200, '', 0, 0, 'H', '119.9255249512', '32.496731549227', 3, 'tr_0 tr_320000 tr_321200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321203, '高港区', 321200, '', 0, 0, 'G', '119.88842098109', '32.32486247444', 3, 'tr_0 tr_320000 tr_321200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321204, '姜堰区', 321200, '', 0, 0, 'J', '120.13339832587', '32.515233674759', 3, 'tr_0 tr_320000 tr_321200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321271, '泰州医药高新技术产业开发区', 321200, '', 0, 0, 'T', '119.91593203649', '32.502484457877', 3, 'tr_0 tr_320000 tr_321200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321281, '兴化市', 321200, '', 0, 0, 'X', '119.85751406137', '32.917824213889', 3, 'tr_0 tr_320000 tr_321200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321282, '靖江市', 321200, '', 0, 0, 'J', '120.28353203592', '31.988170075211', 3, 'tr_0 tr_320000 tr_321200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321283, '泰兴市', 321200, '', 0, 0, 'T', '120.05859939046', '32.177474023712', 3, 'tr_0 tr_320000 tr_321200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321302, '宿城区', 321300, '', 0, 0, 'S', '118.24956705107', '33.968677630731', 3, 'tr_0 tr_320000 tr_321300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321311, '宿豫区', 321300, '', 0, 0, 'S', '118.33640094471', '33.954804396327', 3, 'tr_0 tr_320000 tr_321300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321322, '沭阳县', 321300, '', 0, 0, 'S', '118.81041906571', '34.117454209479', 3, 'tr_0 tr_320000 tr_321300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321323, '泗阳县', 321300, '', 0, 0, 'S', '118.70946596538', '33.728328313047', 3, 'tr_0 tr_320000 tr_321300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321324, '泗洪县', 321300, '', 0, 0, 'S', '118.22241594669', '33.465732594595', 3, 'tr_0 tr_320000 tr_321300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(321371, '宿迁经济技术开发区', 321300, '', 0, 0, 'S', '118.27387299732', '33.898354594037', 3, 'tr_0 tr_320000 tr_321300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330102, '上城区', 330100, '', 0, 0, 'S', '120.17557880007', '30.248398420426', 3, 'tr_0 tr_330000 tr_330100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330103, '下城区', 330100, '', 0, 0, 'X', '120.18760693119', '30.286744052562', 3, 'tr_0 tr_330000 tr_330100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330104, '江干区', 330100, '', 0, 0, 'J', '120.21153877811', '30.263310567012', 3, 'tr_0 tr_330000 tr_330100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330105, '拱墅区', 330100, '', 0, 0, 'G', '120.14844700926', '30.32464256663', 3, 'tr_0 tr_330000 tr_330100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330106, '西湖区', 330100, '', 0, 0, 'X', '120.13643801205', '30.265916325589', 3, 'tr_0 tr_330000 tr_330100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330108, '滨江区', 330100, '', 0, 0, 'B', '120.21847118139', '30.214332950144', 3, 'tr_0 tr_330000 tr_330100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330109, '萧山区', 330100, '', 0, 0, 'X', '120.27047058397', '30.187511222214', 3, 'tr_0 tr_330000 tr_330100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330110, '余杭区', 330100, '', 0, 0, 'Y', '120.30659216718', '30.424739268745', 3, 'tr_0 tr_330000 tr_330100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330111, '富阳区', 330100, '', 0, 0, 'F', '119.96655568418', '30.054722967304', 3, 'tr_0 tr_330000 tr_330100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330112, '临安区', 330100, '', 0, 0, 'L', '119.73151737122', '30.239805598054', 3, 'tr_0 tr_330000 tr_330100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330122, '桐庐县', 330100, '', 0, 0, 'T', '119.69759877583', '29.798584790143', 3, 'tr_0 tr_330000 tr_330100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330127, '淳安县', 330100, '', 0, 0, 'C', '119.04839230601', '29.614950366034', 3, 'tr_0 tr_330000 tr_330100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330182, '建德市', 330100, '', 0, 0, 'J', '119.28739807501', '29.481154026968', 3, 'tr_0 tr_330000 tr_330100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330203, '海曙区', 330200, '', 0, 0, 'H', '121.55740307254', '29.865720708366', 3, 'tr_0 tr_330000 tr_330200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330205, '江北区', 330200, '', 0, 0, 'J', '121.56042128922', '29.892948379476', 3, 'tr_0 tr_330000 tr_330200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330206, '北仑区', 330200, '', 0, 0, 'B', '121.85057621461', '29.904659359939', 3, 'tr_0 tr_330000 tr_330200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330211, '镇海区', 330200, '', 0, 0, 'Z', '121.72251899132', '29.954884963349', 3, 'tr_0 tr_330000 tr_330200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330212, '鄞州区', 330200, '', 0, 0, 'Y', '121.55542706991', '29.824206349996', 3, 'tr_0 tr_330000 tr_330200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330213, '奉化区', 330200, '', 0, 0, 'F', '121.41352776719', '29.66114641278', 3, 'tr_0 tr_330000 tr_330200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330225, '象山县', 330200, '', 0, 0, 'X', '121.87556392982', '29.482270653805', 3, 'tr_0 tr_330000 tr_330200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330226, '宁海县', 330200, '', 0, 0, 'N', '121.43643177294', '29.294317441106', 3, 'tr_0 tr_330000 tr_330200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330281, '余姚市', 330200, '', 0, 0, 'Y', '121.16058507482', '30.042734639571', 3, 'tr_0 tr_330000 tr_330200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330282, '慈溪市', 330200, '', 0, 0, 'C', '121.27259613632', '30.17525661072', 3, 'tr_0 tr_330000 tr_330200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330302, '鹿城区', 330300, '', 0, 0, 'L', '120.66158649793', '28.020351607763', 3, 'tr_0 tr_330000 tr_330300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330303, '龙湾区', 330300, '', 0, 0, 'L', '120.81946755397', '27.938652244916', 3, 'tr_0 tr_330000 tr_330300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330304, '瓯海区', 330300, '', 0, 0, 'O', '120.62144724335', '27.972857351643', 3, 'tr_0 tr_330000 tr_330300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330305, '洞头区', 330300, '', 0, 0, 'D', '121.16354856759', '27.841870324587', 3, 'tr_0 tr_330000 tr_330300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330324, '永嘉县', 330300, '', 0, 0, 'Y', '120.68852407508', '28.156450332206', 3, 'tr_0 tr_330000 tr_330300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330326, '平阳县', 330300, '', 0, 0, 'P', '120.57251537444', '27.667724401093', 3, 'tr_0 tr_330000 tr_330300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330327, '苍南县', 330300, '', 0, 0, 'C', '120.43359512229', '27.523066788447', 3, 'tr_0 tr_330000 tr_330300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330328, '文成县', 330300, '', 0, 0, 'W', '120.09748845652', '27.79321715229', 3, 'tr_0 tr_330000 tr_330300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330329, '泰顺县', 330300, '', 0, 0, 'T', '119.72353725759', '27.562170559597', 3, 'tr_0 tr_330000 tr_330300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330371, '温州经济技术开发区', 330300, '', 0, 0, 'W', '120.82366240355', '27.878919129203', 3, 'tr_0 tr_330000 tr_330300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330381, '瑞安市', 330300, '', 0, 0, 'R', '120.66158218607', '27.783950736232', 3, 'tr_0 tr_330000 tr_330300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330382, '乐清市', 330300, '', 0, 0, 'L', '120.99250185617', '28.118179995228', 3, 'tr_0 tr_330000 tr_330300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330402, '南湖区', 330400, '', 0, 0, 'N', '120.78961005175', '30.751546813315', 3, 'tr_0 tr_330000 tr_330400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330411, '秀洲区', 330400, '', 0, 0, 'X', '120.71543705563', '30.770207214174', 3, 'tr_0 tr_330000 tr_330400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330421, '嘉善县', 330400, '', 0, 0, 'J', '120.93251060584', '30.83712219382', 3, 'tr_0 tr_330000 tr_330400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330424, '海盐县', 330400, '', 0, 0, 'H', '120.95244526273', '30.531872894538', 3, 'tr_0 tr_330000 tr_330400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330481, '海宁市', 330400, '', 0, 0, 'H', '120.68656506738', '30.517923769776', 3, 'tr_0 tr_330000 tr_330400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330482, '平湖市', 330400, '', 0, 0, 'P', '121.02257525525', '30.682240998058', 3, 'tr_0 tr_330000 tr_330400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330483, '桐乡市', 330400, '', 0, 0, 'T', '120.57154315531', '30.63631118771', 3, 'tr_0 tr_330000 tr_330400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330502, '吴兴区', 330500, '', 0, 0, 'W', '120.1916046602', '30.862955454986', 3, 'tr_0 tr_330000 tr_330500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330503, '南浔区', 330500, '', 0, 0, 'N', '120.42460139422', '30.855242982243', 3, 'tr_0 tr_330000 tr_330500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330521, '德清县', 330500, '', 0, 0, 'D', '119.98346466845', '30.548628239139', 3, 'tr_0 tr_330000 tr_330500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330522, '长兴县', 330500, '', 0, 0, 'Z', '119.91749832197', '31.032579326835', 3, 'tr_0 tr_330000 tr_330500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330523, '安吉县', 330500, '', 0, 0, 'A', '119.68656337876', '30.644424794114', 3, 'tr_0 tr_330000 tr_330500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330602, '越城区', 330600, '', 0, 0, 'Y', '120.58843667181', '29.995309962798', 3, 'tr_0 tr_330000 tr_330600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330603, '柯桥区', 330600, '', 0, 0, 'K', '120.45151103408', '30.07900360495', 3, 'tr_0 tr_330000 tr_330600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330604, '上虞区', 330600, '', 0, 0, 'S', '120.87450989364', '30.038242967062', 3, 'tr_0 tr_330000 tr_330600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330624, '新昌县', 330600, '', 0, 0, 'X', '120.91056965639', '29.50554107531', 3, 'tr_0 tr_330000 tr_330600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330681, '诸暨市', 330600, '', 0, 0, 'Z', '120.25340833197', '29.714934649195', 3, 'tr_0 tr_330000 tr_330600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330683, '嵊州市', 330600, '', 0, 0, 'S', '120.83743725739', '29.567326991294', 3, 'tr_0 tr_330000 tr_330600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330702, '婺城区', 330700, '', 0, 0, 'W', '119.57859260936', '29.091775438186', 3, 'tr_0 tr_330000 tr_330700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330703, '金东区', 330700, '', 0, 0, 'J', '119.69958241405', '29.104765016118', 3, 'tr_0 tr_330000 tr_330700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330723, '武义县', 330700, '', 0, 0, 'W', '119.82256555867', '28.89824378665', 3, 'tr_0 tr_330000 tr_330700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330726, '浦江县', 330700, '', 0, 0, 'P', '119.8984360827', '29.458692851855', 3, 'tr_0 tr_330000 tr_330700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330727, '磐安县', 330700, '', 0, 0, 'P', '120.45651305177', '29.060103175107', 3, 'tr_0 tr_330000 tr_330700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330781, '兰溪市', 330700, '', 0, 0, 'L', '119.46659870554', '29.214044345079', 3, 'tr_0 tr_330000 tr_330700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330782, '义乌市', 330700, '', 0, 0, 'Y', '120.08158099306', '29.31114987541', 3, 'tr_0 tr_330000 tr_330700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330783, '东阳市', 330700, '', 0, 0, 'D', '120.24842192791', '29.295861065151', 3, 'tr_0 tr_330000 tr_330700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330784, '永康市', 330700, '', 0, 0, 'Y', '120.05455071078', '28.894203967255', 3, 'tr_0 tr_330000 tr_330700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330802, '柯城区', 330800, '', 0, 0, 'K', '118.87758391504', '28.974203651128', 3, 'tr_0 tr_330000 tr_330800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330803, '衢江区', 330800, '', 0, 0, 'Q', '118.9655390736', '28.986237907969', 3, 'tr_0 tr_330000 tr_330800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330822, '常山县', 330800, '', 0, 0, 'C', '118.51755663118', '28.906997949113', 3, 'tr_0 tr_330000 tr_330800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330824, '开化县', 330800, '', 0, 0, 'K', '118.42145932131', '29.143187521187', 3, 'tr_0 tr_330000 tr_330800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330825, '龙游县', 330800, '', 0, 0, 'L', '119.17841825566', '29.034486553295', 3, 'tr_0 tr_330000 tr_330800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330881, '江山市', 330800, '', 0, 0, 'J', '118.63358329793', '28.742868480118', 3, 'tr_0 tr_330000 tr_330800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330902, '定海区', 330900, '', 0, 0, 'D', '122.11360080392', '30.025462378363', 3, 'tr_0 tr_330000 tr_330900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330903, '普陀区', 330900, '', 0, 0, 'P', '122.33154416586', '29.976835696536', 3, 'tr_0 tr_330000 tr_330900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330921, '岱山县', 330900, '', 0, 0, 'D', '122.23260481449', '30.269655894035', 3, 'tr_0 tr_330000 tr_330900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(330922, '嵊泗县', 330900, '', 0, 0, 'S', '122.45758776506', '30.731273949024', 3, 'tr_0 tr_330000 tr_330900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(331002, '椒江区', 331000, '', 0, 0, 'J', '121.44940797569', '28.679258224903', 3, 'tr_0 tr_330000 tr_331000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(331003, '黄岩区', 331000, '', 0, 0, 'H', '121.26856605116', '28.655333607551', 3, 'tr_0 tr_330000 tr_331000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(331004, '路桥区', 331000, '', 0, 0, 'L', '121.37157806769', '28.586946666726', 3, 'tr_0 tr_330000 tr_331000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(331022, '三门县', 331000, '', 0, 0, 'S', '121.40255379759', '29.110355206289', 3, 'tr_0 tr_330000 tr_331000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(331023, '天台县', 331000, '', 0, 0, 'T', '121.01355337629', '29.149514378149', 3, 'tr_0 tr_330000 tr_331000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(331024, '仙居县', 331000, '', 0, 0, 'X', '120.73543520575', '28.853225693258', 3, 'tr_0 tr_330000 tr_331000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(331081, '温岭市', 331000, '', 0, 0, 'W', '121.39258889458', '28.37765548985', 3, 'tr_0 tr_330000 tr_331000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(331082, '临海市', 331000, '', 0, 0, 'L', '121.15158529413', '28.864049329083', 3, 'tr_0 tr_330000 tr_331000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(331083, '玉环市', 331000, '', 0, 0, 'Y', '121.23851297084', '28.141862986829', 3, 'tr_0 tr_330000 tr_331000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(331102, '莲都区', 331100, '', 0, 0, 'L', '119.91951913335', '28.451745135046', 3, 'tr_0 tr_330000 tr_331100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(331121, '青田县', 331100, '', 0, 0, 'Q', '120.296573349', '28.14548755633', 3, 'tr_0 tr_330000 tr_331100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(331122, '缙云县', 331100, '', 0, 0, 'J', '120.09747830566', '28.665214747164', 3, 'tr_0 tr_330000 tr_331100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(331123, '遂昌县', 331100, '', 0, 0, 'S', '119.28243538622', '28.59845467671', 3, 'tr_0 tr_330000 tr_331100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(331124, '松阳县', 331100, '', 0, 0, 'S', '119.48854377016', '28.455056404273', 3, 'tr_0 tr_330000 tr_331100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(331125, '云和县', 331100, '', 0, 0, 'Y', '119.57959736407', '28.121469507454', 3, 'tr_0 tr_330000 tr_331100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(331126, '庆元县', 331100, '', 0, 0, 'Q', '119.06948685498', '27.625431778354', 3, 'tr_0 tr_330000 tr_331100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(331127, '景宁畲族自治县', 331100, '', 0, 0, 'J', '119.64243033109', '27.979553966951', 3, 'tr_0 tr_330000 tr_331100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(331181, '龙泉市', 331100, '', 0, 0, 'L', '119.14844476521', '28.080508725251', 3, 'tr_0 tr_330000 tr_331100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340102, '瑶海区', 340100, '', 0, 0, 'Y', '117.31558704454', '31.863786941657', 3, 'tr_0 tr_340000 tr_340100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340103, '庐阳区', 340100, '', 0, 0, 'L', '117.27145913382', '31.884886695554', 3, 'tr_0 tr_340000 tr_340100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340104, '蜀山区', 340100, '', 0, 0, 'S', '117.2664607823', '31.857378217104', 3, 'tr_0 tr_340000 tr_340100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340111, '包河区', 340100, '', 0, 0, 'B', '117.31657625857', '31.799293467782', 3, 'tr_0 tr_340000 tr_340100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340121, '长丰县', 340100, '', 0, 0, 'Z', '117.17356009256', '32.483722623763', 3, 'tr_0 tr_340000 tr_340100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340122, '肥东县', 340100, '', 0, 0, 'F', '117.47540062528', '31.893890354487', 3, 'tr_0 tr_340000 tr_340100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340123, '肥西县', 340100, '', 0, 0, 'F', '117.16455781372', '31.712962132717', 3, 'tr_0 tr_340000 tr_340100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340124, '庐江县', 340100, '', 0, 0, 'L', '117.29357730192', '31.261327637478', 3, 'tr_0 tr_340000 tr_340100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340171, '合肥高新技术产业开发区', 340100, '', 0, 0, 'H', '117.1837943471', '31.838528178293', 3, 'tr_0 tr_340000 tr_340100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340172, '合肥经济技术开发区', 340100, '', 0, 0, 'H', '117.21475703093', '31.784661076762', 3, 'tr_0 tr_340000 tr_340100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340173, '合肥新站高新技术产业开发区', 340100, '', 0, 0, 'H', '117.38386824707', '31.946175260915', 3, 'tr_0 tr_340000 tr_340100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340181, '巢湖市', 340100, '', 0, 0, 'C', '117.89557620045', '31.629002428816', 3, 'tr_0 tr_340000 tr_340100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340202, '镜湖区', 340200, '', 0, 0, 'J', '118.39260630352', '31.345866595569', 3, 'tr_0 tr_340000 tr_340200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340203, '弋江区', 340200, '', 0, 0, 'Y', '118.37957970583', '31.317566272497', 3, 'tr_0 tr_340000 tr_340200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340207, '鸠江区', 340200, '', 0, 0, 'J', '118.39758848554', '31.375804519517', 3, 'tr_0 tr_340000 tr_340200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340208, '三山区', 340200, '', 0, 0, 'S', '118.27460210698', '31.225280124269', 3, 'tr_0 tr_340000 tr_340200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340221, '芜湖县', 340200, '', 0, 0, 'W', '118.58244251203', '31.141239223464', 3, 'tr_0 tr_340000 tr_340200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340222, '繁昌县', 340200, '', 0, 0, 'F', '118.20542431831', '31.107958593586', 3, 'tr_0 tr_340000 tr_340200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340223, '南陵县', 340200, '', 0, 0, 'N', '118.34041816695', '30.920260298683', 3, 'tr_0 tr_340000 tr_340200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340225, '无为县', 340200, '', 0, 0, 'W', '117.90857854389', '31.308844155979', 3, 'tr_0 tr_340000 tr_340200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340271, '芜湖经济技术开发区', 340200, '', 0, 0, 'W', '118.39582758127', '31.478017093937', 3, 'tr_0 tr_340000 tr_340200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340272, '安徽芜湖长江大桥经济开发区', 340200, '', 0, 0, 'A', '118.37946121933', '31.391647770998', 3, 'tr_0 tr_340000 tr_340200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340302, '龙子湖区', 340300, '', 0, 0, 'L', '117.39951276393', '32.948644262929', 3, 'tr_0 tr_340000 tr_340300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340303, '蚌山区', 340300, '', 0, 0, 'B', '117.37944120527', '32.923378770395', 3, 'tr_0 tr_340000 tr_340300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340304, '禹会区', 340300, '', 0, 0, 'Y', '117.3484523601', '32.935309988858', 3, 'tr_0 tr_340000 tr_340300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340311, '淮上区', 340300, '', 0, 0, 'H', '117.36638271774', '32.970547011885', 3, 'tr_0 tr_340000 tr_340300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340321, '怀远县', 340300, '', 0, 0, 'H', '117.21150631391', '32.976003726624', 3, 'tr_0 tr_340000 tr_340300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340322, '五河县', 340300, '', 0, 0, 'W', '117.88756088987', '33.132709462866', 3, 'tr_0 tr_340000 tr_340300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340323, '固镇县', 340300, '', 0, 0, 'G', '117.32354764831', '33.323274297744', 3, 'tr_0 tr_340000 tr_340300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340371, '蚌埠市高新技术开发区', 340300, '', 0, 0, 'B', '117.27641494698', '32.834931868561', 3, 'tr_0 tr_340000 tr_340300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340372, '蚌埠市经济开发区', 340300, '', 0, 0, 'B', '117.20923836199', '32.962369404949', 3, 'tr_0 tr_340000 tr_340300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340402, '大通区', 340400, '', 0, 0, 'D', '117.05958317929', '32.637269959538', 3, 'tr_0 tr_340000 tr_340400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340403, '田家庵区', 340400, '', 0, 0, 'T', '117.02344533676', '32.653323007096', 3, 'tr_0 tr_340000 tr_340400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340404, '谢家集区', 340400, '', 0, 0, 'X', '116.86543887721', '32.606254588196', 3, 'tr_0 tr_340000 tr_340400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340405, '八公山区', 340400, '', 0, 0, 'B', '116.84056434849', '32.637137318437', 3, 'tr_0 tr_340000 tr_340400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340406, '潘集区', 340400, '', 0, 0, 'P', '116.84158096084', '32.777955491108', 3, 'tr_0 tr_340000 tr_340400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340421, '凤台县', 340400, '', 0, 0, 'F', '116.71757320891', '32.715103905085', 3, 'tr_0 tr_340000 tr_340400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340422, '寿县', 340400, '', 0, 0, 'S', '116.8055627726', '32.561546151201', 3, 'tr_0 tr_340000 tr_340400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340503, '花山区', 340500, '', 0, 0, 'H', '118.49960562875', '31.725472572001', 3, 'tr_0 tr_340000 tr_340500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340504, '雨山区', 340500, '', 0, 0, 'Y', '118.50559705701', '31.687745482904', 3, 'tr_0 tr_340000 tr_340500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340506, '博望区', 340500, '', 0, 0, 'B', '118.85155804451', '31.556645467065', 3, 'tr_0 tr_340000 tr_340500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340521, '当涂县', 340500, '', 0, 0, 'D', '118.50460469891', '31.576649154711', 3, 'tr_0 tr_340000 tr_340500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340522, '含山县', 340500, '', 0, 0, 'H', '118.10746203634', '31.740862208736', 3, 'tr_0 tr_340000 tr_340500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340523, '和县', 340500, '', 0, 0, 'H', '118.35951254887', '31.748243815854', 3, 'tr_0 tr_340000 tr_340500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340602, '杜集区', 340600, '', 0, 0, 'D', '116.83461226601', '33.997285436391', 3, 'tr_0 tr_340000 tr_340600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340603, '相山区', 340600, '', 0, 0, 'X', '116.80052112276', '33.96582716177', 3, 'tr_0 tr_340000 tr_340600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340604, '烈山区', 340600, '', 0, 0, 'L', '116.9081817805', '33.84405351094', 3, 'tr_0 tr_340000 tr_340600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340621, '濉溪县', 340600, '', 0, 0, 'S', '116.77238942808', '33.921629194823', 3, 'tr_0 tr_340000 tr_340600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340705, '铜官区', 340700, '', 0, 0, 'T', '117.82145710265', '30.940386340633', 3, 'tr_0 tr_340000 tr_340700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340706, '义安区', 340700, '', 0, 0, 'Y', '117.79856800876', '30.958512099098', 3, 'tr_0 tr_340000 tr_340700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340711, '郊区', 340700, '', 0, 0, 'J', '117.80755007573', '30.897741483658', 3, 'tr_0 tr_340000 tr_340700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340722, '枞阳县', 340700, '', 0, 0, 'C', '117.22643695997', '30.705671267725', 3, 'tr_0 tr_340000 tr_340700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340802, '迎江区', 340800, '', 0, 0, 'Y', '117.09751448877', '30.517523291408', 3, 'tr_0 tr_340000 tr_340800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340803, '大观区', 340800, '', 0, 0, 'D', '117.04053820417', '30.518231924651', 3, 'tr_0 tr_340000 tr_340800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340811, '宜秀区', 340800, '', 0, 0, 'Y', '116.99344112425', '30.619675877796', 3, 'tr_0 tr_340000 tr_340800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340822, '怀宁县', 340800, '', 0, 0, 'H', '116.83659258051', '30.739399674607', 3, 'tr_0 tr_340000 tr_340800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340825, '太湖县', 340800, '', 0, 0, 'T', '116.31547630162', '30.460113290448', 3, 'tr_0 tr_340000 tr_340800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340826, '宿松县', 340800, '', 0, 0, 'S', '116.13552369949', '30.159786861375', 3, 'tr_0 tr_340000 tr_340800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340827, '望江县', 340800, '', 0, 0, 'W', '116.7005902941', '30.129968329229', 3, 'tr_0 tr_340000 tr_340800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340828, '岳西县', 340800, '', 0, 0, 'Y', '116.36655539021', '30.855227714002', 3, 'tr_0 tr_340000 tr_340800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340871, '安徽安庆经济开发区', 340800, '', 0, 0, 'A', '117.06360390492', '30.530956568043', 3, 'tr_0 tr_340000 tr_340800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340881, '桐城市', 340800, '', 0, 0, 'T', '116.98046635878', '31.041969037674', 3, 'tr_0 tr_340000 tr_340800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(340882, '潜山市', 340800, '', 0, 0, 'Q', '116.58761103892', '30.636755682399', 3, 'tr_0 tr_340000 tr_340800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341002, '屯溪区', 341000, '', 0, 0, 'T', '118.32141818077', '29.702143908546', 3, 'tr_0 tr_340000 tr_341000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341003, '黄山区', 341000, '', 0, 0, 'H', '118.14760982484', '30.278650980188', 3, 'tr_0 tr_340000 tr_341000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341004, '徽州区', 341000, '', 0, 0, 'H', '118.34343582847', '29.834221385317', 3, 'tr_0 tr_340000 tr_341000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341021, '歙县', 341000, '', 0, 0, 'S', '118.42146012979', '29.866287675757', 3, 'tr_0 tr_340000 tr_341000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341022, '休宁县', 341000, '', 0, 0, 'X', '118.20543014116', '29.795459004963', 3, 'tr_0 tr_340000 tr_341000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341023, '黟县', 341000, '', 0, 0, 'Y', '117.94447724144', '29.931047330704', 3, 'tr_0 tr_340000 tr_341000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341024, '祁门县', 341000, '', 0, 0, 'Q', '117.72339257754', '29.86034394808', 3, 'tr_0 tr_340000 tr_341000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341102, '琅琊区', 341100, '', 0, 0, 'L', '118.31244134015', '32.300867492599', 3, 'tr_0 tr_340000 tr_341100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341103, '南谯区', 341100, '', 0, 0, 'N', '118.42348205204', '32.206131899264', 3, 'tr_0 tr_340000 tr_341100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341122, '来安县', 341100, '', 0, 0, 'L', '118.4424124932', '32.458449762427', 3, 'tr_0 tr_340000 tr_341100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341124, '全椒县', 341100, '', 0, 0, 'Q', '118.2805842827', '32.091939797603', 3, 'tr_0 tr_340000 tr_341100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341125, '定远县', 341100, '', 0, 0, 'D', '117.70447068625', '32.537046613487', 3, 'tr_0 tr_340000 tr_341100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341126, '凤阳县', 341100, '', 0, 0, 'F', '117.53858536874', '32.880976725258', 3, 'tr_0 tr_340000 tr_341100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341171, '苏滁现代产业园', 341100, '', 0, 0, 'S', '118.42315086566', '32.314484916002', 3, 'tr_0 tr_340000 tr_341100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341172, '滁州经济技术开发区', 341100, '', 0, 0, 'C', '118.37688910117', '32.299081918592', 3, 'tr_0 tr_340000 tr_341100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341181, '天长市', 341100, '', 0, 0, 'T', '119.01138527949', '32.67341003277', 3, 'tr_0 tr_340000 tr_341100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341182, '明光市', 341100, '', 0, 0, 'M', '117.99550981385', '32.783022823418', 3, 'tr_0 tr_340000 tr_341100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341202, '颍州区', 341200, '', 0, 0, 'Y', '115.81341119616', '32.88962541655', 3, 'tr_0 tr_340000 tr_341200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341203, '颍东区', 341200, '', 0, 0, 'Y', '115.86361668264', '32.917362240172', 3, 'tr_0 tr_340000 tr_341200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341204, '颍泉区', 341200, '', 0, 0, 'Y', '115.81542555644', '32.931313576025', 3, 'tr_0 tr_340000 tr_341200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341221, '临泉县', 341200, '', 0, 0, 'L', '115.26761550051', '33.045959528363', 3, 'tr_0 tr_340000 tr_341200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341222, '太和县', 341200, '', 0, 0, 'T', '115.6286154697', '33.165959850096', 3, 'tr_0 tr_340000 tr_341200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341225, '阜南县', 341200, '', 0, 0, 'F', '115.60254592516', '32.664097385125', 3, 'tr_0 tr_340000 tr_341200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341226, '颍上县', 341200, '', 0, 0, 'Y', '116.26347689904', '32.659028468804', 3, 'tr_0 tr_340000 tr_341200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341271, '阜阳合肥现代产业园区', 341200, '', 0, 0, 'F', '115.88456164757', '32.809466011566', 3, 'tr_0 tr_340000 tr_341200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341272, '阜阳经济技术开发区', 341200, '', 0, 0, 'F', '115.86257063732', '32.867285704339', 3, 'tr_0 tr_340000 tr_341200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341282, '界首市', 341200, '', 0, 0, 'J', '115.38060984722', '33.262775236231', 3, 'tr_0 tr_340000 tr_341200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341302, '埇桥区', 341300, '', 0, 0, 'Y', '116.98348044326', '33.646130650445', 3, 'tr_0 tr_340000 tr_341300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341321, '砀山县', 341300, '', 0, 0, 'D', '116.37252400151', '34.448428171397', 3, 'tr_0 tr_340000 tr_341300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341322, '萧县', 341300, '', 0, 0, 'X', '116.95358492572', '34.194269344319', 3, 'tr_0 tr_340000 tr_341300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341323, '灵璧县', 341300, '', 0, 0, 'L', '117.56455699799', '33.547892231948', 3, 'tr_0 tr_340000 tr_341300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341324, '泗县', 341300, '', 0, 0, 'S', '117.91658999175', '33.488694630134', 3, 'tr_0 tr_340000 tr_341300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341371, '宿州马鞍山现代产业园区', 341300, '', 0, 0, 'S', '116.97054394561', '33.652095326452', 3, 'tr_0 tr_340000 tr_341300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341372, '宿州经济技术开发区', 341300, '', 0, 0, 'S', '116.97054394561', '33.652095326452', 3, 'tr_0 tr_340000 tr_341300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341702, '贵池区', 341700, '', 0, 0, 'G', '117.57449037049', '30.693857943819', 3, 'tr_0 tr_340000 tr_341700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341721, '东至县', 341700, '', 0, 0, 'D', '117.03448128944', '30.116534528265', 3, 'tr_0 tr_340000 tr_341700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341722, '石台县', 341700, '', 0, 0, 'S', '117.49239440959', '30.216530337189', 3, 'tr_0 tr_340000 tr_341700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341723, '青阳县', 341700, '', 0, 0, 'Q', '117.85343129914', '30.645634346235', 3, 'tr_0 tr_340000 tr_341700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341802, '宣州区', 341800, '', 0, 0, 'X', '118.76254944305', '30.952158157984', 3, 'tr_0 tr_340000 tr_341800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341821, '郎溪县', 341800, '', 0, 0, 'L', '119.18646592169', '31.132681870443', 3, 'tr_0 tr_340000 tr_341800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341822, '广德县', 341800, '', 0, 0, 'G', '119.42747581035', '30.883667102643', 3, 'tr_0 tr_340000 tr_341800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341823, '泾县', 341800, '', 0, 0, 'J', '118.42643469242', '30.694672488542', 3, 'tr_0 tr_340000 tr_341800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341824, '绩溪县', 341800, '', 0, 0, 'J', '118.58544384057', '30.073292199533', 3, 'tr_0 tr_340000 tr_341800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341825, '旌德县', 341800, '', 0, 0, 'J', '118.54646735263', '30.292481093722', 3, 'tr_0 tr_340000 tr_341800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341871, '宣城市经济开发区', 341800, '', 0, 0, 'X', '118.76553424277', '30.946601545293', 3, 'tr_0 tr_340000 tr_341800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341881, '宁国市', 341800, '', 0, 0, 'N', '118.98960981494', '30.639352229689', 3, 'tr_0 tr_340000 tr_341800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350102, '鼓楼区', 350100, '', 0, 0, 'G', '119.31049162322', '26.088114037555', 3, 'tr_0 tr_350000 tr_350100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350103, '台江区', 350100, '', 0, 0, 'T', '119.32052821102', '26.058528150645', 3, 'tr_0 tr_350000 tr_350100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350104, '仓山区', 350100, '', 0, 0, 'C', '119.28043216493', '26.052841691927', 3, 'tr_0 tr_350000 tr_350100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350105, '马尾区', 350100, '', 0, 0, 'M', '119.44551915828', '26.004533771063', 3, 'tr_0 tr_350000 tr_350100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350111, '晋安区', 350100, '', 0, 0, 'J', '119.33457941597', '26.087213904434', 3, 'tr_0 tr_350000 tr_350100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350112, '长乐区', 350100, '', 0, 0, 'Z', '119.52943832001', '25.969257448077', 3, 'tr_0 tr_350000 tr_350100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350121, '闽侯县', 350100, '', 0, 0, 'M', '119.13848201812', '26.156035214577', 3, 'tr_0 tr_350000 tr_350100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350122, '连江县', 350100, '', 0, 0, 'L', '119.54647881621', '26.203583291029', 3, 'tr_0 tr_350000 tr_350100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350123, '罗源县', 350100, '', 0, 0, 'L', '119.55648045992', '26.495495660324', 3, 'tr_0 tr_350000 tr_350100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350124, '闽清县', 350100, '', 0, 0, 'M', '118.86957650956', '26.226847540202', 3, 'tr_0 tr_350000 tr_350100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350125, '永泰县', 350100, '', 0, 0, 'Y', '118.93843072857', '25.872787263196', 3, 'tr_0 tr_350000 tr_350100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350128, '平潭县', 350100, '', 0, 0, 'P', '119.79650131414', '25.504700273945', 3, 'tr_0 tr_350000 tr_350100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350181, '福清市', 350100, '', 0, 0, 'F', '119.39046524749', '25.726343299035', 3, 'tr_0 tr_350000 tr_350100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350203, '思明区', 350200, '', 0, 0, 'S', '118.08840797224', '24.451948395671', 3, 'tr_0 tr_350000 tr_350200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350205, '海沧区', 350200, '', 0, 0, 'H', '118.03956171185', '24.490325818598', 3, 'tr_0 tr_350000 tr_350200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350206, '湖里区', 350200, '', 0, 0, 'H', '118.15358812172', '24.517573138112', 3, 'tr_0 tr_350000 tr_350200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350211, '集美区', 350200, '', 0, 0, 'J', '118.10343491664', '24.58201906225', 3, 'tr_0 tr_350000 tr_350200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350212, '同安区', 350200, '', 0, 0, 'T', '118.15856347661', '24.729113975347', 3, 'tr_0 tr_350000 tr_350200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350213, '翔安区', 350200, '', 0, 0, 'X', '118.25457589661', '24.624216383593', 3, 'tr_0 tr_350000 tr_350200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350302, '城厢区', 350300, '', 0, 0, 'C', '119.00153633131', '25.424343792482', 3, 'tr_0 tr_350000 tr_350300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350303, '涵江区', 350300, '', 0, 0, 'H', '119.12256736822', '25.464464388124', 3, 'tr_0 tr_350000 tr_350300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350304, '荔城区', 350300, '', 0, 0, 'L', '119.01948169064', '25.439754478806', 3, 'tr_0 tr_350000 tr_350300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350305, '秀屿区', 350300, '', 0, 0, 'X', '119.11157130031', '25.323654397561', 3, 'tr_0 tr_350000 tr_350300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350322, '仙游县', 350300, '', 0, 0, 'X', '118.69845425065', '25.368291498104', 3, 'tr_0 tr_350000 tr_350300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350402, '梅列区', 350400, '', 0, 0, 'M', '117.65255022877', '26.277335878355', 3, 'tr_0 tr_350000 tr_350400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350403, '三元区', 350400, '', 0, 0, 'S', '117.61441509378', '26.240219374574', 3, 'tr_0 tr_350000 tr_350400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350421, '明溪县', 350400, '', 0, 0, 'M', '117.20851763568', '26.361853685277', 3, 'tr_0 tr_350000 tr_350400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350423, '清流县', 350400, '', 0, 0, 'Q', '116.8235931858', '26.18335735321', 3, 'tr_0 tr_350000 tr_350400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350424, '宁化县', 350400, '', 0, 0, 'N', '116.660425512', '26.26795649054', 3, 'tr_0 tr_350000 tr_350400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350425, '大田县', 350400, '', 0, 0, 'D', '117.85343999668', '25.698932641879', 3, 'tr_0 tr_350000 tr_350400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350426, '尤溪县', 350400, '', 0, 0, 'Y', '118.19743971365', '26.17621803946', 3, 'tr_0 tr_350000 tr_350400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350427, '沙县', 350400, '', 0, 0, 'S', '117.79856107581', '26.402813444346', 3, 'tr_0 tr_350000 tr_350400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350428, '将乐县', 350400, '', 0, 0, 'J', '117.47740904084', '26.735209519833', 3, 'tr_0 tr_350000 tr_350400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350429, '泰宁县', 350400, '', 0, 0, 'T', '117.1825958624', '26.905660032285', 3, 'tr_0 tr_350000 tr_350400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350430, '建宁县', 350400, '', 0, 0, 'J', '116.85250622659', '26.836824655349', 3, 'tr_0 tr_350000 tr_350400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350481, '永安市', 350400, '', 0, 0, 'Y', '117.37144258732', '25.948143989824', 3, 'tr_0 tr_350000 tr_350400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350502, '鲤城区', 350500, '', 0, 0, 'L', '118.59348105353', '24.913354167054', 3, 'tr_0 tr_350000 tr_350500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350503, '丰泽区', 350500, '', 0, 0, 'F', '118.61958015232', '24.894969993262', 3, 'tr_0 tr_350000 tr_350500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350504, '洛江区', 350500, '', 0, 0, 'L', '118.67741629493', '24.94621365376', 3, 'tr_0 tr_350000 tr_350500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350505, '泉港区', 350500, '', 0, 0, 'Q', '118.92243298541', '25.139650393954', 3, 'tr_0 tr_350000 tr_350500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350521, '惠安县', 350500, '', 0, 0, 'H', '118.8034155003', '25.036949815039', 3, 'tr_0 tr_350000 tr_350500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350524, '安溪县', 350500, '', 0, 0, 'A', '118.19242537229', '25.061759553382', 3, 'tr_0 tr_350000 tr_350500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350525, '永春县', 350500, '', 0, 0, 'Y', '118.30048613527', '25.327974202083', 3, 'tr_0 tr_350000 tr_350500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350526, '德化县', 350500, '', 0, 0, 'D', '118.24755006956', '25.497308594179', 3, 'tr_0 tr_350000 tr_350500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350581, '石狮市', 350500, '', 0, 0, 'S', '118.65451902647', '24.737665160883', 3, 'tr_0 tr_350000 tr_350500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350582, '晋江市', 350500, '', 0, 0, 'J', '118.55843052', '24.787824575145', 3, 'tr_0 tr_350000 tr_350500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350583, '南安市', 350500, '', 0, 0, 'N', '118.39257197205', '24.966362350468', 3, 'tr_0 tr_350000 tr_350500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350602, '芗城区', 350600, '', 0, 0, 'X', '117.6605895241', '24.516268416111', 3, 'tr_0 tr_350000 tr_350600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350603, '龙文区', 350600, '', 0, 0, 'L', '117.7164546946', '24.509509680945', 3, 'tr_0 tr_350000 tr_350600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350622, '云霄县', 350600, '', 0, 0, 'Y', '117.34644831448', '23.964072828248', 3, 'tr_0 tr_350000 tr_350600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350623, '漳浦县', 350600, '', 0, 0, 'Z', '117.62044335257', '24.123461614812', 3, 'tr_0 tr_350000 tr_350600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350624, '诏安县', 350600, '', 0, 0, 'Z', '117.18255858272', '23.717053963784', 3, 'tr_0 tr_350000 tr_350600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350625, '长泰县', 350600, '', 0, 0, 'Z', '117.76555257036', '24.631243628383', 3, 'tr_0 tr_350000 tr_350600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350626, '东山县', 350600, '', 0, 0, 'D', '117.43656030457', '23.706894688691', 3, 'tr_0 tr_350000 tr_350600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350627, '南靖县', 350600, '', 0, 0, 'N', '117.36344641066', '24.52085173207', 3, 'tr_0 tr_350000 tr_350600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350628, '平和县', 350600, '', 0, 0, 'P', '117.32255159131', '24.368365040126', 3, 'tr_0 tr_350000 tr_350600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350629, '华安县', 350600, '', 0, 0, 'H', '117.54058560971', '25.010067731399', 3, 'tr_0 tr_350000 tr_350600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350681, '龙海市', 350600, '', 0, 0, 'L', '117.82445086941', '24.452939738547', 3, 'tr_0 tr_350000 tr_350600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350702, '延平区', 350700, '', 0, 0, 'Y', '118.18845055007', '26.643807791057', 3, 'tr_0 tr_350000 tr_350700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350703, '建阳区', 350700, '', 0, 0, 'J', '118.12752522464', '27.337502466188', 3, 'tr_0 tr_350000 tr_350700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350721, '顺昌县', 350700, '', 0, 0, 'S', '117.81651928091', '26.799104367214', 3, 'tr_0 tr_350000 tr_350700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350722, '浦城县', 350700, '', 0, 0, 'P', '118.54743912328', '27.923390046145', 3, 'tr_0 tr_350000 tr_350700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350723, '光泽县', 350700, '', 0, 0, 'G', '117.34048158963', '27.547272859205', 3, 'tr_0 tr_350000 tr_350700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350724, '松溪县', 350700, '', 0, 0, 'S', '118.79145438278', '27.532554907167', 3, 'tr_0 tr_350000 tr_350700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350725, '政和县', 350700, '', 0, 0, 'Z', '118.86358723724', '27.371749198234', 3, 'tr_0 tr_350000 tr_350700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350781, '邵武市', 350700, '', 0, 0, 'S', '117.4994195021', '27.346469966261', 3, 'tr_0 tr_350000 tr_350700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350782, '武夷山市', 350700, '', 0, 0, 'W', '118.04157715009', '27.762553910259', 3, 'tr_0 tr_350000 tr_350700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350783, '建瓯市', 350700, '', 0, 0, 'J', '118.31146073369', '27.028955089429', 3, 'tr_0 tr_350000 tr_350700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350802, '新罗区', 350800, '', 0, 0, 'X', '117.04354293052', '25.104077629635', 3, 'tr_0 tr_350000 tr_350800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350803, '永定区', 350800, '', 0, 0, 'Y', '116.89244722515', '24.869137411287', 3, 'tr_0 tr_350000 tr_350800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350821, '长汀县', 350800, '', 0, 0, 'Z', '116.36356796988', '25.83918461828', 3, 'tr_0 tr_350000 tr_350800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350823, '上杭县', 350800, '', 0, 0, 'S', '116.42644288776', '25.055570401525', 3, 'tr_0 tr_350000 tr_350800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350824, '武平县', 350800, '', 0, 0, 'W', '116.10758916743', '25.100855173343', 3, 'tr_0 tr_350000 tr_350800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350825, '连城县', 350800, '', 0, 0, 'L', '116.76044617118', '25.716337381852', 3, 'tr_0 tr_350000 tr_350800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350881, '漳平市', 350800, '', 0, 0, 'Z', '117.42655632526', '25.295743499252', 3, 'tr_0 tr_350000 tr_350800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341502, '金安区', 341500, '', 0, 0, 'J', '116.54543837997', '31.756287719901', 3, 'tr_0 tr_340000 tr_341500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341503, '裕安区', 341500, '', 0, 0, 'Y', '116.48654978261', '31.74362587083', 3, 'tr_0 tr_340000 tr_341500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341504, '叶集区', 341500, '', 0, 0, 'Y', '115.94747592742', '31.83526314225', 3, 'tr_0 tr_340000 tr_341500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341522, '霍邱县', 341500, '', 0, 0, 'H', '116.28439133776', '32.359343590922', 3, 'tr_0 tr_340000 tr_341500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341523, '舒城县', 341500, '', 0, 0, 'S', '116.95560171142', '31.467692010556', 3, 'tr_0 tr_340000 tr_341500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341524, '金寨县', 341500, '', 0, 0, 'J', '115.94044120714', '31.733461734381', 3, 'tr_0 tr_340000 tr_341500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341525, '霍山县', 341500, '', 0, 0, 'H', '116.33957586218', '31.398570812489', 3, 'tr_0 tr_340000 tr_341500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350902, '蕉城区', 350900, '', 0, 0, 'J', '119.53344242699', '26.666738555955', 3, 'tr_0 tr_350000 tr_350900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350921, '霞浦县', 350900, '', 0, 0, 'X', '120.01142710564', '26.891348873767', 3, 'tr_0 tr_350000 tr_350900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350922, '古田县', 350900, '', 0, 0, 'G', '118.75257823557', '26.583261752073', 3, 'tr_0 tr_350000 tr_350900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350923, '屏南县', 350900, '', 0, 0, 'P', '118.99259621521', '26.914264918059', 3, 'tr_0 tr_350000 tr_350900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350924, '寿宁县', 350900, '', 0, 0, 'S', '119.51142504878', '27.466649659969', 3, 'tr_0 tr_350000 tr_350900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350925, '周宁县', 350900, '', 0, 0, 'Z', '119.34556712964', '27.110239280448', 3, 'tr_0 tr_350000 tr_350900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350926, '柘荣县', 350900, '', 0, 0, 'Z', '119.90745668696', '27.239961876352', 3, 'tr_0 tr_350000 tr_350900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350981, '福安市', 350900, '', 0, 0, 'F', '119.65440636048', '27.09432350806', 3, 'tr_0 tr_350000 tr_350900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(350982, '福鼎市', 350900, '', 0, 0, 'F', '120.22345190932', '27.330524972528', 3, 'tr_0 tr_350000 tr_350900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'); -INSERT INTO `hg_sys_provinces` (`id`, `title`, `pid`, `short_title`, `areacode`, `zipcode`, `pinyin`, `lng`, `lat`, `level`, `tree`, `sort`, `status`, `created_at`, `updated_at`) VALUES -(360102, '东湖区', 360100, '', 0, 0, 'D', '115.90546602606', '28.691259179775', 3, 'tr_0 tr_360000 tr_360100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360103, '西湖区', 360100, '', 0, 0, 'X', '115.88353569365', '28.661976709901', 3, 'tr_0 tr_360000 tr_360100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360104, '青云谱区', 360100, '', 0, 0, 'Q', '115.93141618579', '28.627235736484', 3, 'tr_0 tr_360000 tr_360100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360105, '湾里区', 360100, '', 0, 0, 'W', '115.73759563309', '28.720195384308', 3, 'tr_0 tr_360000 tr_360100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360111, '青山湖区', 360100, '', 0, 0, 'Q', '115.96855240505', '28.687596006173', 3, 'tr_0 tr_360000 tr_360100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360112, '新建区', 360100, '', 0, 0, 'X', '115.8214509253', '28.698748625155', 3, 'tr_0 tr_360000 tr_360100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360121, '南昌县', 360100, '', 0, 0, 'N', '115.95046017277', '28.551604186108', 3, 'tr_0 tr_360000 tr_360100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360123, '安义县', 360100, '', 0, 0, 'A', '115.55544146387', '28.850794273751', 3, 'tr_0 tr_360000 tr_360100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360124, '进贤县', 360100, '', 0, 0, 'J', '116.24853779343', '28.382758944474', 3, 'tr_0 tr_360000 tr_360100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360202, '昌江区', 360200, '', 0, 0, 'C', '117.19057910346', '29.27885446447', 3, 'tr_0 tr_360000 tr_360200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360203, '珠山区', 360200, '', 0, 0, 'Z', '117.20954826159', '29.305778220374', 3, 'tr_0 tr_360000 tr_360200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360222, '浮梁县', 360200, '', 0, 0, 'F', '117.22146608079', '29.357788237529', 3, 'tr_0 tr_360000 tr_360200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360281, '乐平市', 360200, '', 0, 0, 'L', '117.15851067473', '28.984363669039', 3, 'tr_0 tr_360000 tr_360200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360302, '安源区', 360300, '', 0, 0, 'A', '113.87743991926', '27.621307703862', 3, 'tr_0 tr_360000 tr_360300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360313, '湘东区', 360300, '', 0, 0, 'X', '113.74049971211', '27.645875074875', 3, 'tr_0 tr_360000 tr_360300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360321, '莲花县', 360300, '', 0, 0, 'L', '113.96854067422', '27.133462711028', 3, 'tr_0 tr_360000 tr_360300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360322, '上栗县', 360300, '', 0, 0, 'S', '113.80153822404', '27.886415692068', 3, 'tr_0 tr_360000 tr_360300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360323, '芦溪县', 360300, '', 0, 0, 'L', '114.03651940468', '27.6366047187', 3, 'tr_0 tr_360000 tr_360300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360402, '濂溪区', 360400, '', 0, 0, 'L', '116.00753491163', '29.711340559079', 3, 'tr_0 tr_360000 tr_360400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360403, '浔阳区', 360400, '', 0, 0, 'X', '115.99655806746', '29.733093751939', 3, 'tr_0 tr_360000 tr_360400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360404, '柴桑区', 360400, '', 0, 0, 'C', '115.91740154188', '29.614804909379', 3, 'tr_0 tr_360000 tr_360400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360423, '武宁县', 360400, '', 0, 0, 'W', '115.10744177399', '29.2623521507', 3, 'tr_0 tr_360000 tr_360400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360424, '修水县', 360400, '', 0, 0, 'X', '114.55356797639', '29.031175867959', 3, 'tr_0 tr_360000 tr_360400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360425, '永修县', 360400, '', 0, 0, 'Y', '115.81540658685', '29.028005616261', 3, 'tr_0 tr_360000 tr_360400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360426, '德安县', 360400, '', 0, 0, 'D', '115.76257795847', '29.319172496312', 3, 'tr_0 tr_360000 tr_360400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360428, '都昌县', 360400, '', 0, 0, 'D', '116.21055204665', '29.278965044767', 3, 'tr_0 tr_360000 tr_360400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360429, '湖口县', 360400, '', 0, 0, 'H', '116.25847134559', '29.737131514562', 3, 'tr_0 tr_360000 tr_360400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360430, '彭泽县', 360400, '', 0, 0, 'P', '116.55550980644', '29.902122004906', 3, 'tr_0 tr_360000 tr_360400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360481, '瑞昌市', 360400, '', 0, 0, 'R', '115.68742967207', '29.681951286531', 3, 'tr_0 tr_360000 tr_360400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360482, '共青城市', 360400, '', 0, 0, 'G', '115.82142002359', '29.248741173716', 3, 'tr_0 tr_360000 tr_360400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360483, '庐山市', 360400, '', 0, 0, 'L', '116.05142593917', '29.454539165717', 3, 'tr_0 tr_360000 tr_360400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360502, '渝水区', 360500, '', 0, 0, 'Y', '114.9514238934', '27.806839650444', 3, 'tr_0 tr_360000 tr_360500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360521, '分宜县', 360500, '', 0, 0, 'F', '114.69847247036', '27.820731344374', 3, 'tr_0 tr_360000 tr_360500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360602, '月湖区', 360600, '', 0, 0, 'Y', '117.04354760171', '28.245078331555', 3, 'tr_0 tr_360000 tr_360600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360603, '余江区', 360600, '', 0, 0, 'Y', '116.82459362864', '28.215353761359', 3, 'tr_0 tr_360000 tr_360600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360681, '贵溪市', 360600, '', 0, 0, 'G', '117.25139869833', '28.298735072105', 3, 'tr_0 tr_360000 tr_360600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360702, '章贡区', 360700, '', 0, 0, 'Z', '114.9275508855', '25.823747013882', 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360703, '南康区', 360700, '', 0, 0, 'N', '114.77153821509', '25.66705293056', 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360704, '赣县区', 360700, '', 0, 0, 'G', '115.01857016415', '25.866384616621', 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360722, '信丰县', 360700, '', 0, 0, 'X', '114.92952113897', '25.391975120014', 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360723, '大余县', 360700, '', 0, 0, 'D', '114.36840663965', '25.407637298367', 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360724, '上犹县', 360700, '', 0, 0, 'S', '114.55854863129', '25.790518799476', 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360725, '崇义县', 360700, '', 0, 0, 'C', '114.31457244808', '25.687687192664', 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360726, '安远县', 360700, '', 0, 0, 'A', '115.40055913129', '25.142743431732', 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360727, '龙南县', 360700, '', 0, 0, 'L', '114.79655413709', '24.916599461157', 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360728, '定南县', 360700, '', 0, 0, 'D', '115.0345637751', '24.789783831846', 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360729, '全南县', 360700, '', 0, 0, 'Q', '114.53658236666', '24.748206354967', 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360730, '宁都县', 360700, '', 0, 0, 'N', '116.01549443743', '26.47597950334', 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360731, '于都县', 360700, '', 0, 0, 'Y', '115.42149926153', '25.957893942751', 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360732, '兴国县', 360700, '', 0, 0, 'X', '115.36955169119', '26.343882588243', 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360733, '会昌县', 360700, '', 0, 0, 'H', '115.79245964209', '25.606661833811', 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360734, '寻乌县', 360700, '', 0, 0, 'X', '115.65351531535', '24.96944654678', 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360735, '石城县', 360700, '', 0, 0, 'S', '116.35259426977', '26.318972346784', 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360781, '瑞金市', 360700, '', 0, 0, 'R', '116.03342066286', '25.891666273953', 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360802, '吉州区', 360800, '', 0, 0, 'J', '115.00153936965', '27.149314993877', 3, 'tr_0 tr_360000 tr_360800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360803, '青原区', 360800, '', 0, 0, 'Q', '115.02156071302', '27.087662535191', 3, 'tr_0 tr_360000 tr_360800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360821, '吉安县', 360800, '', 0, 0, 'J', '114.9145913014', '27.044989078994', 3, 'tr_0 tr_360000 tr_360800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360822, '吉水县', 360800, '', 0, 0, 'J', '115.14256983128', '27.235259745039', 3, 'tr_0 tr_360000 tr_360800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360823, '峡江县', 360800, '', 0, 0, 'X', '115.32240322821', '27.588234617615', 3, 'tr_0 tr_360000 tr_360800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360824, '新干县', 360800, '', 0, 0, 'X', '115.39359474833', '27.746080951713', 3, 'tr_0 tr_360000 tr_360800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360825, '永丰县', 360800, '', 0, 0, 'Y', '115.44740243989', '27.324342103714', 3, 'tr_0 tr_360000 tr_360800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360826, '泰和县', 360800, '', 0, 0, 'T', '114.91559111544', '26.795697341165', 3, 'tr_0 tr_360000 tr_360800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360827, '遂川县', 360800, '', 0, 0, 'S', '114.52756212171', '26.319517284146', 3, 'tr_0 tr_360000 tr_360800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360828, '万安县', 360800, '', 0, 0, 'W', '114.79257715894', '26.464072836341', 3, 'tr_0 tr_360000 tr_360800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360829, '安福县', 360800, '', 0, 0, 'A', '114.62647813461', '27.399076477105', 3, 'tr_0 tr_360000 tr_360800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360830, '永新县', 360800, '', 0, 0, 'Y', '114.2494149359', '26.951537256563', 3, 'tr_0 tr_360000 tr_360800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360881, '井冈山市', 360800, '', 0, 0, 'J', '114.29555585942', '26.753709741566', 3, 'tr_0 tr_360000 tr_360800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360902, '袁州区', 360900, '', 0, 0, 'Y', '114.43456118111', '27.802582705304', 3, 'tr_0 tr_360000 tr_360900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360921, '奉新县', 360900, '', 0, 0, 'F', '115.40655109853', '28.694028951458', 3, 'tr_0 tr_360000 tr_360900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360922, '万载县', 360900, '', 0, 0, 'W', '114.45253654385', '28.112133306116', 3, 'tr_0 tr_360000 tr_360900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360923, '上高县', 360900, '', 0, 0, 'S', '114.93154115857', '28.238815490252', 3, 'tr_0 tr_360000 tr_360900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360924, '宜丰县', 360900, '', 0, 0, 'Y', '114.80951713475', '28.400373307265', 3, 'tr_0 tr_360000 tr_360900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360925, '靖安县', 360900, '', 0, 0, 'J', '115.36955312848', '28.867081916186', 3, 'tr_0 tr_360000 tr_360900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360926, '铜鼓县', 360900, '', 0, 0, 'T', '114.37741107441', '28.52708345654', 3, 'tr_0 tr_360000 tr_360900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360981, '丰城市', 360900, '', 0, 0, 'F', '115.77747842145', '28.166614024369', 3, 'tr_0 tr_360000 tr_360900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360982, '樟树市', 360900, '', 0, 0, 'Z', '115.55241893533', '28.062153117648', 3, 'tr_0 tr_360000 tr_360900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(360983, '高安市', 360900, '', 0, 0, 'G', '115.38256535328', '28.422857002119', 3, 'tr_0 tr_360000 tr_360900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(361002, '临川区', 361000, '', 0, 0, 'L', '116.31848983161', '27.940458992864', 3, 'tr_0 tr_360000 tr_361000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(361003, '东乡区', 361000, '', 0, 0, 'D', '116.60954171505', '28.253977397999', 3, 'tr_0 tr_360000 tr_361000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(361021, '南城县', 361000, '', 0, 0, 'N', '116.64339884971', '27.57624096656', 3, 'tr_0 tr_360000 tr_361000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(361022, '黎川县', 361000, '', 0, 0, 'L', '116.91450700338', '27.288340234831', 3, 'tr_0 tr_360000 tr_361000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(361023, '南丰县', 361000, '', 0, 0, 'N', '116.53140350859', '27.224733524876', 3, 'tr_0 tr_360000 tr_361000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(361024, '崇仁县', 361000, '', 0, 0, 'C', '116.08354898488', '27.759079756014', 3, 'tr_0 tr_360000 tr_361000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(361025, '乐安县', 361000, '', 0, 0, 'L', '115.83749627865', '27.434079864498', 3, 'tr_0 tr_360000 tr_361000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(361026, '宜黄县', 361000, '', 0, 0, 'Y', '116.24254169398', '27.5605634607', 3, 'tr_0 tr_360000 tr_361000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(361027, '金溪县', 361000, '', 0, 0, 'J', '116.76040404065', '27.925329188976', 3, 'tr_0 tr_360000 tr_361000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(361028, '资溪县', 361000, '', 0, 0, 'Z', '117.06657027361', '27.711845785732', 3, 'tr_0 tr_360000 tr_361000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(361030, '广昌县', 361000, '', 0, 0, 'G', '116.34256064638', '26.848454446681', 3, 'tr_0 tr_360000 tr_361000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(361102, '信州区', 361100, '', 0, 0, 'X', '117.97341184157', '28.437628311', 3, 'tr_0 tr_360000 tr_361100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(361103, '广丰区', 361100, '', 0, 0, 'G', '118.19742022042', '28.442615061205', 3, 'tr_0 tr_360000 tr_361100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(361121, '上饶县', 361100, '', 0, 0, 'S', '117.91558441252', '28.45418687477', 3, 'tr_0 tr_360000 tr_361100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(361123, '玉山县', 361100, '', 0, 0, 'Y', '118.2515628901', '28.687749687317', 3, 'tr_0 tr_360000 tr_361100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(361124, '铅山县', 361100, '', 0, 0, 'Q', '117.71642163695', '28.321504694791', 3, 'tr_0 tr_360000 tr_361100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(361125, '横峰县', 361100, '', 0, 0, 'H', '117.60239738302', '28.413440462384', 3, 'tr_0 tr_360000 tr_361100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(361126, '弋阳县', 361100, '', 0, 0, 'Y', '117.45550637624', '28.384082001231', 3, 'tr_0 tr_360000 tr_361100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(361127, '余干县', 361100, '', 0, 0, 'Y', '116.70160096199', '28.707866244419', 3, 'tr_0 tr_360000 tr_361100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(361128, '鄱阳县', 361100, '', 0, 0, 'P', '116.7105661408', '29.011452830922', 3, 'tr_0 tr_360000 tr_361100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(361129, '万年县', 361100, '', 0, 0, 'W', '117.06459894217', '28.700054054129', 3, 'tr_0 tr_360000 tr_361100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(361130, '婺源县', 361100, '', 0, 0, 'W', '117.86844502243', '29.254039048097', 3, 'tr_0 tr_360000 tr_361100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(361181, '德兴市', 361100, '', 0, 0, 'D', '117.58547968518', '28.952564863028', 3, 'tr_0 tr_360000 tr_361100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341602, '谯城区', 341600, '', 0, 0, 'Q', '115.78547191853', '33.882663087443', 3, 'tr_0 tr_340000 tr_341600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341621, '涡阳县', 341600, '', 0, 0, 'W', '116.22160903516', '33.498566835004', 3, 'tr_0 tr_340000 tr_341600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341622, '蒙城县', 341600, '', 0, 0, 'M', '116.57158940083', '33.271658239674', 3, 'tr_0 tr_340000 tr_341600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(341623, '利辛县', 341600, '', 0, 0, 'L', '116.1914935226', '33.155595841529', 3, 'tr_0 tr_340000 tr_341600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370102, '历下区', 370100, '', 0, 0, 'L', '117.0825673139', '36.672162950043', 3, 'tr_0 tr_370000 tr_370100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370103, '市中区', 370100, '', 0, 0, 'S', '117.00439910401', '36.657551673642', 3, 'tr_0 tr_370000 tr_370100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370104, '槐荫区', 370100, '', 0, 0, 'H', '116.90745837507', '36.657561734426', 3, 'tr_0 tr_370000 tr_370100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370105, '天桥区', 370100, '', 0, 0, 'T', '116.99339917338', '36.684067874353', 3, 'tr_0 tr_370000 tr_370100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370112, '历城区', 370100, '', 0, 0, 'L', '117.07158975107', '36.685655534711', 3, 'tr_0 tr_370000 tr_370100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370113, '长清区', 370100, '', 0, 0, 'Z', '116.75838709095', '36.56021587991', 3, 'tr_0 tr_370000 tr_370100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370114, '章丘区', 370100, '', 0, 0, 'Z', '117.53256537437', '36.68553275142', 3, 'tr_0 tr_370000 tr_370100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370115, '济阳区', 370100, '', 0, 0, 'J', '117.18062113319', '36.983970518315', 3, 'tr_0 tr_370000 tr_370100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370124, '平阴县', 370100, '', 0, 0, 'P', '116.46261667806', '36.294861321066', 3, 'tr_0 tr_370000 tr_370100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370126, '商河县', 370100, '', 0, 0, 'S', '117.1635297929', '37.314970715556', 3, 'tr_0 tr_370000 tr_370100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370171, '济南高新技术产业开发区', 370100, '', 0, 0, 'J', '117.12639941261', '36.656554201787', 3, 'tr_0 tr_370000 tr_370100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370202, '市南区', 370200, '', 0, 0, 'S', '120.41858472358', '36.081465640234', 3, 'tr_0 tr_370000 tr_370200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370203, '市北区', 370200, '', 0, 0, 'S', '120.38140448734', '36.09344959486', 3, 'tr_0 tr_370000 tr_370200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370211, '黄岛区', 370200, '', 0, 0, 'H', '120.20454654768', '35.966382870945', 3, 'tr_0 tr_370000 tr_370200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370212, '崂山区', 370200, '', 0, 0, 'L', '120.47539724708', '36.113499423971', 3, 'tr_0 tr_370000 tr_370200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370213, '李沧区', 370200, '', 0, 0, 'L', '120.43960282675', '36.151024667784', 3, 'tr_0 tr_370000 tr_370200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370214, '城阳区', 370200, '', 0, 0, 'C', '120.40252679394', '36.31288619735', 3, 'tr_0 tr_370000 tr_370200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370215, '即墨区', 370200, '', 0, 0, 'J', '120.45353617402', '36.394749170322', 3, 'tr_0 tr_370000 tr_370200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370271, '青岛高新技术产业开发区', 370200, '', 0, 0, 'Q', '120.44085344768', '36.124685571214', 3, 'tr_0 tr_370000 tr_370200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370281, '胶州市', 370200, '', 0, 0, 'J', '120.03953537127', '36.270349088049', 3, 'tr_0 tr_370000 tr_370200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370283, '平度市', 370200, '', 0, 0, 'P', '119.99441429398', '36.782692254089', 3, 'tr_0 tr_370000 tr_370200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370285, '莱西市', 370200, '', 0, 0, 'L', '120.52455620764', '36.893956298026', 3, 'tr_0 tr_370000 tr_370200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370302, '淄川区', 370300, '', 0, 0, 'Z', '117.97341185763', '36.649834806022', 3, 'tr_0 tr_370000 tr_370300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370303, '张店区', 370300, '', 0, 0, 'Z', '118.02459110728', '36.811941952144', 3, 'tr_0 tr_370000 tr_370300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370304, '博山区', 370300, '', 0, 0, 'B', '117.86846875372', '36.500847855131', 3, 'tr_0 tr_370000 tr_370300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370305, '临淄区', 370300, '', 0, 0, 'L', '118.31539460935', '36.832293635152', 3, 'tr_0 tr_370000 tr_370300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370306, '周村区', 370300, '', 0, 0, 'Z', '117.87648217785', '36.808994352212', 3, 'tr_0 tr_370000 tr_370300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370321, '桓台县', 370300, '', 0, 0, 'H', '118.10443420779', '36.965607980118', 3, 'tr_0 tr_370000 tr_370300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370322, '高青县', 370300, '', 0, 0, 'G', '117.83339432525', '37.177268654333', 3, 'tr_0 tr_370000 tr_370300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370323, '沂源县', 370300, '', 0, 0, 'Y', '118.17748944237', '36.190916985848', 3, 'tr_0 tr_370000 tr_370300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370402, '市中区', 370400, '', 0, 0, 'S', '117.56256581399', '34.86996272507', 3, 'tr_0 tr_370000 tr_370400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370403, '薛城区', 370400, '', 0, 0, 'X', '117.26945761931', '34.801124568639', 3, 'tr_0 tr_370000 tr_370400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370404, '峄城区', 370400, '', 0, 0, 'Y', '117.59639060967', '34.778599873011', 3, 'tr_0 tr_370000 tr_370400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370405, '台儿庄区', 370400, '', 0, 0, 'T', '117.74042545412', '34.568763215633', 3, 'tr_0 tr_370000 tr_370400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370406, '山亭区', 370400, '', 0, 0, 'S', '117.46744316558', '35.105691980765', 3, 'tr_0 tr_370000 tr_370400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370481, '滕州市', 370400, '', 0, 0, 'T', '117.17256521921', '35.120034809574', 3, 'tr_0 tr_370000 tr_370400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370502, '东营区', 370500, '', 0, 0, 'D', '118.58846268607', '37.454847320166', 3, 'tr_0 tr_370000 tr_370500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370503, '河口区', 370500, '', 0, 0, 'H', '118.53250516975', '37.891120201056', 3, 'tr_0 tr_370000 tr_370500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370505, '垦利区', 370500, '', 0, 0, 'K', '118.58143173867', '37.578555133809', 3, 'tr_0 tr_370000 tr_370500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370522, '利津县', 370500, '', 0, 0, 'L', '118.26161799914', '37.495860299031', 3, 'tr_0 tr_370000 tr_370500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370523, '广饶县', 370500, '', 0, 0, 'G', '118.41349864392', '37.059638498906', 3, 'tr_0 tr_370000 tr_370500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370571, '东营经济技术开发区', 370500, '', 0, 0, 'D', '118.58846268607', '37.454847320166', 3, 'tr_0 tr_370000 tr_370500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370572, '东营港经济开发区', 370500, '', 0, 0, 'D', '118.96520739607', '38.098236253355', 3, 'tr_0 tr_370000 tr_370500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370602, '芝罘区', 370600, '', 0, 0, 'Z', '121.40654004549', '37.546312866891', 3, 'tr_0 tr_370000 tr_370600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370611, '福山区', 370600, '', 0, 0, 'F', '121.27460474744', '37.503668228451', 3, 'tr_0 tr_370000 tr_370600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370612, '牟平区', 370600, '', 0, 0, 'M', '121.60654911474', '37.392915451796', 3, 'tr_0 tr_370000 tr_370600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370613, '莱山区', 370600, '', 0, 0, 'L', '121.4513806718', '37.517648584109', 3, 'tr_0 tr_370000 tr_370600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370634, '长岛县', 370600, '', 0, 0, 'Z', '120.74342978244', '37.927628387579', 3, 'tr_0 tr_370000 tr_370600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370671, '烟台高新技术产业开发区', 370600, '', 0, 0, 'Y', '121.4544154173', '37.470038383731', 3, 'tr_0 tr_370000 tr_370600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370672, '烟台经济技术开发区', 370600, '', 0, 0, 'Y', '121.12513892753', '37.636399945094', 3, 'tr_0 tr_370000 tr_370600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370681, '龙口市', 370600, '', 0, 0, 'L', '120.48536852807', '37.652555125496', 3, 'tr_0 tr_370000 tr_370600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370682, '莱阳市', 370600, '', 0, 0, 'L', '120.71841430958', '36.984635568304', 3, 'tr_0 tr_370000 tr_370600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370683, '莱州市', 370600, '', 0, 0, 'L', '119.94859307737', '37.182636609074', 3, 'tr_0 tr_370000 tr_370600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370684, '蓬莱市', 370600, '', 0, 0, 'P', '120.76556151495', '37.816438725969', 3, 'tr_0 tr_370000 tr_370600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370685, '招远市', 370600, '', 0, 0, 'Z', '120.44060165265', '37.361137142566', 3, 'tr_0 tr_370000 tr_370600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370686, '栖霞市', 370600, '', 0, 0, 'Q', '120.85641658338', '37.3414181648', 3, 'tr_0 tr_370000 tr_370600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370687, '海阳市', 370600, '', 0, 0, 'H', '121.18045819779', '36.693269738228', 3, 'tr_0 tr_370000 tr_370600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370702, '潍城区', 370700, '', 0, 0, 'W', '119.03142854152', '36.73285441557', 3, 'tr_0 tr_370000 tr_370700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370703, '寒亭区', 370700, '', 0, 0, 'H', '119.22661514747', '36.780743786201', 3, 'tr_0 tr_370000 tr_370700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370704, '坊子区', 370700, '', 0, 0, 'F', '119.17240097265', '36.660741599701', 3, 'tr_0 tr_370000 tr_370700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370705, '奎文区', 370700, '', 0, 0, 'K', '119.13947052995', '36.712752014046', 3, 'tr_0 tr_370000 tr_370700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370724, '临朐县', 370700, '', 0, 0, 'L', '118.54944999641', '36.519129501828', 3, 'tr_0 tr_370000 tr_370700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370725, '昌乐县', 370700, '', 0, 0, 'C', '118.83648798144', '36.712996190845', 3, 'tr_0 tr_370000 tr_370700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370772, '潍坊滨海经济技术开发区', 370700, '', 0, 0, 'W', '119.16837791143', '36.712651551268', 3, 'tr_0 tr_370000 tr_370700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370781, '青州市', 370700, '', 0, 0, 'Q', '118.48653672087', '36.690416508705', 3, 'tr_0 tr_370000 tr_370700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370782, '诸城市', 370700, '', 0, 0, 'Z', '119.41640221867', '36.002008858076', 3, 'tr_0 tr_370000 tr_370700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370783, '寿光市', 370700, '', 0, 0, 'S', '118.79741537481', '36.861921746471', 3, 'tr_0 tr_370000 tr_370700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370784, '安丘市', 370700, '', 0, 0, 'A', '119.22560751818', '36.483842195596', 3, 'tr_0 tr_370000 tr_370700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370785, '高密市', 370700, '', 0, 0, 'G', '119.76241099602', '36.388956706465', 3, 'tr_0 tr_370000 tr_370700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370786, '昌邑市', 370700, '', 0, 0, 'C', '119.40440597739', '36.865161072622', 3, 'tr_0 tr_370000 tr_370700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370811, '任城区', 370800, '', 0, 0, 'R', '116.55446985374', '35.49373064026', 3, 'tr_0 tr_370000 tr_370800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370812, '兖州区', 370800, '', 0, 0, 'Y', '116.79011515173', '35.557952373283', 3, 'tr_0 tr_370000 tr_370800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370826, '微山县', 370800, '', 0, 0, 'W', '117.13541381857', '34.813315104239', 3, 'tr_0 tr_370000 tr_370800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370827, '鱼台县', 370800, '', 0, 0, 'Y', '116.65739284822', '35.017887717823', 3, 'tr_0 tr_370000 tr_370800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370828, '金乡县', 370800, '', 0, 0, 'J', '116.31852982171', '35.072569118665', 3, 'tr_0 tr_370000 tr_370800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370829, '嘉祥县', 370800, '', 0, 0, 'J', '116.34861308511', '35.413255044102', 3, 'tr_0 tr_370000 tr_370800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370830, '汶上县', 370800, '', 0, 0, 'W', '116.50544105765', '35.717055392628', 3, 'tr_0 tr_370000 tr_370800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370831, '泗水县', 370800, '', 0, 0, 'S', '117.25742858989', '35.670600481228', 3, 'tr_0 tr_370000 tr_370800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370832, '梁山县', 370800, '', 0, 0, 'L', '116.10262029578', '35.808063886611', 3, 'tr_0 tr_370000 tr_370800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370871, '济宁高新技术产业开发区', 370800, '', 0, 0, 'J', '116.59361234854', '35.42017739453', 3, 'tr_0 tr_370000 tr_370800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370881, '曲阜市', 370800, '', 0, 0, 'Q', '116.99341597169', '35.587372286488', 3, 'tr_0 tr_370000 tr_370800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370883, '邹城市', 370800, '', 0, 0, 'Z', '117.01440416129', '35.40752093245', 3, 'tr_0 tr_370000 tr_370800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370902, '泰山区', 370900, '', 0, 0, 'T', '117.14141108582', '36.199444601195', 3, 'tr_0 tr_370000 tr_370900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370911, '岱岳区', 370900, '', 0, 0, 'D', '117.04855647915', '36.193291242291', 3, 'tr_0 tr_370000 tr_370900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370921, '宁阳县', 370900, '', 0, 0, 'N', '116.81257853863', '35.764539097344', 3, 'tr_0 tr_370000 tr_370900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370923, '东平县', 370900, '', 0, 0, 'D', '116.47759421565', '35.941908015019', 3, 'tr_0 tr_370000 tr_370900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370982, '新泰市', 370900, '', 0, 0, 'X', '117.77460624827', '35.914619866588', 3, 'tr_0 tr_370000 tr_370900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(370983, '肥城市', 370900, '', 0, 0, 'F', '116.77540081764', '36.188811224315', 3, 'tr_0 tr_370000 tr_370900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371002, '环翠区', 371000, '', 0, 0, 'H', '122.12953818095', '37.507968071219', 3, 'tr_0 tr_370000 tr_371000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371003, '文登区', 371000, '', 0, 0, 'W', '122.06442836878', '37.200113328316', 3, 'tr_0 tr_370000 tr_371000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371071, '威海火炬高技术产业开发区', 371000, '', 0, 0, 'W', '122.12754097831', '37.516430548015', 3, 'tr_0 tr_370000 tr_371000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371072, '威海经济技术开发区', 371000, '', 0, 0, 'W', '122.18792776961', '37.412757933019', 3, 'tr_0 tr_370000 tr_371000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371073, '威海临港经济技术开发区', 371000, '', 0, 0, 'W', '122.12754097831', '37.516430548015', 3, 'tr_0 tr_370000 tr_371000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371082, '荣成市', 371000, '', 0, 0, 'R', '122.49250463074', '37.171317939253', 3, 'tr_0 tr_370000 tr_371000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371083, '乳山市', 371000, '', 0, 0, 'R', '121.5464285812', '36.925177357878', 3, 'tr_0 tr_370000 tr_371000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371102, '东港区', 371100, '', 0, 0, 'D', '119.46862431118', '35.431049003942', 3, 'tr_0 tr_370000 tr_371100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371103, '岚山区', 371100, '', 0, 0, 'L', '119.32553044175', '35.127432330052', 3, 'tr_0 tr_370000 tr_371100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371121, '五莲县', 371100, '', 0, 0, 'W', '119.21558036259', '35.755697104104', 3, 'tr_0 tr_370000 tr_371100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371122, '莒县', 371100, '', 0, 0, 'J', '118.8435382424', '35.585872122989', 3, 'tr_0 tr_370000 tr_371100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371171, '日照经济技术开发区', 371100, '', 0, 0, 'R', '119.53341540457', '35.422838998438', 3, 'tr_0 tr_370000 tr_371100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371202, '莱城区', 371200, '', 0, 0, 'L', '117.6459130158', '36.313394584932', 3, 'tr_0 tr_370000 tr_371200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371203, '钢城区', 371200, '', 0, 0, 'G', '117.8275371813', '36.092835887233', 3, 'tr_0 tr_370000 tr_371200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371302, '兰山区', 371300, '', 0, 0, 'L', '118.35449973464', '35.057340229806', 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371311, '罗庄区', 371300, '', 0, 0, 'L', '118.29151252855', '35.002503733433', 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371312, '河东区', 371300, '', 0, 0, 'H', '118.40954744713', '35.095675536824', 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371321, '沂南县', 371300, '', 0, 0, 'Y', '118.47149154086', '35.55609766695', 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371322, '郯城县', 371300, '', 0, 0, 'T', '118.37358710977', '34.619225932471', 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371323, '沂水县', 371300, '', 0, 0, 'Y', '118.63461726385', '35.796180584718', 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371324, '兰陵县', 371300, '', 0, 0, 'L', '118.07740949499', '34.86361638544', 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371325, '费县', 371300, '', 0, 0, 'F', '117.98442508318', '35.272304128517', 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371326, '平邑县', 371300, '', 0, 0, 'P', '117.64654058086', '35.51201963664', 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371327, '莒南县', 371300, '', 0, 0, 'J', '118.84154077027', '35.180811631788', 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371328, '蒙阴县', 371300, '', 0, 0, 'M', '117.95141460145', '35.716347166232', 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371329, '临沭县', 371300, '', 0, 0, 'L', '118.6574945001', '34.926018591491', 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371371, '临沂高新技术产业开发区', 371300, '', 0, 0, 'L', '118.27105074598', '34.991223857705', 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371372, '临沂经济技术开发区', 371300, '', 0, 0, 'L', '118.41614315832', '35.028440855401', 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371373, '临沂临港经济开发区', 371300, '', 0, 0, 'L', '119.09098821173', '35.192676079483', 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371402, '德城区', 371400, '', 0, 0, 'D', '116.30544896637', '37.456993283021', 3, 'tr_0 tr_370000 tr_371400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371403, '陵城区', 371400, '', 0, 0, 'L', '116.58940001434', '37.347132434581', 3, 'tr_0 tr_370000 tr_371400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371422, '宁津县', 371400, '', 0, 0, 'N', '116.80653761374', '37.658018745855', 3, 'tr_0 tr_370000 tr_371400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371423, '庆云县', 371400, '', 0, 0, 'Q', '117.39145244825', '37.781585318857', 3, 'tr_0 tr_370000 tr_371400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371424, '临邑县', 371400, '', 0, 0, 'L', '116.87340370302', '37.196169366727', 3, 'tr_0 tr_370000 tr_371400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371425, '齐河县', 371400, '', 0, 0, 'Q', '116.76938747073', '36.78994480667', 3, 'tr_0 tr_370000 tr_371400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371426, '平原县', 371400, '', 0, 0, 'P', '116.44050470827', '37.171221463312', 3, 'tr_0 tr_370000 tr_371400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371427, '夏津县', 371400, '', 0, 0, 'X', '116.00853411226', '36.954154863323', 3, 'tr_0 tr_370000 tr_371400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371428, '武城县', 371400, '', 0, 0, 'W', '116.07550629142', '37.219222080288', 3, 'tr_0 tr_370000 tr_371400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371471, '德州经济技术开发区', 371400, '', 0, 0, 'D', '116.36555674397', '37.441308454576', 3, 'tr_0 tr_370000 tr_371400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371472, '德州运河经济开发区', 371400, '', 0, 0, 'D', '116.36555674397', '37.441308454576', 3, 'tr_0 tr_370000 tr_371400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371481, '乐陵市', 371400, '', 0, 0, 'L', '117.23840643173', '37.73592450081', 3, 'tr_0 tr_370000 tr_371400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371482, '禹城市', 371400, '', 0, 0, 'Y', '116.64437110138', '36.940242008766', 3, 'tr_0 tr_370000 tr_371400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371502, '东昌府区', 371500, '', 0, 0, 'D', '115.99458657176', '36.440377840732', 3, 'tr_0 tr_370000 tr_371500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371521, '阳谷县', 371500, '', 0, 0, 'Y', '115.79839557041', '36.120815514687', 3, 'tr_0 tr_370000 tr_371500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371522, '莘县', 371500, '', 0, 0, 'S', '115.67739687246', '36.239907120546', 3, 'tr_0 tr_370000 tr_371500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371523, '茌平县', 371500, '', 0, 0, 'C', '116.26145544215', '36.586785068842', 3, 'tr_0 tr_370000 tr_371500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371524, '东阿县', 371500, '', 0, 0, 'D', '116.25449294564', '36.340957707761', 3, 'tr_0 tr_370000 tr_371500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371525, '冠县', 371500, '', 0, 0, 'G', '115.44939579504', '36.490243225394', 3, 'tr_0 tr_370000 tr_371500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371526, '高唐县', 371500, '', 0, 0, 'G', '116.23560427568', '36.851591084095', 3, 'tr_0 tr_370000 tr_371500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371581, '临清市', 371500, '', 0, 0, 'L', '115.71146960045', '36.844289186694', 3, 'tr_0 tr_370000 tr_371500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371702, '牡丹区', 371700, '', 0, 0, 'M', '115.42344303021', '35.257018176069', 3, 'tr_0 tr_370000 tr_371700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371703, '定陶区', 371700, '', 0, 0, 'D', '115.57943737524', '35.077275179757', 3, 'tr_0 tr_370000 tr_371700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371721, '曹县', 371700, '', 0, 0, 'C', '115.54845724362', '34.831809348415', 3, 'tr_0 tr_370000 tr_371700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371722, '单县', 371700, '', 0, 0, 'D', '116.11158367799', '34.784658433692', 3, 'tr_0 tr_370000 tr_371700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371723, '成武县', 371700, '', 0, 0, 'C', '115.89651900839', '34.95860565496', 3, 'tr_0 tr_370000 tr_371700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371724, '巨野县', 371700, '', 0, 0, 'J', '116.10159901224', '35.402062380609', 3, 'tr_0 tr_370000 tr_371700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371725, '郓城县', 371700, '', 0, 0, 'Y', '115.95045057629', '35.605902319687', 3, 'tr_0 tr_370000 tr_371700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371726, '鄄城县', 371700, '', 0, 0, 'J', '115.51660692346', '35.569204259881', 3, 'tr_0 tr_370000 tr_371700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371728, '东明县', 371700, '', 0, 0, 'D', '115.09641733473', '35.295701692411', 3, 'tr_0 tr_370000 tr_371700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371771, '菏泽经济技术开发区', 371700, '', 0, 0, 'H', '115.48754503343', '35.239407424766', 3, 'tr_0 tr_370000 tr_371700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371772, '菏泽高新技术开发区', 371700, '', 0, 0, 'H', '115.48754503343', '35.239407424766', 3, 'tr_0 tr_370000 tr_371700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410102, '中原区', 410100, '', 0, 0, 'Z', '113.61947551694', '34.754450781329', 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410103, '二七区', 410100, '', 0, 0, 'E', '113.63141920734', '34.753438850454', 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410104, '管城回族区', 410100, '', 0, 0, 'G', '113.6835246998', '34.759673874699', 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410105, '金水区', 410100, '', 0, 0, 'J', '113.6664477324', '34.806070445662', 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410106, '上街区', 410100, '', 0, 0, 'S', '113.29818225705', '34.822088918243', 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410108, '惠济区', 410100, '', 0, 0, 'H', '113.62345527984', '34.873519885776', 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410122, '中牟县', 410100, '', 0, 0, 'Z', '113.98248490573', '34.725010848924', 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410171, '郑州经济技术开发区', 410100, '', 0, 0, 'Z', '113.77162403642', '34.724610916832', 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410172, '郑州高新技术产业开发区', 410100, '', 0, 0, 'Z', '113.63793722229', '34.742959870174', 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410173, '郑州航空港经济综合实验区', 410100, '', 0, 0, 'Z', '113.97018898974', '34.719717969385', 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410181, '巩义市', 410100, '', 0, 0, 'G', '113.02843100495', '34.754096888697', 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410182, '荥阳市', 410100, '', 0, 0, 'X', '113.38942279956', '34.793810500346', 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410183, '新密市', 410100, '', 0, 0, 'X', '113.3973909491', '34.545897983445', 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410184, '新郑市', 410100, '', 0, 0, 'X', '113.74643447195', '34.401766379106', 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410185, '登封市', 410100, '', 0, 0, 'D', '113.05642283346', '34.45969746172', 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410202, '龙亭区', 410200, '', 0, 0, 'L', '114.36141316646', '34.822035612506', 3, 'tr_0 tr_410000 tr_410200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410203, '顺河回族区', 410200, '', 0, 0, 'S', '114.36739165912', '34.802241355559', 3, 'tr_0 tr_410000 tr_410200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410204, '鼓楼区', 410200, '', 0, 0, 'G', '114.35440485636', '34.794874251914', 3, 'tr_0 tr_410000 tr_410200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410205, '禹王台区', 410200, '', 0, 0, 'Y', '114.35439775975', '34.783472105917', 3, 'tr_0 tr_410000 tr_410200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410212, '祥符区', 410200, '', 0, 0, 'X', '114.4475325479', '34.762739572224', 3, 'tr_0 tr_410000 tr_410200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410221, '杞县', 410200, '', 0, 0, 'Q', '114.78959210474', '34.554856780687', 3, 'tr_0 tr_410000 tr_410200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410222, '通许县', 410200, '', 0, 0, 'T', '114.47343590593', '34.486771802655', 3, 'tr_0 tr_410000 tr_410200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410223, '尉氏县', 410200, '', 0, 0, 'W', '114.19956115086', '34.417228010354', 3, 'tr_0 tr_410000 tr_410200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410225, '兰考县', 410200, '', 0, 0, 'L', '114.82746071249', '34.828492897238', 3, 'tr_0 tr_410000 tr_410200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410302, '老城区', 410300, '', 0, 0, 'L', '112.47650356572', '34.689601063497', 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410303, '西工区', 410300, '', 0, 0, 'X', '112.43439953731', '34.666767847513', 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410304, '瀍河回族区', 410300, '', 0, 0, 'C', '112.50660380709', '34.685462421335', 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410305, '涧西区', 410300, '', 0, 0, 'J', '112.4025520019', '34.663468974309', 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410306, '吉利区', 410300, '', 0, 0, 'J', '112.59547847119', '34.907012657115', 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410311, '洛龙区', 410300, '', 0, 0, 'L', '112.47046928829', '34.624704713024', 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410322, '孟津县', 410300, '', 0, 0, 'M', '112.45141766571', '34.831731570285', 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410323, '新安县', 410300, '', 0, 0, 'X', '112.14060970841', '34.734383327344', 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410324, '栾川县', 410300, '', 0, 0, 'L', '111.62242666651', '33.791822464323', 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410325, '嵩县', 410300, '', 0, 0, 'S', '112.09240816187', '34.140721556406', 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410326, '汝阳县', 410300, '', 0, 0, 'R', '112.47950327731', '34.159843364893', 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410327, '宜阳县', 410300, '', 0, 0, 'Y', '112.17946537426', '34.541046942554', 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410328, '洛宁县', 410300, '', 0, 0, 'L', '111.65958740952', '34.394984560215', 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410329, '伊川县', 410300, '', 0, 0, 'Y', '112.43240745502', '34.427645796427', 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410371, '洛阳高新技术产业开发区', 410300, '', 0, 0, 'L', '112.45942129831', '34.624262779219', 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410381, '偃师市', 410300, '', 0, 0, 'Y', '112.79642141885', '34.733796624013', 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410402, '新华区', 410400, '', 0, 0, 'X', '113.30043988965', '33.743657151646', 3, 'tr_0 tr_410000 tr_410400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410403, '卫东区', 410400, '', 0, 0, 'W', '113.34161111761', '33.7403756514', 3, 'tr_0 tr_410000 tr_410400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410404, '石龙区', 410400, '', 0, 0, 'S', '112.9054552264', '33.904754268397', 3, 'tr_0 tr_410000 tr_410400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410411, '湛河区', 410400, '', 0, 0, 'Z', '113.25051467449', '33.685790171047', 3, 'tr_0 tr_410000 tr_410400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410421, '宝丰县', 410400, '', 0, 0, 'B', '113.06144723584', '33.874745598631', 3, 'tr_0 tr_410000 tr_410400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410422, '叶县', 410400, '', 0, 0, 'Y', '113.36358241276', '33.632491674058', 3, 'tr_0 tr_410000 tr_410400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410423, '鲁山县', 410400, '', 0, 0, 'L', '112.91443396963', '33.744878863452', 3, 'tr_0 tr_410000 tr_410400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410425, '郏县', 410400, '', 0, 0, 'J', '113.21960622765', '33.977486289177', 3, 'tr_0 tr_410000 tr_410400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410471, '平顶山高新技术产业开发区', 410400, '', 0, 0, 'P', '113.40808986384', '33.737612151054', 3, 'tr_0 tr_410000 tr_410400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410472, '平顶山市新城区', 410400, '', 0, 0, 'P', '113.19952856052', '33.772050748691', 3, 'tr_0 tr_410000 tr_410400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410481, '舞钢市', 410400, '', 0, 0, 'W', '113.53141031593', '33.299431105301', 3, 'tr_0 tr_410000 tr_410400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410482, '汝州市', 410400, '', 0, 0, 'R', '112.85054971566', '34.172767788551', 3, 'tr_0 tr_410000 tr_410400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410502, '文峰区', 410500, '', 0, 0, 'W', '114.36337398772', '36.096832748136', 3, 'tr_0 tr_410000 tr_410500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410503, '北关区', 410500, '', 0, 0, 'B', '114.36238189912', '36.113131607765', 3, 'tr_0 tr_410000 tr_410500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410505, '殷都区', 410500, '', 0, 0, 'Y', '114.29712997501', '36.135573231517', 3, 'tr_0 tr_410000 tr_410500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410506, '龙安区', 410500, '', 0, 0, 'L', '114.3075931681', '36.08275278362', 3, 'tr_0 tr_410000 tr_410500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410522, '安阳县', 410500, '', 0, 0, 'A', '114.23838187262', '36.218906964196', 3, 'tr_0 tr_410000 tr_410500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'); -INSERT INTO `hg_sys_provinces` (`id`, `title`, `pid`, `short_title`, `areacode`, `zipcode`, `pinyin`, `lng`, `lat`, `level`, `tree`, `sort`, `status`, `created_at`, `updated_at`) VALUES -(410523, '汤阴县', 410500, '', 0, 0, 'T', '114.36340938096', '35.927643740225', 3, 'tr_0 tr_410000 tr_410500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410526, '滑县', 410500, '', 0, 0, 'H', '114.52555316619', '35.581045400558', 3, 'tr_0 tr_410000 tr_410500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410527, '内黄县', 410500, '', 0, 0, 'N', '114.90758875551', '35.976949668061', 3, 'tr_0 tr_410000 tr_410500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410571, '安阳高新技术产业开发区', 410500, '', 0, 0, 'A', '114.39950042177', '36.105940984015', 3, 'tr_0 tr_410000 tr_410500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410581, '林州市', 410500, '', 0, 0, 'L', '113.82559018908', '36.088853208448', 3, 'tr_0 tr_410000 tr_410500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410602, '鹤山区', 410600, '', 0, 0, 'H', '114.16955478242', '35.960280248227', 3, 'tr_0 tr_410000 tr_410600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410603, '山城区', 410600, '', 0, 0, 'S', '114.19062058561', '35.903369613292', 3, 'tr_0 tr_410000 tr_410600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410611, '淇滨区', 410600, '', 0, 0, 'Q', '114.30559120444', '35.746952546289', 3, 'tr_0 tr_410000 tr_410600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410621, '浚县', 410600, '', 0, 0, 'J', '114.55760785086', '35.681917305913', 3, 'tr_0 tr_410000 tr_410600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410622, '淇县', 410600, '', 0, 0, 'Q', '114.2154897245', '35.627277020336', 3, 'tr_0 tr_410000 tr_410600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410671, '鹤壁经济技术开发区', 410600, '', 0, 0, 'H', '114.30359364248', '35.7523574114', 3, 'tr_0 tr_410000 tr_410600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410702, '红旗区', 410700, '', 0, 0, 'H', '113.88141583415', '35.310135512691', 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410703, '卫滨区', 410700, '', 0, 0, 'W', '113.8724387977', '35.308459209602', 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410704, '凤泉区', 410700, '', 0, 0, 'F', '113.91245884715', '35.375665060578', 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410711, '牧野区', 410700, '', 0, 0, 'M', '113.91551290623', '35.321023486499', 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410721, '新乡县', 410700, '', 0, 0, 'X', '113.81159378076', '35.196564408993', 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410724, '获嘉县', 410700, '', 0, 0, 'H', '113.66341666994', '35.265809284161', 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410725, '原阳县', 410700, '', 0, 0, 'Y', '113.94662374129', '35.071163864469', 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410726, '延津县', 410700, '', 0, 0, 'Y', '114.21151175821', '35.147806510509', 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410727, '封丘县', 410700, '', 0, 0, 'F', '114.42560616803', '35.046857531651', 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410728, '长垣县', 410700, '', 0, 0, 'Z', '114.67560989146', '35.207198224565', 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410771, '新乡高新技术产业开发区', 410700, '', 0, 0, 'X', '113.89511589149', '35.288196248852', 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410772, '新乡经济技术开发区', 410700, '', 0, 0, 'X', '113.93360046733', '35.309639930337', 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410773, '新乡市平原城乡一体化示范区', 410700, '', 0, 0, 'X', '113.93360046733', '35.309639930337', 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410781, '卫辉市', 410700, '', 0, 0, 'W', '114.07160094452', '35.404068882145', 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410782, '辉县市', 410700, '', 0, 0, 'H', '113.81157302991', '35.467957818376', 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410802, '解放区', 410800, '', 0, 0, 'J', '113.23757179887', '35.246309807633', 3, 'tr_0 tr_410000 tr_410800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410803, '中站区', 410800, '', 0, 0, 'Z', '113.18944759643', '35.242617103591', 3, 'tr_0 tr_410000 tr_410800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410804, '马村区', 410800, '', 0, 0, 'M', '113.32854400634', '35.261894441723', 3, 'tr_0 tr_410000 tr_410800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410811, '山阳区', 410800, '', 0, 0, 'S', '113.26048370971', '35.220272352977', 3, 'tr_0 tr_410000 tr_410800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410821, '修武县', 410800, '', 0, 0, 'X', '113.45458192871', '35.229323482594', 3, 'tr_0 tr_410000 tr_410800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410822, '博爱县', 410800, '', 0, 0, 'B', '113.07047799096', '35.177308063756', 3, 'tr_0 tr_410000 tr_410800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410823, '武陟县', 410800, '', 0, 0, 'W', '113.40839582041', '35.105838449217', 3, 'tr_0 tr_410000 tr_410800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410825, '温县', 410800, '', 0, 0, 'W', '113.08656906807', '34.946135492247', 3, 'tr_0 tr_410000 tr_410800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410871, '焦作城乡一体化示范区', 410800, '', 0, 0, 'J', '113.24854783457', '35.220963254039', 3, 'tr_0 tr_410000 tr_410800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410882, '沁阳市', 410800, '', 0, 0, 'Q', '112.95751688155', '35.093785732346', 3, 'tr_0 tr_410000 tr_410800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410883, '孟州市', 410800, '', 0, 0, 'M', '112.79739491254', '34.913597817886', 3, 'tr_0 tr_410000 tr_410800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410902, '华龙区', 410900, '', 0, 0, 'H', '115.0804129441', '35.783632884536', 3, 'tr_0 tr_410000 tr_410900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410922, '清丰县', 410900, '', 0, 0, 'Q', '115.11047186341', '35.891308168277', 3, 'tr_0 tr_410000 tr_410900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410923, '南乐县', 410900, '', 0, 0, 'N', '115.21138615695', '36.076030832875', 3, 'tr_0 tr_410000 tr_410900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410926, '范县', 410900, '', 0, 0, 'F', '115.51058621044', '35.857655087719', 3, 'tr_0 tr_410000 tr_410900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410927, '台前县', 410900, '', 0, 0, 'T', '115.87856816938', '35.975012712521', 3, 'tr_0 tr_410000 tr_410900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410928, '濮阳县', 410900, '', 0, 0, 'P', '115.03558408559', '35.717888889375', 3, 'tr_0 tr_410000 tr_410900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410971, '河南濮阳工业园区', 410900, '', 0, 0, 'H', '115.03559747034', '35.767593028906', 3, 'tr_0 tr_410000 tr_410900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(410972, '濮阳经济技术开发区', 410900, '', 0, 0, 'P', '115.03559747034', '35.767593028906', 3, 'tr_0 tr_410000 tr_410900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411002, '魏都区', 411000, '', 0, 0, 'W', '113.82959564352', '34.030861228003', 3, 'tr_0 tr_410000 tr_411000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411003, '建安区', 411000, '', 0, 0, 'J', '113.82961513675', '34.129966976383', 3, 'tr_0 tr_410000 tr_411000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411024, '鄢陵县', 411000, '', 0, 0, 'Y', '114.18561980866', '34.107963250311', 3, 'tr_0 tr_410000 tr_411000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411025, '襄城县', 411000, '', 0, 0, 'X', '113.51343127013', '33.856967773678', 3, 'tr_0 tr_410000 tr_411000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411071, '许昌经济技术开发区', 411000, '', 0, 0, 'X', '113.81237629469', '34.009184251036', 3, 'tr_0 tr_410000 tr_411000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411081, '禹州市', 411000, '', 0, 0, 'Y', '113.49550522436', '34.146082195029', 3, 'tr_0 tr_410000 tr_411000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411082, '长葛市', 411000, '', 0, 0, 'Z', '113.77442091063', '34.223016266284', 3, 'tr_0 tr_410000 tr_411000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411102, '源汇区', 411100, '', 0, 0, 'Y', '113.99041352982', '33.578423262447', 3, 'tr_0 tr_410000 tr_411100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411103, '郾城区', 411100, '', 0, 0, 'Y', '114.01339389154', '33.593415880865', 3, 'tr_0 tr_410000 tr_411100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411104, '召陵区', 411100, '', 0, 0, 'Z', '114.1004665548', '33.592467538561', 3, 'tr_0 tr_410000 tr_411100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411121, '舞阳县', 411100, '', 0, 0, 'W', '113.61549000488', '33.443577799934', 3, 'tr_0 tr_410000 tr_411100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411122, '临颍县', 411100, '', 0, 0, 'L', '113.93757834379', '33.83269194793', 3, 'tr_0 tr_410000 tr_411100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411171, '漯河经济技术开发区', 411100, '', 0, 0, 'L', '114.02342077765', '33.587710707102', 3, 'tr_0 tr_410000 tr_411100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411202, '湖滨区', 411200, '', 0, 0, 'H', '111.19557389665', '34.775996792444', 3, 'tr_0 tr_410000 tr_411200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411203, '陕州区', 411200, '', 0, 0, 'S', '111.10945065249', '34.726914801527', 3, 'tr_0 tr_410000 tr_411200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411221, '渑池县', 411200, '', 0, 0, 'M', '111.76854234585', '34.773197042986', 3, 'tr_0 tr_410000 tr_411200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411224, '卢氏县', 411200, '', 0, 0, 'L', '111.05456400617', '34.059924845299', 3, 'tr_0 tr_410000 tr_411200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411271, '河南三门峡经济开发区', 411200, '', 0, 0, 'H', '111.16756986287', '34.791595599754', 3, 'tr_0 tr_410000 tr_411200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411281, '义马市', 411200, '', 0, 0, 'Y', '111.88051478021', '34.753028009473', 3, 'tr_0 tr_410000 tr_411200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411282, '灵宝市', 411200, '', 0, 0, 'L', '110.90040831286', '34.523142624164', 3, 'tr_0 tr_410000 tr_411200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411302, '宛城区', 411300, '', 0, 0, 'W', '112.54645416663', '33.009870040626', 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411303, '卧龙区', 411300, '', 0, 0, 'W', '112.54146183376', '32.992483797527', 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411321, '南召县', 411300, '', 0, 0, 'N', '112.43542522255', '33.496185804625', 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411322, '方城县', 411300, '', 0, 0, 'F', '113.0185027528', '33.260539455832', 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411323, '西峡县', 411300, '', 0, 0, 'X', '111.48039809758', '33.313316115292', 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411324, '镇平县', 411300, '', 0, 0, 'Z', '112.24154448331', '33.039718529225', 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411325, '内乡县', 411300, '', 0, 0, 'N', '111.85542528697', '33.051203105476', 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411326, '淅川县', 411300, '', 0, 0, 'X', '111.49743203615', '33.144185260027', 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411327, '社旗县', 411300, '', 0, 0, 'S', '112.9544934547', '33.062236685935', 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411328, '唐河县', 411300, '', 0, 0, 'T', '112.81342436589', '32.687720660005', 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411329, '新野县', 411300, '', 0, 0, 'X', '112.36654962384', '32.526631778818', 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411330, '桐柏县', 411300, '', 0, 0, 'T', '113.43447273106', '32.385130754956', 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411371, '南阳高新技术产业开发区', 411300, '', 0, 0, 'N', '112.53450131351', '32.996562204651', 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411372, '南阳市城乡一体化示范区', 411300, '', 0, 0, 'N', '112.53450131351', '32.996562204651', 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411381, '邓州市', 411300, '', 0, 0, 'D', '112.09342010302', '32.69391743997', 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411402, '梁园区', 411400, '', 0, 0, 'L', '115.62060204557', '34.449471246294', 3, 'tr_0 tr_410000 tr_411400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411403, '睢阳区', 411400, '', 0, 0, 'S', '115.65947594702', '34.394151920479', 3, 'tr_0 tr_410000 tr_411400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411421, '民权县', 411400, '', 0, 0, 'M', '115.15457605887', '34.652478726537', 3, 'tr_0 tr_410000 tr_411400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411422, '睢县', 411400, '', 0, 0, 'S', '115.07841089061', '34.451616965409', 3, 'tr_0 tr_410000 tr_411400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411423, '宁陵县', 411400, '', 0, 0, 'N', '115.32041843737', '34.46663402766', 3, 'tr_0 tr_410000 tr_411400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411424, '柘城县', 411400, '', 0, 0, 'Z', '115.31243456749', '34.097360212415', 3, 'tr_0 tr_410000 tr_411400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411425, '虞城县', 411400, '', 0, 0, 'Y', '115.83447295698', '34.405331502097', 3, 'tr_0 tr_410000 tr_411400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411426, '夏邑县', 411400, '', 0, 0, 'X', '116.13751236823', '34.243523472378', 3, 'tr_0 tr_410000 tr_411400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411471, '豫东综合物流产业聚集区', 411400, '', 0, 0, 'Y', '115.66244933826', '34.420201665859', 3, 'tr_0 tr_410000 tr_411400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411472, '河南商丘经济开发区', 411400, '', 0, 0, 'H', '115.69827951116', '34.407726159442', 3, 'tr_0 tr_410000 tr_411400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411481, '永城市', 411400, '', 0, 0, 'Y', '116.4555661476', '33.934801475851', 3, 'tr_0 tr_410000 tr_411400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411502, '浉河区', 411500, '', 0, 0, 'S', '114.06558130947', '32.122554156884', 3, 'tr_0 tr_410000 tr_411500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411503, '平桥区', 411500, '', 0, 0, 'P', '114.13240742415', '32.10732538611', 3, 'tr_0 tr_410000 tr_411500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411521, '罗山县', 411500, '', 0, 0, 'L', '114.51952993791', '32.209150451838', 3, 'tr_0 tr_410000 tr_411500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411522, '光山县', 411500, '', 0, 0, 'G', '114.92553303688', '32.015906879568', 3, 'tr_0 tr_410000 tr_411500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411523, '新县', 411500, '', 0, 0, 'X', '114.88552475523', '31.649738468475', 3, 'tr_0 tr_410000 tr_411500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411524, '商城县', 411500, '', 0, 0, 'S', '115.41351334076', '31.804345366903', 3, 'tr_0 tr_410000 tr_411500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411525, '固始县', 411500, '', 0, 0, 'G', '115.66048788818', '32.174174379622', 3, 'tr_0 tr_410000 tr_411500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411526, '潢川县', 411500, '', 0, 0, 'H', '115.05847075405', '32.137530716414', 3, 'tr_0 tr_410000 tr_411500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411527, '淮滨县', 411500, '', 0, 0, 'H', '115.42643896891', '32.479469756663', 3, 'tr_0 tr_410000 tr_411500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411528, '息县', 411500, '', 0, 0, 'X', '114.74745313225', '32.348955511715', 3, 'tr_0 tr_410000 tr_411500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411571, '信阳高新技术产业开发区', 411500, '', 0, 0, 'X', '114.09748283305', '32.153014547531', 3, 'tr_0 tr_410000 tr_411500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411602, '川汇区', 411600, '', 0, 0, 'C', '114.65760174056', '33.652997102814', 3, 'tr_0 tr_410000 tr_411600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411621, '扶沟县', 411600, '', 0, 0, 'F', '114.40150984137', '34.065906253969', 3, 'tr_0 tr_410000 tr_411600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411622, '西华县', 411600, '', 0, 0, 'X', '114.53559667094', '33.773215334922', 3, 'tr_0 tr_410000 tr_411600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411623, '商水县', 411600, '', 0, 0, 'S', '114.61841594744', '33.548877475353', 3, 'tr_0 tr_410000 tr_411600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411624, '沈丘县', 411600, '', 0, 0, 'S', '115.10545545595', '33.415691094059', 3, 'tr_0 tr_410000 tr_411600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411625, '郸城县', 411600, '', 0, 0, 'D', '115.18347760136', '33.650827955049', 3, 'tr_0 tr_410000 tr_411600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411626, '淮阳县', 411600, '', 0, 0, 'H', '114.89258615519', '33.737347183458', 3, 'tr_0 tr_410000 tr_411600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411627, '太康县', 411600, '', 0, 0, 'T', '114.84438389', '34.070038382248', 3, 'tr_0 tr_410000 tr_411600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411628, '鹿邑县', 411600, '', 0, 0, 'L', '115.4905852586', '33.867173290317', 3, 'tr_0 tr_410000 tr_411600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411671, '河南周口经济开发区', 411600, '', 0, 0, 'H', '114.70348251482', '33.631828875702', 3, 'tr_0 tr_410000 tr_411600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411681, '项城市', 411600, '', 0, 0, 'X', '114.88151400079', '33.47300744143', 3, 'tr_0 tr_410000 tr_411600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411702, '驿城区', 411700, '', 0, 0, 'Y', '114.00038696674', '32.979519871982', 3, 'tr_0 tr_410000 tr_411700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411721, '西平县', 411700, '', 0, 0, 'X', '114.02747357279', '33.393860997525', 3, 'tr_0 tr_410000 tr_411700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411722, '上蔡县', 411700, '', 0, 0, 'S', '114.2704868624', '33.268511215884', 3, 'tr_0 tr_410000 tr_411700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411723, '平舆县', 411700, '', 0, 0, 'P', '114.62542865923', '32.967982400438', 3, 'tr_0 tr_410000 tr_411700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411724, '正阳县', 411700, '', 0, 0, 'Z', '114.39949655906', '32.611641077273', 3, 'tr_0 tr_410000 tr_411700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411725, '确山县', 411700, '', 0, 0, 'Q', '114.03249501076', '32.808175692984', 3, 'tr_0 tr_410000 tr_411700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411726, '泌阳县', 411700, '', 0, 0, 'M', '113.33355798837', '32.729730650435', 3, 'tr_0 tr_410000 tr_411700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411727, '汝南县', 411700, '', 0, 0, 'R', '114.36940889397', '33.013140881992', 3, 'tr_0 tr_410000 tr_411700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411728, '遂平县', 411700, '', 0, 0, 'S', '114.0194414639', '33.151971399579', 3, 'tr_0 tr_410000 tr_411700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411729, '新蔡县', 411700, '', 0, 0, 'X', '114.99246928382', '32.755268867306', 3, 'tr_0 tr_410000 tr_411700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(411771, '河南驻马店经济开发区', 411700, '', 0, 0, 'H', '114.02847078173', '33.017842416744', 3, 'tr_0 tr_410000 tr_411700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(419001, '济源市', 419000, '', 0, 0, 'J', '112.60858070621', '35.072907226847', 3, 'tr_0 tr_410000 tr_419000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420102, '江岸区', 420100, '', 0, 0, 'J', '114.31657918761', '30.605402797562', 3, 'tr_0 tr_420000 tr_420100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420103, '江汉区', 420100, '', 0, 0, 'J', '114.27750613182', '30.607282276827', 3, 'tr_0 tr_420000 tr_420100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420104, '硚口区', 420100, '', 0, 0, 'Q', '114.22146031207', '30.587584340776', 3, 'tr_0 tr_420000 tr_420100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420105, '汉阳区', 420100, '', 0, 0, 'H', '114.22544555464', '30.560052027443', 3, 'tr_0 tr_420000 tr_420100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420106, '武昌区', 420100, '', 0, 0, 'W', '114.35362228468', '30.564860292785', 3, 'tr_0 tr_420000 tr_420100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420107, '青山区', 420100, '', 0, 0, 'Q', '114.39149265697', '30.646593075543', 3, 'tr_0 tr_420000 tr_420100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420111, '洪山区', 420100, '', 0, 0, 'H', '114.35045554602', '30.506333956808', 3, 'tr_0 tr_420000 tr_420100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420112, '东西湖区', 420100, '', 0, 0, 'D', '114.14345873786', '30.625919818109', 3, 'tr_0 tr_420000 tr_420100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420113, '汉南区', 420100, '', 0, 0, 'H', '114.09151485056', '30.314809120145', 3, 'tr_0 tr_420000 tr_420100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420114, '蔡甸区', 420100, '', 0, 0, 'C', '114.03547963081', '30.588113621855', 3, 'tr_0 tr_420000 tr_420100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420115, '江夏区', 420100, '', 0, 0, 'J', '114.32855126446', '30.381564218182', 3, 'tr_0 tr_420000 tr_420100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420116, '黄陂区', 420100, '', 0, 0, 'H', '114.38245399676', '30.887533767835', 3, 'tr_0 tr_420000 tr_420100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420117, '新洲区', 420100, '', 0, 0, 'X', '114.8075433929', '30.847243870523', 3, 'tr_0 tr_420000 tr_420100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420202, '黄石港区', 420200, '', 0, 0, 'H', '115.07241748608', '30.229052639992', 3, 'tr_0 tr_420000 tr_420200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420203, '西塞山区', 420200, '', 0, 0, 'X', '115.11648143744', '30.210695184118', 3, 'tr_0 tr_420000 tr_420200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420204, '下陆区', 420200, '', 0, 0, 'X', '114.96741590247', '30.180046155273', 3, 'tr_0 tr_420000 tr_420200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420205, '铁山区', 420200, '', 0, 0, 'T', '114.90757141821', '30.212250832587', 3, 'tr_0 tr_420000 tr_420200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420222, '阳新县', 420200, '', 0, 0, 'Y', '115.22142677197', '29.836541808086', 3, 'tr_0 tr_420000 tr_420200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420281, '大冶市', 420200, '', 0, 0, 'D', '114.98643626402', '30.101667800103', 3, 'tr_0 tr_420000 tr_420200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420302, '茅箭区', 420300, '', 0, 0, 'M', '110.81958031019', '32.597286519104', 3, 'tr_0 tr_420000 tr_420300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420303, '张湾区', 420300, '', 0, 0, 'Z', '110.77542410285', '32.65839954548', 3, 'tr_0 tr_420000 tr_420300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420304, '郧阳区', 420300, '', 0, 0, 'Y', '110.81857654362', '32.840592413038', 3, 'tr_0 tr_420000 tr_420300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420322, '郧西县', 420300, '', 0, 0, 'Y', '110.43247261847', '32.999167007536', 3, 'tr_0 tr_420000 tr_420300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420323, '竹山县', 420300, '', 0, 0, 'Z', '110.23558156764', '32.230304060376', 3, 'tr_0 tr_420000 tr_420300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420324, '竹溪县', 420300, '', 0, 0, 'Z', '109.72154249889', '32.324120048853', 3, 'tr_0 tr_420000 tr_420300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420325, '房县', 420300, '', 0, 0, 'F', '110.74746155911', '32.061684964544', 3, 'tr_0 tr_420000 tr_420300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420381, '丹江口市', 420300, '', 0, 0, 'D', '111.51953205848', '32.546252688501', 3, 'tr_0 tr_420000 tr_420300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420502, '西陵区', 420500, '', 0, 0, 'X', '111.29255972053', '30.716749346598', 3, 'tr_0 tr_420000 tr_420500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420503, '伍家岗区', 420500, '', 0, 0, 'W', '111.36742225597', '30.65073733526', 3, 'tr_0 tr_420000 tr_420500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420504, '点军区', 420500, '', 0, 0, 'D', '111.27447135095', '30.69932951388', 3, 'tr_0 tr_420000 tr_420500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420505, '猇亭区', 420500, '', 0, 0, 'X', '111.44157378259', '30.536465982707', 3, 'tr_0 tr_420000 tr_420500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420506, '夷陵区', 420500, '', 0, 0, 'Y', '111.33252973436', '30.774833327298', 3, 'tr_0 tr_420000 tr_420500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420525, '远安县', 420500, '', 0, 0, 'Y', '111.64653035927', '31.066627841578', 3, 'tr_0 tr_420000 tr_420500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420526, '兴山县', 420500, '', 0, 0, 'X', '110.75344607041', '31.354463517716', 3, 'tr_0 tr_420000 tr_420500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420527, '秭归县', 420500, '', 0, 0, 'Z', '110.98444937468', '30.831931643216', 3, 'tr_0 tr_420000 tr_420500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420528, '长阳土家族自治县', 420500, '', 0, 0, 'Z', '111.21350712887', '30.478645783056', 3, 'tr_0 tr_420000 tr_420500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420529, '五峰土家族自治县', 420500, '', 0, 0, 'W', '111.05258063744', '30.171156151026', 3, 'tr_0 tr_420000 tr_420500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420581, '宜都市', 420500, '', 0, 0, 'Y', '111.45651583712', '30.384404274314', 3, 'tr_0 tr_420000 tr_420500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420582, '当阳市', 420500, '', 0, 0, 'D', '111.79456850223', '30.826989050281', 3, 'tr_0 tr_420000 tr_420500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420583, '枝江市', 420500, '', 0, 0, 'Z', '111.76653975337', '30.431730676998', 3, 'tr_0 tr_420000 tr_420500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420602, '襄城区', 420600, '', 0, 0, 'X', '112.14057206941', '32.016174618141', 3, 'tr_0 tr_420000 tr_420600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420606, '樊城区', 420600, '', 0, 0, 'F', '112.14259891613', '32.050572374692', 3, 'tr_0 tr_420000 tr_420600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420607, '襄州区', 420600, '', 0, 0, 'X', '112.21843413678', '32.093375783399', 3, 'tr_0 tr_420000 tr_420600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420624, '南漳县', 420600, '', 0, 0, 'N', '111.84538618392', '31.781129706779', 3, 'tr_0 tr_420000 tr_420600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420625, '谷城县', 420600, '', 0, 0, 'G', '111.65957564172', '32.268983068947', 3, 'tr_0 tr_420000 tr_420600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420626, '保康县', 420600, '', 0, 0, 'B', '111.26744121203', '31.883847150262', 3, 'tr_0 tr_420000 tr_420600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420682, '老河口市', 420600, '', 0, 0, 'L', '111.68155636908', '32.392459585271', 3, 'tr_0 tr_420000 tr_420600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420683, '枣阳市', 420600, '', 0, 0, 'Z', '112.77847075951', '32.134729914319', 3, 'tr_0 tr_420000 tr_420600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420684, '宜城市', 420600, '', 0, 0, 'Y', '112.26461144169', '31.725469730972', 3, 'tr_0 tr_420000 tr_420600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420702, '梁子湖区', 420700, '', 0, 0, 'L', '114.69150657526', '30.105906774051', 3, 'tr_0 tr_420000 tr_420700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420703, '华容区', 420700, '', 0, 0, 'H', '114.73642634228', '30.540599527838', 3, 'tr_0 tr_420000 tr_420700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420704, '鄂城区', 420700, '', 0, 0, 'E', '114.89859968176', '30.406389456292', 3, 'tr_0 tr_420000 tr_420700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420802, '东宝区', 420800, '', 0, 0, 'D', '112.2083882066', '31.058429271365', 3, 'tr_0 tr_420000 tr_420800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420804, '掇刀区', 420800, '', 0, 0, 'D', '112.2144276942', '30.979910859804', 3, 'tr_0 tr_420000 tr_420800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420822, '沙洋县', 420800, '', 0, 0, 'S', '112.59548493899', '30.715314748831', 3, 'tr_0 tr_420000 tr_420800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420881, '钟祥市', 420800, '', 0, 0, 'Z', '112.59447102156', '31.174029854963', 3, 'tr_0 tr_420000 tr_420800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420882, '京山市', 420800, '', 0, 0, 'J', '113.12654806496', '31.024330601193', 3, 'tr_0 tr_420000 tr_420800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420902, '孝南区', 420900, '', 0, 0, 'X', '113.91748989699', '30.922977925049', 3, 'tr_0 tr_420000 tr_420900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420921, '孝昌县', 420900, '', 0, 0, 'X', '114.00440859068', '31.264540493062', 3, 'tr_0 tr_420000 tr_420900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420922, '大悟县', 420900, '', 0, 0, 'D', '114.13341253819', '31.567219806641', 3, 'tr_0 tr_420000 tr_420900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420923, '云梦县', 420900, '', 0, 0, 'Y', '113.75941220183', '31.027218220752', 3, 'tr_0 tr_420000 tr_420900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420981, '应城市', 420900, '', 0, 0, 'Y', '113.57956739635', '30.933976509913', 3, 'tr_0 tr_420000 tr_420900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420982, '安陆市', 420900, '', 0, 0, 'A', '113.69558292415', '31.261414994286', 3, 'tr_0 tr_420000 tr_420900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(420984, '汉川市', 420900, '', 0, 0, 'H', '113.8455490104', '30.666913578821', 3, 'tr_0 tr_420000 tr_420900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421002, '沙市区', 421000, '', 0, 0, 'S', '112.26157741483', '30.316571904872', 3, 'tr_0 tr_420000 tr_421000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421003, '荆州区', 421000, '', 0, 0, 'J', '112.19641397381', '30.358989490775', 3, 'tr_0 tr_420000 tr_421000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421022, '公安县', 421000, '', 0, 0, 'G', '112.23650157584', '30.064400686806', 3, 'tr_0 tr_420000 tr_421000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421023, '监利县', 421000, '', 0, 0, 'J', '112.91142023009', '29.845735162836', 3, 'tr_0 tr_420000 tr_421000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421024, '江陵县', 421000, '', 0, 0, 'J', '112.43145201728', '30.048042984592', 3, 'tr_0 tr_420000 tr_421000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421071, '荆州经济技术开发区', 421000, '', 0, 0, 'J', '112.19641397381', '30.358989490775', 3, 'tr_0 tr_420000 tr_421000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421081, '石首市', 421000, '', 0, 0, 'S', '112.43141984371', '29.727033977407', 3, 'tr_0 tr_420000 tr_421000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421083, '洪湖市', 421000, '', 0, 0, 'H', '113.48255290196', '29.83277032976', 3, 'tr_0 tr_420000 tr_421000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421087, '松滋市', 421000, '', 0, 0, 'S', '111.77358031264', '30.175342235143', 3, 'tr_0 tr_420000 tr_421000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421102, '黄州区', 421100, '', 0, 0, 'H', '114.88653238452', '30.440224145146', 3, 'tr_0 tr_420000 tr_421100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421121, '团风县', 421100, '', 0, 0, 'T', '114.87852435023', '30.649367767215', 3, 'tr_0 tr_420000 tr_421100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421122, '红安县', 421100, '', 0, 0, 'H', '114.6244256113', '31.294296714037', 3, 'tr_0 tr_420000 tr_421100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421123, '罗田县', 421100, '', 0, 0, 'L', '115.4055471675', '30.788910495685', 3, 'tr_0 tr_420000 tr_421100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421124, '英山县', 421100, '', 0, 0, 'Y', '115.68742160263', '30.741350084085', 3, 'tr_0 tr_420000 tr_421100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421125, '浠水县', 421100, '', 0, 0, 'X', '115.27156903289', '30.457460842265', 3, 'tr_0 tr_420000 tr_421100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421126, '蕲春县', 421100, '', 0, 0, 'Q', '115.4423985341', '30.232535499734', 3, 'tr_0 tr_420000 tr_421100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421127, '黄梅县', 421100, '', 0, 0, 'H', '115.95046198477', '30.076605056821', 3, 'tr_0 tr_420000 tr_421100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421171, '龙感湖管理区', 421100, '', 0, 0, 'L', '116.01030250647', '29.879697031911', 3, 'tr_0 tr_420000 tr_421100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421181, '麻城市', 421100, '', 0, 0, 'M', '115.01656174777', '31.176995837411', 3, 'tr_0 tr_420000 tr_421100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421182, '武穴市', 421100, '', 0, 0, 'W', '115.56739216105', '29.850441430483', 3, 'tr_0 tr_420000 tr_421100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421202, '咸安区', 421200, '', 0, 0, 'X', '114.30456990606', '29.858153915154', 3, 'tr_0 tr_420000 tr_421200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421221, '嘉鱼县', 421200, '', 0, 0, 'J', '113.94557046336', '29.976353520898', 3, 'tr_0 tr_420000 tr_421200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421222, '通城县', 421200, '', 0, 0, 'T', '113.82356790903', '29.250857930222', 3, 'tr_0 tr_420000 tr_421200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421223, '崇阳县', 421200, '', 0, 0, 'C', '114.04656290943', '29.561333782271', 3, 'tr_0 tr_420000 tr_421200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421224, '通山县', 421200, '', 0, 0, 'T', '114.48939330027', '29.612634338058', 3, 'tr_0 tr_420000 tr_421200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421281, '赤壁市', 421200, '', 0, 0, 'C', '113.90643686179', '29.730665997526', 3, 'tr_0 tr_420000 tr_421200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421303, '曾都区', 421300, '', 0, 0, 'C', '113.3775133346', '31.722122861271', 3, 'tr_0 tr_420000 tr_421300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421321, '随县', 421300, '', 0, 0, 'S', '113.3064583569', '31.859971678258', 3, 'tr_0 tr_420000 tr_421300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(421381, '广水市', 421300, '', 0, 0, 'G', '113.83259337884', '31.622476038007', 3, 'tr_0 tr_420000 tr_421300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(422801, '恩施市', 422800, '', 0, 0, 'E', '109.48655026901', '30.301037143741', 3, 'tr_0 tr_420000 tr_422800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(422802, '利川市', 422800, '', 0, 0, 'L', '108.94248057756', '30.29720344368', 3, 'tr_0 tr_420000 tr_422800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(422822, '建始县', 422800, '', 0, 0, 'J', '109.72855610899', '30.607907026319', 3, 'tr_0 tr_420000 tr_422800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(422823, '巴东县', 422800, '', 0, 0, 'B', '110.34757529184', '31.04806424896', 3, 'tr_0 tr_420000 tr_422800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(422825, '宣恩县', 422800, '', 0, 0, 'X', '109.49756797283', '29.99260392208', 3, 'tr_0 tr_420000 tr_422800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(422826, '咸丰县', 422800, '', 0, 0, 'X', '109.14660773562', '29.671077652358', 3, 'tr_0 tr_420000 tr_422800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(422827, '来凤县', 422800, '', 0, 0, 'L', '109.41349484153', '29.499443572607', 3, 'tr_0 tr_420000 tr_422800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(422828, '鹤峰县', 422800, '', 0, 0, 'H', '110.04042423301', '29.896116483403', 3, 'tr_0 tr_420000 tr_422800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(429004, '仙桃市', 429000, '', 0, 0, 'X', '113.46159059813', '30.368271921725', 3, 'tr_0 tr_420000 tr_429000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(429005, '潜江市', 429000, '', 0, 0, 'Q', '112.90547409082', '30.408357932419', 3, 'tr_0 tr_420000 tr_429000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(429006, '天门市', 429000, '', 0, 0, 'T', '113.17240916633', '30.669621830099', 3, 'tr_0 tr_420000 tr_429000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(429021, '神农架林区', 429000, '', 0, 0, 'S', '110.6825248504', '31.750496011246', 3, 'tr_0 tr_420000 tr_429000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371602, '滨城区', 371600, '', 0, 0, 'B', '118.02660385061', '37.436843207744', 3, 'tr_0 tr_370000 tr_371600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371603, '沾化区', 371600, '', 0, 0, 'Z', '118.10545441336', '37.705298106724', 3, 'tr_0 tr_370000 tr_371600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371621, '惠民县', 371600, '', 0, 0, 'H', '117.5165096905', '37.49580310894', 3, 'tr_0 tr_370000 tr_371600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371622, '阳信县', 371600, '', 0, 0, 'Y', '117.58443703791', '37.647338034957', 3, 'tr_0 tr_370000 tr_371600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371623, '无棣县', 371600, '', 0, 0, 'W', '117.63245748606', '37.777567312086', 3, 'tr_0 tr_370000 tr_371600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371625, '博兴县', 371600, '', 0, 0, 'B', '118.11749269533', '37.160477277651', 3, 'tr_0 tr_370000 tr_371600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(371681, '邹平市', 371600, '', 0, 0, 'Z', '117.74947848722', '36.870032216697', 3, 'tr_0 tr_370000 tr_371600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430202, '荷塘区', 430200, '', 0, 0, 'H', '113.18045222007', '27.862155809141', 3, 'tr_0 tr_430000 tr_430200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430203, '芦淞区', 430200, '', 0, 0, 'L', '113.15841867236', '27.791508825947', 3, 'tr_0 tr_430000 tr_430200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430204, '石峰区', 430200, '', 0, 0, 'S', '113.12456791567', '27.880705165595', 3, 'tr_0 tr_430000 tr_430200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430211, '天元区', 430200, '', 0, 0, 'T', '113.08954055842', '27.833083519485', 3, 'tr_0 tr_430000 tr_430200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430212, '渌口区', 430200, '', 0, 0, 'L', '113.15042671773', '27.704322804857', 3, 'tr_0 tr_430000 tr_430200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430223, '攸县', 430200, '', 0, 0, 'Y', '113.35157834169', '27.005771565213', 3, 'tr_0 tr_430000 tr_430200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430224, '茶陵县', 430200, '', 0, 0, 'C', '113.54547165714', '26.78358911036', 3, 'tr_0 tr_430000 tr_430200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430225, '炎陵县', 430200, '', 0, 0, 'Y', '113.77941879832', '26.496060691599', 3, 'tr_0 tr_430000 tr_430200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430271, '云龙示范区', 430200, '', 0, 0, 'Y', '113.17446420357', '27.934854931886', 3, 'tr_0 tr_430000 tr_430200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430281, '醴陵市', 430200, '', 0, 0, 'L', '113.50348315084', '27.652325149951', 3, 'tr_0 tr_430000 tr_430200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430302, '雨湖区', 430300, '', 0, 0, 'Y', '112.91344959207', '27.862466785111', 3, 'tr_0 tr_430000 tr_430300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430304, '岳塘区', 430300, '', 0, 0, 'Y', '112.97558942655', '27.877720506364', 3, 'tr_0 tr_430000 tr_430300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430321, '湘潭县', 430300, '', 0, 0, 'X', '112.95750536884', '27.784982534656', 3, 'tr_0 tr_430000 tr_430300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430371, '湖南湘潭高新技术产业园区', 430300, '', 0, 0, 'H', '112.95046418076', '27.835702227136', 3, 'tr_0 tr_430000 tr_430300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430372, '湘潭昭山示范区', 430300, '', 0, 0, 'X', '113.01812844052', '27.97161027839', 3, 'tr_0 tr_430000 tr_430300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430373, '湘潭九华示范区', 430300, '', 0, 0, 'X', '112.94707945543', '27.916546191684', 3, 'tr_0 tr_430000 tr_430300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430381, '湘乡市', 430300, '', 0, 0, 'X', '112.54149155341', '27.740190553344', 3, 'tr_0 tr_430000 tr_430300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430382, '韶山市', 430300, '', 0, 0, 'S', '112.53349932929', '27.921043749631', 3, 'tr_0 tr_430000 tr_430300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430405, '珠晖区', 430400, '', 0, 0, 'Z', '112.62659414282', '26.900265361946', 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430406, '雁峰区', 430400, '', 0, 0, 'Y', '112.62358823292', '26.89436829036', 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430407, '石鼓区', 430400, '', 0, 0, 'S', '112.60452969339', '26.948961867165', 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430408, '蒸湘区', 430400, '', 0, 0, 'Z', '112.57344401089', '26.917719877877', 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430412, '南岳区', 430400, '', 0, 0, 'N', '112.74557434825', '27.238360474562', 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430421, '衡阳县', 430400, '', 0, 0, 'H', '112.37755268433', '26.975294950861', 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430422, '衡南县', 430400, '', 0, 0, 'H', '112.68440252779', '26.744531956772', 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430423, '衡山县', 430400, '', 0, 0, 'H', '112.87556328771', '27.235996029656', 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430424, '衡东县', 430400, '', 0, 0, 'H', '112.95949529521', '27.087042820265', 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430426, '祁东县', 430400, '', 0, 0, 'Q', '112.09644737847', '26.805995255191', 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430471, '衡阳综合保税区', 430400, '', 0, 0, 'H', '112.57844721326', '26.899576139189', 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430472, '湖南衡阳高新技术产业园区', 430400, '', 0, 0, 'H', '112.57844721326', '26.899576139189', 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430473, '湖南衡阳松木经济开发区', 430400, '', 0, 0, 'H', '112.57844721326', '26.899576139189', 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430481, '耒阳市', 430400, '', 0, 0, 'L', '112.86659721058', '26.428065593928', 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430482, '常宁市', 430400, '', 0, 0, 'C', '112.40556050266', '26.426720432257', 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430502, '双清区', 430500, '', 0, 0, 'S', '111.50344150643', '27.239108783297', 3, 'tr_0 tr_430000 tr_430500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430503, '大祥区', 430500, '', 0, 0, 'D', '111.44552828921', '27.227013968694', 3, 'tr_0 tr_430000 tr_430500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430511, '北塔区', 430500, '', 0, 0, 'B', '111.45849694619', '27.251536276174', 3, 'tr_0 tr_430000 tr_430500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430521, '邵东县', 430500, '', 0, 0, 'S', '111.75049070296', '27.264507471566', 3, 'tr_0 tr_430000 tr_430500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430522, '新邵县', 430500, '', 0, 0, 'X', '111.46444938799', '27.32713173916', 3, 'tr_0 tr_430000 tr_430500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430523, '邵阳县', 430500, '', 0, 0, 'S', '111.28050768064', '26.996528332196', 3, 'tr_0 tr_430000 tr_430500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430524, '隆回县', 430500, '', 0, 0, 'L', '111.03950668528', '27.119946440019', 3, 'tr_0 tr_430000 tr_430500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430525, '洞口县', 430500, '', 0, 0, 'D', '110.58257909625', '27.065975437799', 3, 'tr_0 tr_430000 tr_430500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430527, '绥宁县', 430500, '', 0, 0, 'S', '110.16241987038', '26.588422719333', 3, 'tr_0 tr_430000 tr_430500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430528, '新宁县', 430500, '', 0, 0, 'X', '110.86349072744', '26.439723697954', 3, 'tr_0 tr_430000 tr_430500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430529, '城步苗族自治县', 430500, '', 0, 0, 'C', '110.32853713032', '26.396203220078', 3, 'tr_0 tr_430000 tr_430500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430581, '武冈市', 430500, '', 0, 0, 'W', '110.63840761588', '26.732898572992', 3, 'tr_0 tr_430000 tr_430500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430602, '岳阳楼区', 430600, '', 0, 0, 'Y', '113.13648070435', '29.377995036881', 3, 'tr_0 tr_430000 tr_430600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430603, '云溪区', 430600, '', 0, 0, 'Y', '113.27840659691', '29.479907141133', 3, 'tr_0 tr_430000 tr_430600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430611, '君山区', 430600, '', 0, 0, 'J', '113.0125171491', '29.467129185832', 3, 'tr_0 tr_430000 tr_430600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430621, '岳阳县', 430600, '', 0, 0, 'Y', '113.1225444825', '29.150269316045', 3, 'tr_0 tr_430000 tr_430600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430623, '华容县', 430600, '', 0, 0, 'H', '112.54746151216', '29.536286434382', 3, 'tr_0 tr_430000 tr_430600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430624, '湘阴县', 430600, '', 0, 0, 'X', '112.88952187736', '28.676676377581', 3, 'tr_0 tr_430000 tr_430600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430626, '平江县', 430600, '', 0, 0, 'P', '113.58760362284', '28.707564248115', 3, 'tr_0 tr_430000 tr_430600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430671, '岳阳市屈原管理区', 430600, '', 0, 0, 'Y', '112.92259003029', '28.866288191728', 3, 'tr_0 tr_430000 tr_430600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430681, '汨罗市', 430600, '', 0, 0, 'M', '113.07349286947', '28.812454694812', 3, 'tr_0 tr_430000 tr_430600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430682, '临湘市', 430600, '', 0, 0, 'L', '113.45656151', '29.482801373395', 3, 'tr_0 tr_430000 tr_430600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430702, '武陵区', 430700, '', 0, 0, 'W', '111.68954489616', '29.060783476578', 3, 'tr_0 tr_430000 tr_430700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430703, '鼎城区', 430700, '', 0, 0, 'D', '111.68752209182', '29.024443397066', 3, 'tr_0 tr_430000 tr_430700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430721, '安乡县', 430700, '', 0, 0, 'A', '112.1775061558', '29.41732043222', 3, 'tr_0 tr_430000 tr_430700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430722, '汉寿县', 430700, '', 0, 0, 'H', '111.97641193356', '28.912287603085', 3, 'tr_0 tr_430000 tr_430700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430723, '澧县', 430700, '', 0, 0, 'L', '111.76553354736', '29.638946004609', 3, 'tr_0 tr_430000 tr_430700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430724, '临澧县', 430700, '', 0, 0, 'L', '111.65358500797', '29.446543990119', 3, 'tr_0 tr_430000 tr_430700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430725, '桃源县', 430700, '', 0, 0, 'T', '111.49540733145', '28.908694006999', 3, 'tr_0 tr_430000 tr_430700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430726, '石门县', 430700, '', 0, 0, 'S', '111.38645140702', '29.59036596665', 3, 'tr_0 tr_430000 tr_430700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430771, '常德市西洞庭管理区', 430700, '', 0, 0, 'C', '112.0093067782', '29.197804478833', 3, 'tr_0 tr_430000 tr_430700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430781, '津市市', 430700, '', 0, 0, 'J', '111.88451734602', '29.611258543007', 3, 'tr_0 tr_430000 tr_430700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430802, '永定区', 430800, '', 0, 0, 'Y', '110.54443192397', '29.126190558381', 3, 'tr_0 tr_430000 tr_430800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430811, '武陵源区', 430800, '', 0, 0, 'W', '110.5574989454', '29.351681136671', 3, 'tr_0 tr_430000 tr_430800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430821, '慈利县', 430800, '', 0, 0, 'C', '111.14547125235', '29.435986725969', 3, 'tr_0 tr_430000 tr_430800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430822, '桑植县', 430800, '', 0, 0, 'S', '110.17041335213', '29.405923219415', 3, 'tr_0 tr_430000 tr_430800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430902, '资阳区', 430900, '', 0, 0, 'Z', '112.33043548238', '28.597234549737', 3, 'tr_0 tr_430000 tr_430900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430903, '赫山区', 430900, '', 0, 0, 'H', '112.38059794001', '28.584983567573', 3, 'tr_0 tr_430000 tr_430900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430921, '南县', 430900, '', 0, 0, 'N', '112.40254156734', '29.367069853363', 3, 'tr_0 tr_430000 tr_430900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430922, '桃江县', 430900, '', 0, 0, 'T', '112.16254146398', '28.523870869898', 3, 'tr_0 tr_430000 tr_430900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'); -INSERT INTO `hg_sys_provinces` (`id`, `title`, `pid`, `short_title`, `areacode`, `zipcode`, `pinyin`, `lng`, `lat`, `level`, `tree`, `sort`, `status`, `created_at`, `updated_at`) VALUES -(430923, '安化县', 430900, '', 0, 0, 'A', '111.21949270432', '28.380053748765', 3, 'tr_0 tr_430000 tr_430900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430971, '益阳市大通湖管理区', 430900, '', 0, 0, 'Y', '112.65023278281', '29.193681230112', 3, 'tr_0 tr_430000 tr_430900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430972, '湖南益阳高新技术产业园区', 430900, '', 0, 0, 'H', '112.3715604476', '28.816150235875', 3, 'tr_0 tr_430000 tr_430900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430981, '沅江市', 430900, '', 0, 0, 'Y', '112.36053222035', '28.850233588583', 3, 'tr_0 tr_430000 tr_430900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431002, '北湖区', 431000, '', 0, 0, 'B', '113.01748199382', '25.79081459434', 3, 'tr_0 tr_430000 tr_431000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431003, '苏仙区', 431000, '', 0, 0, 'S', '113.04842340846', '25.806737374104', 3, 'tr_0 tr_430000 tr_431000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431021, '桂阳县', 431000, '', 0, 0, 'G', '112.74056036622', '25.759775327893', 3, 'tr_0 tr_430000 tr_431000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431022, '宜章县', 431000, '', 0, 0, 'Y', '112.95547924076', '25.405713969356', 3, 'tr_0 tr_430000 tr_431000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431023, '永兴县', 431000, '', 0, 0, 'Y', '113.12253316386', '26.132968478533', 3, 'tr_0 tr_430000 tr_431000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431024, '嘉禾县', 431000, '', 0, 0, 'J', '112.37558377831', '25.593421718268', 3, 'tr_0 tr_430000 tr_431000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431025, '临武县', 431000, '', 0, 0, 'L', '112.57041115183', '25.282527010969', 3, 'tr_0 tr_430000 tr_431000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431026, '汝城县', 431000, '', 0, 0, 'R', '113.69154466692', '25.556056733978', 3, 'tr_0 tr_430000 tr_431000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431027, '桂东县', 431000, '', 0, 0, 'G', '113.9515936018', '26.083173927327', 3, 'tr_0 tr_430000 tr_431000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431028, '安仁县', 431000, '', 0, 0, 'A', '113.27542359381', '26.715682788508', 3, 'tr_0 tr_430000 tr_431000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431081, '资兴市', 431000, '', 0, 0, 'Z', '113.24255612233', '25.981873602722', 3, 'tr_0 tr_430000 tr_431000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431102, '零陵区', 431100, '', 0, 0, 'L', '111.63750237493', '26.227682089779', 3, 'tr_0 tr_430000 tr_431100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431103, '冷水滩区', 431100, '', 0, 0, 'L', '111.59842608526', '26.467705510832', 3, 'tr_0 tr_430000 tr_431100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431121, '祁阳县', 431100, '', 0, 0, 'Q', '111.84742029288', '26.586434994948', 3, 'tr_0 tr_430000 tr_431100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431122, '东安县', 431100, '', 0, 0, 'D', '111.32354235354', '26.398288039365', 3, 'tr_0 tr_430000 tr_431100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431123, '双牌县', 431100, '', 0, 0, 'S', '111.6675938129', '25.967169239803', 3, 'tr_0 tr_430000 tr_431100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431124, '道县', 431100, '', 0, 0, 'D', '111.60740437934', '25.53252996283', 3, 'tr_0 tr_430000 tr_431100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431125, '江永县', 431100, '', 0, 0, 'J', '111.35043663236', '25.279720667918', 3, 'tr_0 tr_430000 tr_431100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431126, '宁远县', 431100, '', 0, 0, 'N', '111.95245340697', '25.57705193746', 3, 'tr_0 tr_430000 tr_431100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431127, '蓝山县', 431100, '', 0, 0, 'L', '112.20343493586', '25.37593472464', 3, 'tr_0 tr_430000 tr_431100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431128, '新田县', 431100, '', 0, 0, 'X', '112.21040920018', '25.909825802754', 3, 'tr_0 tr_430000 tr_431100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431129, '江华瑶族自治县', 431100, '', 0, 0, 'J', '111.58545203845', '25.191348924015', 3, 'tr_0 tr_430000 tr_431100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431171, '永州经济技术开发区', 431100, '', 0, 0, 'Y', '111.61945505792', '26.4258641179', 3, 'tr_0 tr_430000 tr_431100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431172, '永州市金洞管理区', 431100, '', 0, 0, 'Y', '112.09909809837', '26.297256941493', 3, 'tr_0 tr_430000 tr_431100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431173, '永州市回龙圩管理区', 431100, '', 0, 0, 'Y', '111.35307783022', '25.173038319623', 3, 'tr_0 tr_430000 tr_431100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431202, '鹤城区', 431200, '', 0, 0, 'H', '110.04639994092', '27.585225763164', 3, 'tr_0 tr_430000 tr_431200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431221, '中方县', 431200, '', 0, 0, 'Z', '109.95146189432', '27.44608117406', 3, 'tr_0 tr_430000 tr_431200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431222, '沅陵县', 431200, '', 0, 0, 'Y', '110.40043076602', '28.459018102626', 3, 'tr_0 tr_430000 tr_431200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431223, '辰溪县', 431200, '', 0, 0, 'C', '110.19048661755', '28.012605313813', 3, 'tr_0 tr_430000 tr_431200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431224, '溆浦县', 431200, '', 0, 0, 'X', '110.60155112895', '27.913963373886', 3, 'tr_0 tr_430000 tr_431200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431225, '会同县', 431200, '', 0, 0, 'H', '109.74158556792', '26.893383817274', 3, 'tr_0 tr_430000 tr_431200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431226, '麻阳苗族自治县', 431200, '', 0, 0, 'M', '109.80943628984', '27.87193016295', 3, 'tr_0 tr_430000 tr_431200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431227, '新晃侗族自治县', 431200, '', 0, 0, 'X', '109.18147151144', '27.358782968573', 3, 'tr_0 tr_430000 tr_431200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431228, '芷江侗族自治县', 431200, '', 0, 0, 'Z', '109.6914022696', '27.449513277765', 3, 'tr_0 tr_430000 tr_431200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431229, '靖州苗族侗族自治县', 431200, '', 0, 0, 'J', '109.70245160703', '26.581321351066', 3, 'tr_0 tr_430000 tr_431200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431230, '通道侗族自治县', 431200, '', 0, 0, 'T', '109.79044548256', '26.164219864712', 3, 'tr_0 tr_430000 tr_431200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431271, '怀化市洪江管理区', 431200, '', 0, 0, 'H', '109.8435098263', '27.215077093932', 3, 'tr_0 tr_430000 tr_431200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431281, '洪江市', 431200, '', 0, 0, 'H', '109.8435098263', '27.215077093932', 3, 'tr_0 tr_430000 tr_431200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431302, '娄星区', 431300, '', 0, 0, 'L', '112.00855842504', '27.735604842109', 3, 'tr_0 tr_430000 tr_431300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431321, '双峰县', 431300, '', 0, 0, 'S', '112.18146049666', '27.462982658573', 3, 'tr_0 tr_430000 tr_431300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431322, '新化县', 431300, '', 0, 0, 'X', '111.334515335', '27.732666751066', 3, 'tr_0 tr_430000 tr_431300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431381, '冷水江市', 431300, '', 0, 0, 'L', '111.44153972291', '27.692058848958', 3, 'tr_0 tr_430000 tr_431300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(431382, '涟源市', 431300, '', 0, 0, 'L', '111.67056199396', '27.698167532255', 3, 'tr_0 tr_430000 tr_431300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(433101, '吉首市', 433100, '', 0, 0, 'J', '109.70444880967', '28.267493127593', 3, 'tr_0 tr_430000 tr_433100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(433122, '泸溪县', 433100, '', 0, 0, 'L', '110.22659921769', '28.221873097569', 3, 'tr_0 tr_430000 tr_433100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(433123, '凤凰县', 433100, '', 0, 0, 'F', '109.6055266883', '27.953847809726', 3, 'tr_0 tr_430000 tr_433100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(433124, '花垣县', 433100, '', 0, 0, 'H', '109.48856183128', '28.577909934397', 3, 'tr_0 tr_430000 tr_433100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(433125, '保靖县', 433100, '', 0, 0, 'B', '109.66647357306', '28.705968872486', 3, 'tr_0 tr_430000 tr_433100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(433126, '古丈县', 433100, '', 0, 0, 'G', '109.95750740057', '28.623083527843', 3, 'tr_0 tr_430000 tr_433100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(433127, '永顺县', 433100, '', 0, 0, 'Y', '109.86358578665', '28.985774485682', 3, 'tr_0 tr_430000 tr_433100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(433130, '龙山县', 433100, '', 0, 0, 'L', '109.45041573696', '29.464121765857', 3, 'tr_0 tr_430000 tr_433100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(433172, '湖南吉首经济开发区', 433100, '', 0, 0, 'H', '109.70444880967', '28.267493127593', 3, 'tr_0 tr_430000 tr_433100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(433173, '湖南永顺经济开发区', 433100, '', 0, 0, 'H', '109.86358578665', '28.985774485682', 3, 'tr_0 tr_430000 tr_433100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440103, '荔湾区', 440100, '', 0, 0, 'L', '113.25050226337', '23.131791134975', 3, 'tr_0 tr_440000 tr_440100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440104, '越秀区', 440100, '', 0, 0, 'Y', '113.273426481', '23.135260120148', 3, 'tr_0 tr_440000 tr_440100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440105, '海珠区', 440100, '', 0, 0, 'H', '113.32353998097', '23.088981296648', 3, 'tr_0 tr_440000 tr_440100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440106, '天河区', 440100, '', 0, 0, 'T', '113.36850942428', '23.130357835105', 3, 'tr_0 tr_440000 tr_440100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440111, '白云区', 440100, '', 0, 0, 'B', '113.27943309062', '23.164316834456', 3, 'tr_0 tr_440000 tr_440100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440112, '黄埔区', 440100, '', 0, 0, 'H', '113.48707083969', '23.187491541425', 3, 'tr_0 tr_440000 tr_440100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440113, '番禺区', 440100, '', 0, 0, 'F', '113.39046958043', '22.943830731518', 3, 'tr_0 tr_440000 tr_440100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440114, '花都区', 440100, '', 0, 0, 'H', '113.22657580629', '23.411161504876', 3, 'tr_0 tr_440000 tr_440100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440115, '南沙区', 440100, '', 0, 0, 'N', '113.53143554372', '22.807929296528', 3, 'tr_0 tr_440000 tr_440100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440117, '从化区', 440100, '', 0, 0, 'C', '113.59358543922', '23.553985922578', 3, 'tr_0 tr_440000 tr_440100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440118, '增城区', 440100, '', 0, 0, 'Z', '113.8175456689', '23.266592400631', 3, 'tr_0 tr_440000 tr_440100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440203, '武江区', 440200, '', 0, 0, 'W', '113.59455578884', '24.798486030733', 3, 'tr_0 tr_440000 tr_440200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440204, '浈江区', 440200, '', 0, 0, 'Z', '113.61747740137', '24.810413749784', 3, 'tr_0 tr_440000 tr_440200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440205, '曲江区', 440200, '', 0, 0, 'Q', '113.61150106465', '24.68840784638', 3, 'tr_0 tr_440000 tr_440200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440222, '始兴县', 440200, '', 0, 0, 'S', '114.06856735205', '24.958558154346', 3, 'tr_0 tr_440000 tr_440200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440224, '仁化县', 440200, '', 0, 0, 'R', '113.75544293443', '25.092287524428', 3, 'tr_0 tr_440000 tr_440200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440229, '翁源县', 440200, '', 0, 0, 'W', '114.13642723669', '24.356594490867', 3, 'tr_0 tr_440000 tr_440200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440232, '乳源瑶族自治县', 440200, '', 0, 0, 'R', '113.28243136492', '24.782333322942', 3, 'tr_0 tr_440000 tr_440200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440233, '新丰县', 440200, '', 0, 0, 'X', '114.21351173078', '24.065546505164', 3, 'tr_0 tr_440000 tr_440200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440281, '乐昌市', 440200, '', 0, 0, 'L', '113.3545786821', '25.135591561195', 3, 'tr_0 tr_440000 tr_440200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440282, '南雄市', 440200, '', 0, 0, 'N', '114.31857889065', '25.123526537362', 3, 'tr_0 tr_440000 tr_440200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440303, '罗湖区', 440300, '', 0, 0, 'L', '114.13743190157', '22.554484875856', 3, 'tr_0 tr_440000 tr_440300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440304, '福田区', 440300, '', 0, 0, 'F', '114.06154700466', '22.528465912072', 3, 'tr_0 tr_440000 tr_440300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440305, '南山区', 440300, '', 0, 0, 'N', '113.93653916925', '22.538500195784', 3, 'tr_0 tr_440000 tr_440300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440306, '宝安区', 440300, '', 0, 0, 'B', '113.89042744066', '22.560032908925', 3, 'tr_0 tr_440000 tr_440300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440307, '龙岗区', 440300, '', 0, 0, 'L', '114.25445487896', '22.726016550781', 3, 'tr_0 tr_440000 tr_440300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440308, '盐田区', 440300, '', 0, 0, 'Y', '114.2434301551', '22.563437914836', 3, 'tr_0 tr_440000 tr_440300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440309, '龙华区', 440300, '', 0, 0, 'L', '114.04852876121', '22.757596649222', 3, 'tr_0 tr_440000 tr_440300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440310, '坪山区', 440300, '', 0, 0, 'P', '114.35047403625', '22.716233464749', 3, 'tr_0 tr_440000 tr_440300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440311, '光明区', 440300, '', 0, 0, 'G', '113.94256006193', '22.754465883635', 3, 'tr_0 tr_440000 tr_440300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440402, '香洲区', 440400, '', 0, 0, 'X', '113.55047243408', '22.273003861799', 3, 'tr_0 tr_440000 tr_440400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440403, '斗门区', 440400, '', 0, 0, 'D', '113.30346725453', '22.215515662229', 3, 'tr_0 tr_440000 tr_440400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440404, '金湾区', 440400, '', 0, 0, 'J', '113.36951705357', '22.152576780675', 3, 'tr_0 tr_440000 tr_440400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440507, '龙湖区', 440500, '', 0, 0, 'L', '116.72352464693', '23.377775780628', 3, 'tr_0 tr_440000 tr_440500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440511, '金平区', 440500, '', 0, 0, 'J', '116.70955006744', '23.371750385773', 3, 'tr_0 tr_440000 tr_440500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440512, '濠江区', 440500, '', 0, 0, 'H', '116.73351658895', '23.291546359757', 3, 'tr_0 tr_440000 tr_440500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440513, '潮阳区', 440500, '', 0, 0, 'C', '116.6085145027', '23.270854956943', 3, 'tr_0 tr_440000 tr_440500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440514, '潮南区', 440500, '', 0, 0, 'C', '116.43949131427', '23.256341432673', 3, 'tr_0 tr_440000 tr_440500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440515, '澄海区', 440500, '', 0, 0, 'C', '116.76242504839', '23.472341401523', 3, 'tr_0 tr_440000 tr_440500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440523, '南澳县', 440500, '', 0, 0, 'N', '117.03049603113', '23.427812045946', 3, 'tr_0 tr_440000 tr_440500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440604, '禅城区', 440600, '', 0, 0, 'C', '113.12950518241', '23.015374368816', 3, 'tr_0 tr_440000 tr_440600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440605, '南海区', 440600, '', 0, 0, 'N', '113.14944567828', '23.035011446003', 3, 'tr_0 tr_440000 tr_440600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440606, '顺德区', 440600, '', 0, 0, 'S', '113.30045343954', '22.810453426795', 3, 'tr_0 tr_440000 tr_440600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440607, '三水区', 440600, '', 0, 0, 'S', '112.90347085515', '23.161920493984', 3, 'tr_0 tr_440000 tr_440600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440608, '高明区', 440600, '', 0, 0, 'G', '112.89947240749', '22.90634960163', 3, 'tr_0 tr_440000 tr_440600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440703, '蓬江区', 440700, '', 0, 0, 'P', '113.08454642894', '22.601065786023', 3, 'tr_0 tr_440000 tr_440700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440704, '江海区', 440700, '', 0, 0, 'J', '113.11755718015', '22.566115451824', 3, 'tr_0 tr_440000 tr_440700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440705, '新会区', 440700, '', 0, 0, 'X', '113.03845482239', '22.46511306052', 3, 'tr_0 tr_440000 tr_440700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440781, '台山市', 440700, '', 0, 0, 'T', '112.80044482505', '22.257923470251', 3, 'tr_0 tr_440000 tr_440700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440783, '开平市', 440700, '', 0, 0, 'K', '112.70446429491', '22.382499490201', 3, 'tr_0 tr_440000 tr_440700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440784, '鹤山市', 440700, '', 0, 0, 'H', '112.97052666653', '22.771169431377', 3, 'tr_0 tr_440000 tr_440700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440785, '恩平市', 440700, '', 0, 0, 'E', '112.31143757848', '22.189035201534', 3, 'tr_0 tr_440000 tr_440700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440802, '赤坎区', 440800, '', 0, 0, 'C', '110.37253254096', '21.272134812703', 3, 'tr_0 tr_440000 tr_440800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440803, '霞山区', 440800, '', 0, 0, 'X', '110.40442535096', '21.198227185303', 3, 'tr_0 tr_440000 tr_440800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440804, '坡头区', 440800, '', 0, 0, 'P', '110.46256709711', '21.250376738599', 3, 'tr_0 tr_440000 tr_440800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440811, '麻章区', 440800, '', 0, 0, 'M', '110.34057918516', '21.269188766567', 3, 'tr_0 tr_440000 tr_440800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440823, '遂溪县', 440800, '', 0, 0, 'S', '110.25651530642', '21.383102962029', 3, 'tr_0 tr_440000 tr_440800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440825, '徐闻县', 440800, '', 0, 0, 'X', '110.18247274427', '20.331723686702', 3, 'tr_0 tr_440000 tr_440800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440881, '廉江市', 440800, '', 0, 0, 'L', '110.29244770646', '21.615816495305', 3, 'tr_0 tr_440000 tr_440800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440882, '雷州市', 440800, '', 0, 0, 'L', '110.10258050648', '20.919880592716', 3, 'tr_0 tr_440000 tr_440800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440883, '吴川市', 440800, '', 0, 0, 'W', '110.78645034015', '21.447262768557', 3, 'tr_0 tr_440000 tr_440800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440902, '茂南区', 440900, '', 0, 0, 'M', '110.92554576188', '21.647152082304', 3, 'tr_0 tr_440000 tr_440900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440904, '电白区', 440900, '', 0, 0, 'D', '111.02047123221', '21.520351188198', 3, 'tr_0 tr_440000 tr_440900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440981, '高州市', 440900, '', 0, 0, 'G', '110.85947386452', '21.924048896771', 3, 'tr_0 tr_440000 tr_440900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440982, '化州市', 440900, '', 0, 0, 'H', '110.6464310112', '21.67023109387', 3, 'tr_0 tr_440000 tr_440900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(440983, '信宜市', 440900, '', 0, 0, 'X', '110.95358169717', '22.36009314173', 3, 'tr_0 tr_440000 tr_440900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441202, '端州区', 441200, '', 0, 0, 'D', '112.49156022979', '23.057563726176', 3, 'tr_0 tr_440000 tr_441200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441203, '鼎湖区', 441200, '', 0, 0, 'D', '112.57443448255', '23.164308112716', 3, 'tr_0 tr_440000 tr_441200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441204, '高要区', 441200, '', 0, 0, 'G', '112.46444604577', '23.031895546866', 3, 'tr_0 tr_440000 tr_441200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441223, '广宁县', 441200, '', 0, 0, 'G', '112.44742387501', '23.641035726333', 3, 'tr_0 tr_440000 tr_441200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441224, '怀集县', 441200, '', 0, 0, 'H', '112.19146878783', '23.917842129185', 3, 'tr_0 tr_440000 tr_441200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441225, '封开县', 441200, '', 0, 0, 'F', '111.51852585255', '23.429768921261', 3, 'tr_0 tr_440000 tr_441200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441226, '德庆县', 441200, '', 0, 0, 'D', '111.79155377493', '23.15137330611', 3, 'tr_0 tr_440000 tr_441200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441284, '四会市', 441200, '', 0, 0, 'S', '112.7405791408', '23.332381005175', 3, 'tr_0 tr_440000 tr_441200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441302, '惠城区', 441300, '', 0, 0, 'H', '114.38949004962', '23.089725972544', 3, 'tr_0 tr_440000 tr_441300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441303, '惠阳区', 441300, '', 0, 0, 'H', '114.46346443037', '22.794720878571', 3, 'tr_0 tr_440000 tr_441300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441322, '博罗县', 441300, '', 0, 0, 'B', '114.29657265143', '23.178805592433', 3, 'tr_0 tr_440000 tr_441300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441323, '惠东县', 441300, '', 0, 0, 'H', '114.72642585138', '22.991443112002', 3, 'tr_0 tr_440000 tr_441300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441324, '龙门县', 441300, '', 0, 0, 'L', '114.26143022124', '23.733838340062', 3, 'tr_0 tr_440000 tr_441300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441402, '梅江区', 441400, '', 0, 0, 'M', '116.12353597667', '24.315878769038', 3, 'tr_0 tr_440000 tr_441400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441403, '梅县区', 441400, '', 0, 0, 'M', '116.08856170928', '24.270999314695', 3, 'tr_0 tr_440000 tr_441400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441422, '大埔县', 441400, '', 0, 0, 'D', '116.70155892129', '24.353459468582', 3, 'tr_0 tr_440000 tr_441400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441423, '丰顺县', 441400, '', 0, 0, 'F', '116.18845382094', '23.745738303255', 3, 'tr_0 tr_440000 tr_441400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441424, '五华县', 441400, '', 0, 0, 'W', '115.78248548653', '23.938408899571', 3, 'tr_0 tr_440000 tr_441400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441426, '平远县', 441400, '', 0, 0, 'P', '115.89747694601', '24.572414126137', 3, 'tr_0 tr_440000 tr_441400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441427, '蕉岭县', 441400, '', 0, 0, 'J', '116.17743924793', '24.664992548662', 3, 'tr_0 tr_440000 tr_441400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441481, '兴宁市', 441400, '', 0, 0, 'X', '115.73757946359', '24.142293779322', 3, 'tr_0 tr_440000 tr_441400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441502, '城区', 441500, '', 0, 0, 'C', '115.37153074806', '22.784551839489', 3, 'tr_0 tr_440000 tr_441500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441521, '海丰县', 441500, '', 0, 0, 'H', '115.32944477561', '22.972744260966', 3, 'tr_0 tr_440000 tr_441500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441523, '陆河县', 441500, '', 0, 0, 'L', '115.66648271471', '23.30767707649', 3, 'tr_0 tr_440000 tr_441500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441581, '陆丰市', 441500, '', 0, 0, 'L', '115.78802975191', '22.967876723873', 3, 'tr_0 tr_440000 tr_441500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441602, '源城区', 441600, '', 0, 0, 'Y', '114.70843899033', '23.740298338347', 3, 'tr_0 tr_440000 tr_441600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441621, '紫金县', 441600, '', 0, 0, 'Z', '115.19044771834', '23.641430253189', 3, 'tr_0 tr_440000 tr_441600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441622, '龙川县', 441600, '', 0, 0, 'L', '115.26655548485', '24.105850721955', 3, 'tr_0 tr_440000 tr_441600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441623, '连平县', 441600, '', 0, 0, 'L', '114.49544419635', '24.375808067414', 3, 'tr_0 tr_440000 tr_441600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441624, '和平县', 441600, '', 0, 0, 'H', '114.9454488143', '24.448252767689', 3, 'tr_0 tr_440000 tr_441600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441625, '东源县', 441600, '', 0, 0, 'D', '114.7535083252', '23.794257873114', 3, 'tr_0 tr_440000 tr_441600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441702, '江城区', 441700, '', 0, 0, 'J', '111.96145451801', '21.868127886755', 3, 'tr_0 tr_440000 tr_441700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441704, '阳东区', 441700, '', 0, 0, 'Y', '112.01857947215', '21.873996844319', 3, 'tr_0 tr_440000 tr_441700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441721, '阳西县', 441700, '', 0, 0, 'Y', '111.62448107725', '21.758700627505', 3, 'tr_0 tr_440000 tr_441700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441781, '阳春市', 441700, '', 0, 0, 'Y', '111.7975361303', '22.17601480732', 3, 'tr_0 tr_440000 tr_441700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441802, '清城区', 441800, '', 0, 0, 'Q', '113.06947663537', '23.704022037925', 3, 'tr_0 tr_440000 tr_441800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441803, '清新区', 441800, '', 0, 0, 'Q', '112.99155779512', '23.754270337093', 3, 'tr_0 tr_440000 tr_441800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441821, '佛冈县', 441800, '', 0, 0, 'F', '113.53844124873', '23.885475421111', 3, 'tr_0 tr_440000 tr_441800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441823, '阳山县', 441800, '', 0, 0, 'Y', '112.64751954085', '24.47094363588', 3, 'tr_0 tr_440000 tr_441800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441825, '连山壮族瑶族自治县', 441800, '', 0, 0, 'L', '112.10042570409', '24.576845604093', 3, 'tr_0 tr_440000 tr_441800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441826, '连南瑶族自治县', 441800, '', 0, 0, 'L', '112.29351728187', '24.73154858148', 3, 'tr_0 tr_440000 tr_441800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441881, '英德市', 441800, '', 0, 0, 'Y', '113.42144297474', '24.191939355217', 3, 'tr_0 tr_440000 tr_441800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441882, '连州市', 441800, '', 0, 0, 'L', '112.38357258887', '24.786466855047', 3, 'tr_0 tr_440000 tr_441800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900003, '东城街道办事处', 441900, '', 0, 0, 'D', '113.78961542643', '23.033927867022', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900004, '南城街道办事处', 441900, '', 0, 0, 'N', '113.74972154669', '23.02491560037', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900005, '万江街道办事处', 441900, '', 0, 0, 'W', '113.70128466119', '23.044382337638', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900006, '莞城街道办事处', 441900, '', 0, 0, 'G', '113.7555643548', '23.04532373021', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900101, '石碣镇', 441900, '', 0, 0, 'S', '113.81395530616', '23.105172244651', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900102, '石龙镇', 441900, '', 0, 0, 'S', '113.84749077289', '23.115219876975', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900103, '茶山镇', 441900, '', 0, 0, 'C', '113.89350241139', '23.069002516534', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900104, '石排镇', 441900, '', 0, 0, 'S', '113.96394649371', '23.088334509001', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900105, '企石镇', 441900, '', 0, 0, 'Q', '114.04851828338', '23.070690716193', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900106, '横沥镇', 441900, '', 0, 0, 'H', '113.98801324096', '23.030051448767', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900107, '桥头镇', 441900, '', 0, 0, 'Q', '114.10677408198', '23.020458678747', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900108, '谢岗镇', 441900, '', 0, 0, 'X', '114.19511437465', '22.946513843008', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900109, '东坑镇', 441900, '', 0, 0, 'D', '113.95246820282', '23.002958656049', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900110, '常平镇', 441900, '', 0, 0, 'C', '114.02458867145', '22.979369177741', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900111, '寮步镇', 441900, '', 0, 0, 'L', '113.88349112257', '22.996428153649', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900112, '樟木头镇', 441900, '', 0, 0, 'Z', '114.11559876672', '22.912795269745', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900113, '大朗镇', 441900, '', 0, 0, 'D', '113.94820653279', '22.912348752542', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900114, '黄江镇', 441900, '', 0, 0, 'H', '114.00621531625', '22.872431801821', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900115, '清溪镇', 441900, '', 0, 0, 'Q', '114.18744982903', '22.841601621999', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900116, '塘厦镇', 441900, '', 0, 0, 'T', '114.08442795001', '22.811576132112', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900117, '凤岗镇', 441900, '', 0, 0, 'F', '114.17560299034', '22.722315801247', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900118, '大岭山镇', 441900, '', 0, 0, 'D', '113.83293372133', '22.903546239236', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900119, '长安镇', 441900, '', 0, 0, 'Z', '113.76998309965', '22.795308241444', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900121, '虎门镇', 441900, '', 0, 0, 'H', '113.68188667267', '22.818449805406', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900122, '厚街镇', 441900, '', 0, 0, 'H', '113.7081456375', '22.923357615893', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900123, '沙田镇', 441900, '', 0, 0, 'S', '113.60821459687', '22.907479676518', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900124, '道滘镇', 441900, '', 0, 0, 'D', '113.66267069882', '22.982801242639', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900125, '洪梅镇', 441900, '', 0, 0, 'H', '113.6125183112', '22.978946913376', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900126, '麻涌镇', 441900, '', 0, 0, 'M', '113.58837988097', '23.057083015858', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900127, '望牛墩镇', 441900, '', 0, 0, 'W', '113.64023583492', '23.047597838769', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900128, '中堂镇', 441900, '', 0, 0, 'Z', '113.65890566238', '23.096485679975', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900129, '高埗镇', 441900, '', 0, 0, 'G', '113.74213386638', '23.100270479205', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900401, '松山湖管委会', 441900, '', 0, 0, 'S', '113.90386183402', '22.928504587758', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900402, '东莞港', 441900, '', 0, 0, 'D', '113.75842045788', '23.027308411643', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(441900403, '东莞生态园', 441900, '', 0, 0, 'D', '113.93331900631', '23.069150651008', 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(442000001, '石岐区街道办事处', 442000, '', 0, 0, 'S', '113.39476330111', '22.543405990677', 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(442000002, '东区街道办事处', 442000, '', 0, 0, 'D', '113.39942236263', '22.522314670791', 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(442000003, '火炬开发区街道办事处', 442000, '', 0, 0, 'H', '113.47638423802', '22.54191612433', 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(442000004, '西区街道办事处', 442000, '', 0, 0, 'X', '113.34742851429', '22.557446683319', 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(442000005, '南区街道办事处', 442000, '', 0, 0, 'N', '113.34166389111', '22.474593624741', 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(442000006, '五桂山街道办事处', 442000, '', 0, 0, 'W', '113.40930659782', '22.451434375841', 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(442000100, '小榄镇', 442000, '', 0, 0, 'X', '113.25710033351', '22.668653898989', 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(442000101, '黄圃镇', 442000, '', 0, 0, 'H', '113.38940119784', '22.732151367196', 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(442000102, '民众镇', 442000, '', 0, 0, 'M', '113.50030740281', '22.624234006676', 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(442000103, '东凤镇', 442000, '', 0, 0, 'D', '113.26337563889', '22.696772350456', 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(442000104, '东升镇', 442000, '', 0, 0, 'D', '113.31347763067', '22.605137527398', 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(442000105, '古镇镇', 442000, '', 0, 0, 'G', '113.18899941194', '22.636034421686', 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(442000106, '沙溪镇', 442000, '', 0, 0, 'S', '113.35710852331', '22.513668030794', 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(442000107, '坦洲镇', 442000, '', 0, 0, 'T', '113.46831862593', '22.283731940242', 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(442000108, '港口镇', 442000, '', 0, 0, 'G', '113.38354521878', '22.577121999043', 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(442000109, '三角镇', 442000, '', 0, 0, 'S', '113.42740190231', '22.685663488493', 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(442000110, '横栏镇', 442000, '', 0, 0, 'H', '113.24834255727', '22.574461443704', 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(442000111, '南头镇', 442000, '', 0, 0, 'N', '113.29481042537', '22.721261074602', 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(442000112, '阜沙镇', 442000, '', 0, 0, 'F', '113.34269477842', '22.666128002352', 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(442000113, '南朗镇', 442000, '', 0, 0, 'N', '113.56057493505', '22.519486447352', 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(442000114, '三乡镇', 442000, '', 0, 0, 'S', '113.42695556574', '22.371470122528', 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(442000115, '板芙镇', 442000, '', 0, 0, 'B', '113.33339573359', '22.395149046719', 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(442000116, '大涌镇', 442000, '', 0, 0, 'D', '113.29404791311', '22.483908949365', 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(442000117, '神湾镇', 442000, '', 0, 0, 'S', '113.35331518036', '22.32576323421', 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(445102, '湘桥区', 445100, '', 0, 0, 'X', '116.63446160819', '23.680686981566', 3, 'tr_0 tr_440000 tr_445100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(445103, '潮安区', 445100, '', 0, 0, 'C', '116.68452606069', '23.468357129831', 3, 'tr_0 tr_440000 tr_445100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(445122, '饶平县', 445100, '', 0, 0, 'R', '117.01044917588', '23.670347111195', 3, 'tr_0 tr_440000 tr_445100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(445202, '榕城区', 445200, '', 0, 0, 'R', '116.37351589492', '23.530746417966', 3, 'tr_0 tr_440000 tr_445200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(445203, '揭东区', 445200, '', 0, 0, 'J', '116.41845578398', '23.572485187047', 3, 'tr_0 tr_440000 tr_445200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(445222, '揭西县', 445200, '', 0, 0, 'J', '115.84856088728', '23.437299708209', 3, 'tr_0 tr_440000 tr_445200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(445224, '惠来县', 445200, '', 0, 0, 'H', '116.30144448456', '23.039645374525', 3, 'tr_0 tr_440000 tr_445200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(445281, '普宁市', 445200, '', 0, 0, 'P', '116.17244898117', '23.30363452186', 3, 'tr_0 tr_440000 tr_445200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430102, '芙蓉区', 430100, '', 0, 0, 'F', '113.03940774487', '28.191913247305', 3, 'tr_0 tr_430000 tr_430100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430103, '天心区', 430100, '', 0, 0, 'T', '112.99659225852', '28.118211217441', 3, 'tr_0 tr_430000 tr_430100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430104, '岳麓区', 430100, '', 0, 0, 'Y', '112.9374476441', '28.241488836473', 3, 'tr_0 tr_430000 tr_430100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430105, '开福区', 430100, '', 0, 0, 'K', '112.99258491764', '28.261378687684', 3, 'tr_0 tr_430000 tr_430100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430111, '雨花区', 430100, '', 0, 0, 'Y', '113.04242155986', '28.142232711654', 3, 'tr_0 tr_430000 tr_430100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430112, '望城区', 430100, '', 0, 0, 'W', '112.8244661432', '28.367403020376', 3, 'tr_0 tr_430000 tr_430100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430121, '长沙县', 430100, '', 0, 0, 'Z', '113.08755916596', '28.251818487944', 3, 'tr_0 tr_430000 tr_430100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430181, '浏阳市', 430100, '', 0, 0, 'L', '113.64939823851', '28.169832216071', 3, 'tr_0 tr_430000 tr_430100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(430182, '宁乡市', 430100, '', 0, 0, 'N', '112.55840691564', '28.284104536209', 3, 'tr_0 tr_430000 tr_430100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(445302, '云城区', 445300, '', 0, 0, 'Y', '112.05052923472', '22.933897802971', 3, 'tr_0 tr_440000 tr_445300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(445303, '云安区', 445300, '', 0, 0, 'Y', '112.00956308992', '23.076892611911', 3, 'tr_0 tr_440000 tr_445300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(445321, '新兴县', 445300, '', 0, 0, 'X', '112.23149683219', '22.701890082606', 3, 'tr_0 tr_440000 tr_445300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(445322, '郁南县', 445300, '', 0, 0, 'Y', '111.54155382446', '23.240174042653', 3, 'tr_0 tr_440000 tr_445300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(445381, '罗定市', 445300, '', 0, 0, 'L', '111.57648048166', '22.774296060763', 3, 'tr_0 tr_440000 tr_445300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450102, '兴宁区', 450100, '', 0, 0, 'X', '108.37544497422', '22.860290951255', 3, 'tr_0 tr_450000 tr_450100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450103, '青秀区', 450100, '', 0, 0, 'Q', '108.50143861009', '22.792227439631', 3, 'tr_0 tr_450000 tr_450100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450105, '江南区', 450100, '', 0, 0, 'J', '108.27949435764', '22.787045753588', 3, 'tr_0 tr_450000 tr_450100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450107, '西乡塘区', 450100, '', 0, 0, 'X', '108.31957243762', '22.839651509339', 3, 'tr_0 tr_450000 tr_450100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450108, '良庆区', 450100, '', 0, 0, 'L', '108.32751579392', '22.76284928359', 3, 'tr_0 tr_450000 tr_450100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450109, '邕宁区', 450100, '', 0, 0, 'Y', '108.49342024528', '22.76460044955', 3, 'tr_0 tr_450000 tr_450100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450110, '武鸣区', 450100, '', 0, 0, 'W', '108.28151653318', '23.164515606911', 3, 'tr_0 tr_450000 tr_450100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450123, '隆安县', 450100, '', 0, 0, 'L', '107.70257390338', '23.171585249828', 3, 'tr_0 tr_450000 tr_450100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450124, '马山县', 450100, '', 0, 0, 'M', '108.18356215633', '23.71387772536', 3, 'tr_0 tr_450000 tr_450100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450125, '上林县', 450100, '', 0, 0, 'S', '108.61145148078', '23.438518877663', 3, 'tr_0 tr_450000 tr_450100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450126, '宾阳县', 450100, '', 0, 0, 'B', '108.81650237947', '23.223700543767', 3, 'tr_0 tr_450000 tr_450100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450127, '横县', 450100, '', 0, 0, 'H', '109.2675678064', '22.685572608838', 3, 'tr_0 tr_450000 tr_450100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450202, '城中区', 450200, '', 0, 0, 'C', '109.4174821502', '24.321314069891', 3, 'tr_0 tr_450000 tr_450200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450203, '鱼峰区', 450200, '', 0, 0, 'Y', '109.44941628225', '24.318521699515', 3, 'tr_0 tr_450000 tr_450200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450204, '柳南区', 450200, '', 0, 0, 'L', '109.39155193285', '24.341578870912', 3, 'tr_0 tr_450000 tr_450200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450205, '柳北区', 450200, '', 0, 0, 'L', '109.40853179342', '24.367867017648', 3, 'tr_0 tr_450000 tr_450200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450206, '柳江区', 450200, '', 0, 0, 'L', '109.33244423878', '24.26081496535', 3, 'tr_0 tr_450000 tr_450200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450222, '柳城县', 450200, '', 0, 0, 'L', '109.25156152934', '24.656370391486', 3, 'tr_0 tr_450000 tr_450200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450223, '鹿寨县', 450200, '', 0, 0, 'L', '109.75755447547', '24.478622266898', 3, 'tr_0 tr_450000 tr_450200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450224, '融安县', 450200, '', 0, 0, 'R', '109.40456325934', '25.230511447128', 3, 'tr_0 tr_450000 tr_450200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450225, '融水苗族自治县', 450200, '', 0, 0, 'R', '109.26256083115', '25.072076504109', 3, 'tr_0 tr_450000 tr_450200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450226, '三江侗族自治县', 450200, '', 0, 0, 'S', '109.61454747223', '25.788830387788', 3, 'tr_0 tr_450000 tr_450200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450302, '秀峰区', 450300, '', 0, 0, 'X', '110.27043670622', '25.27961848567', 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450303, '叠彩区', 450300, '', 0, 0, 'D', '110.30846314624', '25.320233274843', 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450304, '象山区', 450300, '', 0, 0, 'X', '110.28742267527', '25.267930010211', 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450305, '七星区', 450300, '', 0, 0, 'Q', '110.32453805385', '25.2585670875', 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450311, '雁山区', 450300, '', 0, 0, 'Y', '110.3154792716', '25.066213543917', 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450312, '临桂区', 450300, '', 0, 0, 'L', '110.21858669186', '25.244301999271', 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450321, '阳朔县', 450300, '', 0, 0, 'Y', '110.50347503171', '24.784519191433', 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450323, '灵川县', 450300, '', 0, 0, 'L', '110.33253719492', '25.41554953076', 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450324, '全州县', 450300, '', 0, 0, 'Q', '111.07956895508', '25.934343027361', 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450325, '兴安县', 450300, '', 0, 0, 'X', '110.67851632807', '25.617567220037', 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450326, '永福县', 450300, '', 0, 0, 'Y', '109.989590831', '24.985577973084', 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450327, '灌阳县', 450300, '', 0, 0, 'G', '111.16755205093', '25.495120752051', 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450328, '龙胜各族自治县', 450300, '', 0, 0, 'L', '110.01749399674', '25.804116784254', 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450329, '资源县', 450300, '', 0, 0, 'Z', '110.6584391101', '26.048569077338', 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450330, '平乐县', 450300, '', 0, 0, 'P', '110.64944626347', '24.63963212806', 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450332, '恭城瑶族自治县', 450300, '', 0, 0, 'G', '110.8345596307', '24.837194365911', 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450381, '荔浦市', 450300, '', 0, 0, 'L', '110.40143677836', '24.494121641923', 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450403, '万秀区', 450400, '', 0, 0, 'W', '111.32751969101', '23.478845767296', 3, 'tr_0 tr_450000 tr_450400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450405, '长洲区', 450400, '', 0, 0, 'Z', '111.28149914043', '23.491509584406', 3, 'tr_0 tr_450000 tr_450400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450406, '龙圩区', 450400, '', 0, 0, 'L', '111.25344829326', '23.421414485718', 3, 'tr_0 tr_450000 tr_450400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450421, '苍梧县', 450400, '', 0, 0, 'C', '111.55554663956', '23.845998205466', 3, 'tr_0 tr_450000 tr_450400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450422, '藤县', 450400, '', 0, 0, 'T', '110.92149925488', '23.38100991555', 3, 'tr_0 tr_450000 tr_450400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450423, '蒙山县', 450400, '', 0, 0, 'M', '110.53141700425', '24.200017445935', 3, 'tr_0 tr_450000 tr_450400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450481, '岑溪市', 450400, '', 0, 0, 'C', '111.00143182659', '22.92462127872', 3, 'tr_0 tr_450000 tr_450400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450502, '海城区', 450500, '', 0, 0, 'H', '109.12452136755', '21.481065838236', 3, 'tr_0 tr_450000 tr_450500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450503, '银海区', 450500, '', 0, 0, 'Y', '109.14654476441', '21.454768668895', 3, 'tr_0 tr_450000 tr_450500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450512, '铁山港区', 450500, '', 0, 0, 'T', '109.42847264862', '21.53529504285', 3, 'tr_0 tr_450000 tr_450500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450521, '合浦县', 450500, '', 0, 0, 'H', '109.2134386113', '21.667005735642', 3, 'tr_0 tr_450000 tr_450500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450602, '港口区', 450600, '', 0, 0, 'G', '108.38648254385', '21.649565586624', 3, 'tr_0 tr_450000 tr_450600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450603, '防城区', 450600, '', 0, 0, 'F', '108.36044848238', '21.775411305197', 3, 'tr_0 tr_450000 tr_450600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450621, '上思县', 450600, '', 0, 0, 'S', '107.99044264125', '22.15991408311', 3, 'tr_0 tr_450000 tr_450600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450681, '东兴市', 450600, '', 0, 0, 'D', '107.97748898597', '21.55361543358', 3, 'tr_0 tr_450000 tr_450600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450802, '港北区', 450800, '', 0, 0, 'G', '109.57843298566', '23.117563632764', 3, 'tr_0 tr_450000 tr_450800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450803, '港南区', 450800, '', 0, 0, 'G', '109.6065534515', '23.08123957836', 3, 'tr_0 tr_450000 tr_450800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450804, '覃塘区', 450800, '', 0, 0, 'T', '109.45942672936', '23.133251089213', 3, 'tr_0 tr_450000 tr_450800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450821, '平南县', 450800, '', 0, 0, 'P', '110.39845197864', '23.545506098828', 3, 'tr_0 tr_450000 tr_450800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450881, '桂平市', 450800, '', 0, 0, 'G', '110.08552599672', '23.400048883699', 3, 'tr_0 tr_450000 tr_450800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450902, '玉州区', 450900, '', 0, 0, 'Y', '110.15743140022', '22.634492736172', 3, 'tr_0 tr_450000 tr_450900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450903, '福绵区', 450900, '', 0, 0, 'F', '110.08853765577', '22.563705412249', 3, 'tr_0 tr_450000 tr_450900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450921, '容县', 450900, '', 0, 0, 'R', '110.56453016229', '22.863665599935', 3, 'tr_0 tr_450000 tr_450900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'); -INSERT INTO `hg_sys_provinces` (`id`, `title`, `pid`, `short_title`, `areacode`, `zipcode`, `pinyin`, `lng`, `lat`, `level`, `tree`, `sort`, `status`, `created_at`, `updated_at`) VALUES -(450922, '陆川县', 450900, '', 0, 0, 'L', '110.27045619945', '22.327221527769', 3, 'tr_0 tr_450000 tr_450900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450923, '博白县', 450900, '', 0, 0, 'B', '109.98255305648', '22.278674815493', 3, 'tr_0 tr_450000 tr_450900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450924, '兴业县', 450900, '', 0, 0, 'X', '109.88155180701', '22.742267653423', 3, 'tr_0 tr_450000 tr_450900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450981, '北流市', 450900, '', 0, 0, 'B', '110.36057016581', '22.713958021611', 3, 'tr_0 tr_450000 tr_450900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451002, '右江区', 451000, '', 0, 0, 'Y', '106.62558913969', '23.907084503109', 3, 'tr_0 tr_450000 tr_451000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451021, '田阳县', 451000, '', 0, 0, 'T', '106.9214125525', '23.742005722478', 3, 'tr_0 tr_450000 tr_451000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451022, '田东县', 451000, '', 0, 0, 'T', '107.13249943541', '23.603129804015', 3, 'tr_0 tr_450000 tr_451000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451023, '平果县', 451000, '', 0, 0, 'P', '107.59657106849', '23.334922742592', 3, 'tr_0 tr_450000 tr_451000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451024, '德保县', 451000, '', 0, 0, 'D', '106.62158260728', '23.328994351286', 3, 'tr_0 tr_450000 tr_451000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451026, '那坡县', 451000, '', 0, 0, 'N', '105.83942261017', '23.393793831292', 3, 'tr_0 tr_450000 tr_451000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451027, '凌云县', 451000, '', 0, 0, 'L', '106.56841567705', '24.354015240604', 3, 'tr_0 tr_450000 tr_451000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451028, '乐业县', 451000, '', 0, 0, 'L', '106.56342972215', '24.783216467053', 3, 'tr_0 tr_450000 tr_451000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451029, '田林县', 451000, '', 0, 0, 'T', '106.23449791231', '24.300534611051', 3, 'tr_0 tr_450000 tr_451000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451030, '西林县', 451000, '', 0, 0, 'X', '105.10049410469', '24.495667790362', 3, 'tr_0 tr_450000 tr_451000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451031, '隆林各族自治县', 451000, '', 0, 0, 'L', '105.3504594704', '24.776813610296', 3, 'tr_0 tr_450000 tr_451000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451081, '靖西市', 451000, '', 0, 0, 'J', '106.42445269708', '23.140125669019', 3, 'tr_0 tr_450000 tr_451000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451102, '八步区', 451100, '', 0, 0, 'B', '111.55856737149', '24.417531040919', 3, 'tr_0 tr_450000 tr_451100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451103, '平桂区', 451100, '', 0, 0, 'P', '111.47841426578', '24.462001422773', 3, 'tr_0 tr_450000 tr_451100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451121, '昭平县', 451100, '', 0, 0, 'Z', '110.81757491928', '24.175106050636', 3, 'tr_0 tr_450000 tr_451100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451122, '钟山县', 451100, '', 0, 0, 'Z', '111.30958574015', '24.531673107939', 3, 'tr_0 tr_450000 tr_451100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451123, '富川瑶族自治县', 451100, '', 0, 0, 'F', '111.28451124863', '24.820159951323', 3, 'tr_0 tr_450000 tr_451100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451202, '金城江区', 451200, '', 0, 0, 'J', '108.04350707483', '24.695679382239', 3, 'tr_0 tr_450000 tr_451200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451203, '宜州区', 451200, '', 0, 0, 'Y', '108.64353158748', '24.491084367739', 3, 'tr_0 tr_450000 tr_451200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451221, '南丹县', 451200, '', 0, 0, 'N', '107.54748028934', '24.981849775485', 3, 'tr_0 tr_450000 tr_451200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451222, '天峨县', 451200, '', 0, 0, 'T', '107.17845647579', '25.005664155232', 3, 'tr_0 tr_450000 tr_451200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451223, '凤山县', 451200, '', 0, 0, 'F', '107.04841983631', '24.553217796777', 3, 'tr_0 tr_450000 tr_451200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451224, '东兰县', 451200, '', 0, 0, 'D', '107.3805041595', '24.516871463381', 3, 'tr_0 tr_450000 tr_451200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451225, '罗城仫佬族自治县', 451200, '', 0, 0, 'L', '108.91157445325', '24.783084996429', 3, 'tr_0 tr_450000 tr_451200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451226, '环江毛南族自治县', 451200, '', 0, 0, 'H', '108.26444306917', '24.832087938551', 3, 'tr_0 tr_450000 tr_451200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451227, '巴马瑶族自治县', 451200, '', 0, 0, 'B', '107.26648125302', '24.14726480427', 3, 'tr_0 tr_450000 tr_451200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451228, '都安瑶族自治县', 451200, '', 0, 0, 'D', '108.11145804765', '23.937331261923', 3, 'tr_0 tr_450000 tr_451200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451229, '大化瑶族自治县', 451200, '', 0, 0, 'D', '108.00441075294', '23.742818222963', 3, 'tr_0 tr_450000 tr_451200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451302, '兴宾区', 451300, '', 0, 0, 'X', '109.24149907034', '23.733211038144', 3, 'tr_0 tr_450000 tr_451300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451321, '忻城县', 451300, '', 0, 0, 'X', '108.67256239612', '24.071888636576', 3, 'tr_0 tr_450000 tr_451300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451322, '象州县', 451300, '', 0, 0, 'X', '109.71146215028', '23.979680993271', 3, 'tr_0 tr_450000 tr_451300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451323, '武宣县', 451300, '', 0, 0, 'W', '109.66944220328', '23.600404197633', 3, 'tr_0 tr_450000 tr_451300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451324, '金秀瑶族自治县', 451300, '', 0, 0, 'J', '110.19550625891', '24.136319486486', 3, 'tr_0 tr_450000 tr_451300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451381, '合山市', 451300, '', 0, 0, 'H', '108.89256576969', '23.81226007105', 3, 'tr_0 tr_450000 tr_451300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451402, '江州区', 451400, '', 0, 0, 'J', '107.35953321738', '22.411245728018', 3, 'tr_0 tr_450000 tr_451400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451421, '扶绥县', 451400, '', 0, 0, 'F', '107.91046515426', '22.641097136345', 3, 'tr_0 tr_450000 tr_451400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451422, '宁明县', 451400, '', 0, 0, 'N', '107.08352381902', '22.145884844184', 3, 'tr_0 tr_450000 tr_451400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451423, '龙州县', 451400, '', 0, 0, 'L', '106.86058190847', '22.348298905766', 3, 'tr_0 tr_450000 tr_451400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451424, '大新县', 451400, '', 0, 0, 'D', '107.20755690312', '22.836229044406', 3, 'tr_0 tr_450000 tr_451400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451425, '天等县', 451400, '', 0, 0, 'T', '107.14947264852', '23.08750581209', 3, 'tr_0 tr_450000 tr_451400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(451481, '凭祥市', 451400, '', 0, 0, 'P', '106.77352361814', '22.100152592954', 3, 'tr_0 tr_450000 tr_451400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460105, '秀英区', 460100, '', 0, 0, 'X', '110.30043588821', '20.013642385161', 3, 'tr_0 tr_460000 tr_460100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460106, '龙华区', 460100, '', 0, 0, 'L', '110.33554112854', '20.036320733521', 3, 'tr_0 tr_460000 tr_460100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460107, '琼山区', 460100, '', 0, 0, 'Q', '110.36052605901', '20.009150644491', 3, 'tr_0 tr_460000 tr_460100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460108, '美兰区', 460100, '', 0, 0, 'M', '110.37349839904', '20.034646217625', 3, 'tr_0 tr_460000 tr_460100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460202, '海棠区', 460200, '', 0, 0, 'H', '109.72350007292', '18.33787879371', 3, 'tr_0 tr_460000 tr_460200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460203, '吉阳区', 460200, '', 0, 0, 'J', '109.52055165827', '18.257057667262', 3, 'tr_0 tr_460000 tr_460200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460204, '天涯区', 460200, '', 0, 0, 'T', '109.46246255283', '18.306919633503', 3, 'tr_0 tr_460000 tr_460200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460205, '崖州区', 460200, '', 0, 0, 'Y', '109.22846124383', '18.44463053478', 3, 'tr_0 tr_460000 tr_460200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460321, '西沙群岛', 460300, '', 0, 0, 'X', '111.67308686126', '16.497085431044', 3, 'tr_0 tr_460000 tr_460300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460322, '南沙群岛', 460300, '', 0, 0, 'N', '112.66030170907', '4.9743661921368', 3, 'tr_0 tr_460000 tr_460300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460323, '中沙群岛的岛礁及其海域', 460300, '', 0, 0, 'Z', '112.34048204137', '16.838953334409', 3, 'tr_0 tr_460000 tr_460300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460400100, '那大镇', 460400, '', 0, 0, 'N', '109.552961497', '19.52127763772', 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460400101, '和庆镇', 460400, '', 0, 0, 'H', '109.64738779153', '19.531275426074', 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460400102, '南丰镇', 460400, '', 0, 0, 'N', '109.6054369934', '19.346095790543', 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460400103, '大成镇', 460400, '', 0, 0, 'D', '109.42116531507', '19.548276240672', 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460400104, '雅星镇', 460400, '', 0, 0, 'Y', '109.19716320191', '19.517956948407', 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460400105, '兰洋镇', 460400, '', 0, 0, 'L', '109.67367138789', '19.466430878427', 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460400106, '光村镇', 460400, '', 0, 0, 'G', '109.50795789562', '19.809145677126', 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460400107, '木棠镇', 460400, '', 0, 0, 'M', '109.35673473687', '19.809926770596', 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460400108, '海头镇', 460400, '', 0, 0, 'H', '108.95966166166', '19.509695855917', 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460400109, '峨蔓镇', 460400, '', 0, 0, 'E', '109.30390924357', '19.863144800976', 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460400111, '王五镇', 460400, '', 0, 0, 'W', '109.33806829512', '19.645800769747', 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460400112, '白马井镇', 460400, '', 0, 0, 'B', '109.58745583569', '19.527146110044', 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460400113, '中和镇', 460400, '', 0, 0, 'Z', '109.35613533713', '19.749465537088', 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460400114, '排浦镇', 460400, '', 0, 0, 'P', '109.16975400269', '19.644673698003', 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460400115, '东成镇', 460400, '', 0, 0, 'D', '109.4680333127', '19.709924104042', 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460400116, '新州镇', 460400, '', 0, 0, 'X', '109.32260133284', '19.720234743232', 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460400499, '洋浦经济开发区', 460400, '', 0, 0, 'Y', '109.19229656623', '19.775218244804', 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(460400500, '华南热作学院', 460400, '', 0, 0, 'H', '109.58745583569', '19.527146110044', 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(469001, '五指山市', 469000, '', 0, 0, 'W', '109.52354032071', '18.780994100706', 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(469002, '琼海市', 469000, '', 0, 0, 'Q', '110.48054452595', '19.264254019918', 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(469005, '文昌市', 469000, '', 0, 0, 'W', '110.80450870632', '19.549062083121', 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(469006, '万宁市', 469000, '', 0, 0, 'W', '110.39943436555', '18.800106988303', 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(469007, '东方市', 469000, '', 0, 0, 'D', '108.65856652679', '19.101104731289', 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(469021, '定安县', 469000, '', 0, 0, 'D', '104.36878601078', '31.589181642776', 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(469022, '屯昌县', 469000, '', 0, 0, 'T', '110.10857732457', '19.357374924278', 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(469023, '澄迈县', 469000, '', 0, 0, 'C', '110.01351091011', '19.744348671646', 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(469024, '临高县', 469000, '', 0, 0, 'L', '109.69744301483', '19.919474770278', 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(469025, '白沙黎族自治县', 469000, '', 0, 0, 'B', '109.45747066911', '19.231378733013', 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(469026, '昌江黎族自治县', 469000, '', 0, 0, 'C', '109.06246408734', '19.303997876684', 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(469027, '乐东黎族自治县', 469000, '', 0, 0, 'L', '109.18050798895', '18.755871493855', 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(469028, '陵水黎族自治县', 469000, '', 0, 0, 'L', '110.04446409255', '18.512331595699', 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(469029, '保亭黎族苗族自治县', 469000, '', 0, 0, 'B', '109.7034815143', '18.646909955376', 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(469030, '琼中黎族苗族自治县', 469000, '', 0, 0, 'Q', '109.84451062847', '19.039163789181', 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500101, '万州区', 500100, '', 0, 0, 'W', '108.4155583705', '30.813621636708', 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500102, '涪陵区', 500100, '', 0, 0, 'F', '107.39641979754', '29.709278197979', 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500103, '渝中区', 500100, '', 0, 0, 'Y', '106.57544006681', '29.559090182994', 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500104, '大渡口区', 500100, '', 0, 0, 'D', '106.48853359011', '29.490107128556', 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500105, '江北区', 500100, '', 0, 0, 'J', '112.85530302042', '35.520558754673', 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500106, '沙坪坝区', 500100, '', 0, 0, 'S', '106.46446511093', '29.547192516541', 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500107, '九龙坡区', 500100, '', 0, 0, 'J', '106.51755873943', '29.507927715553', 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500108, '南岸区', 500100, '', 0, 0, 'N', '106.6684297786', '29.502683098835', 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500109, '北碚区', 500100, '', 0, 0, 'B', '106.40356933975', '29.811602753904', 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500110, '綦江区', 500100, '', 0, 0, 'Q', '106.65748419545', '29.034113748311', 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500111, '大足区', 500100, '', 0, 0, 'D', '105.72840462545', '29.713113506077', 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500112, '渝北区', 500100, '', 0, 0, 'Y', '106.6375590606', '29.723927343007', 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500113, '巴南区', 500100, '', 0, 0, 'B', '106.54745425696', '29.40847473977', 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500114, '黔江区', 500100, '', 0, 0, 'Q', '108.77759119835', '29.53881256766', 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500115, '长寿区', 500100, '', 0, 0, 'Z', '107.08753107007', '29.863520067323', 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500116, '江津区', 500100, '', 0, 0, 'J', '106.26559760838', '29.295884374465', 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500117, '合川区', 500100, '', 0, 0, 'H', '106.28254108758', '29.978181239534', 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500118, '永川区', 500100, '', 0, 0, 'Y', '105.93349936145', '29.362046335949', 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500119, '南川区', 500100, '', 0, 0, 'N', '107.10558512437', '29.163478599606', 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500120, '璧山区', 500100, '', 0, 0, 'B', '106.23347456267', '29.598346607316', 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500151, '铜梁区', 500100, '', 0, 0, 'T', '106.06344949411', '29.850508778722', 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500152, '潼南区', 500100, '', 0, 0, 'T', '105.84739903617', '30.197314239664', 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500153, '荣昌区', 500100, '', 0, 0, 'R', '105.60141979928', '29.41130739669', 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500154, '开州区', 500100, '', 0, 0, 'K', '108.39949765612', '31.166644113193', 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500155, '梁平区', 500100, '', 0, 0, 'L', '107.77609725763', '30.660553255023', 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500156, '武隆区', 500100, '', 0, 0, 'W', '112.85530302042', '35.520558754673', 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500229, '城口县', 500200, '', 0, 0, 'C', '108.67161164256', '31.953390746293', 3, 'tr_0 tr_500000 tr_500200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500230, '丰都县', 500200, '', 0, 0, 'F', '107.7374806182', '29.869412789214', 3, 'tr_0 tr_500000 tr_500200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500231, '垫江县', 500200, '', 0, 0, 'D', '107.33956587472', '30.3332939685', 3, 'tr_0 tr_500000 tr_500200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500233, '忠县', 500200, '', 0, 0, 'Z', '', '', 3, 'tr_0 tr_500000 tr_500200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500235, '云阳县', 500200, '', 0, 0, 'Y', '108.7034475', '30.936611271975', 3, 'tr_0 tr_500000 tr_500200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500236, '奉节县', 500200, '', 0, 0, 'F', '109.47047275631', '31.024601766549', 3, 'tr_0 tr_500000 tr_500200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500237, '巫山县', 500200, '', 0, 0, 'W', '109.88554550703', '31.080518811736', 3, 'tr_0 tr_500000 tr_500200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500238, '巫溪县', 500200, '', 0, 0, 'W', '109.576402559', '31.404880009858', 3, 'tr_0 tr_500000 tr_500200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500240, '石柱土家族自治县', 500200, '', 0, 0, 'S', '108.12041416638', '30.006108697869', 3, 'tr_0 tr_500000 tr_500200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500241, '秀山土家族苗族自治县', 500200, '', 0, 0, 'X', '109.01357389981', '28.453447864286', 3, 'tr_0 tr_500000 tr_500200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500242, '酉阳土家族苗族自治县', 500200, '', 0, 0, 'Y', '108.7745860071', '28.847040258674', 3, 'tr_0 tr_500000 tr_500200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(500243, '彭水苗族土家族自治县', 500200, '', 0, 0, 'P', '108.17257803588', '29.299462290443', 3, 'tr_0 tr_500000 tr_500200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510104, '锦江区', 510100, '', 0, 0, 'J', '104.0895617566', '30.661904490317', 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510105, '青羊区', 510100, '', 0, 0, 'Q', '104.06744547494', '30.680037807007', 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510106, '金牛区', 510100, '', 0, 0, 'J', '104.05740358714', '30.697356042874', 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510107, '武侯区', 510100, '', 0, 0, 'W', '104.04942447828', '30.648712685321', 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510108, '成华区', 510100, '', 0, 0, 'C', '104.10859155035', '30.665589283983', 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510112, '龙泉驿区', 510100, '', 0, 0, 'L', '104.28139696436', '30.562697841', 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510113, '青白江区', 510100, '', 0, 0, 'Q', '104.25751245813', '30.884421372736', 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510114, '新都区', 510100, '', 0, 0, 'X', '104.16539284504', '30.829407468191', 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510115, '温江区', 510100, '', 0, 0, 'W', '103.86357306318', '30.688486836627', 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510116, '双流区', 510100, '', 0, 0, 'S', '103.93039154227', '30.580399352821', 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510117, '郫都区', 510100, '', 0, 0, 'P', '103.90544568809', '30.799537653573', 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510121, '金堂县', 510100, '', 0, 0, 'J', '104.41844263262', '30.868358423946', 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510129, '大邑县', 510100, '', 0, 0, 'D', '103.52752981767', '30.593155402402', 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510131, '蒲江县', 510100, '', 0, 0, 'P', '103.51257132415', '30.202500428139', 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510132, '新津县', 510100, '', 0, 0, 'X', '103.81743303795', '30.416363953297', 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510181, '都江堰市', 510100, '', 0, 0, 'D', '103.65353360443', '30.994256893542', 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510182, '彭州市', 510100, '', 0, 0, 'P', '103.96556137078', '30.995564002629', 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510183, '邛崃市', 510100, '', 0, 0, 'Q', '103.47048112964', '30.416398600854', 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510184, '崇州市', 510100, '', 0, 0, 'C', '103.67943336923', '30.636595891379', 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510185, '简阳市', 510100, '', 0, 0, 'J', '104.55349406265', '30.417451491353', 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510302, '自流井区', 510300, '', 0, 0, 'Z', '104.7834473259', '29.343498562348', 3, 'tr_0 tr_510000 tr_510300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510303, '贡井区', 510300, '', 0, 0, 'G', '104.72155659154', '29.351476269522', 3, 'tr_0 tr_510000 tr_510300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510304, '大安区', 510300, '', 0, 0, 'D', '104.78041635328', '29.369928541322', 3, 'tr_0 tr_510000 tr_510300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510311, '沿滩区', 510300, '', 0, 0, 'Y', '104.88040907516', '29.278797205251', 3, 'tr_0 tr_510000 tr_510300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510321, '荣县', 510300, '', 0, 0, 'R', '104.42345759121', '29.45180089858', 3, 'tr_0 tr_510000 tr_510300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510322, '富顺县', 510300, '', 0, 0, 'F', '104.98149440603', '29.186886257831', 3, 'tr_0 tr_510000 tr_510300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510402, '东区', 510400, '', 0, 0, 'D', '101.72554117091', '26.588033173333', 3, 'tr_0 tr_510000 tr_510400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510403, '西区', 510400, '', 0, 0, 'X', '101.72554117091', '26.588033173333', 3, 'tr_0 tr_510000 tr_510400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510411, '仁和区', 510400, '', 0, 0, 'R', '101.74444996291', '26.504019493295', 3, 'tr_0 tr_510000 tr_510400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510421, '米易县', 510400, '', 0, 0, 'M', '102.1164404304', '26.89696797612', 3, 'tr_0 tr_510000 tr_510400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510422, '盐边县', 510400, '', 0, 0, 'Y', '101.86049854831', '26.688767481964', 3, 'tr_0 tr_510000 tr_510400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510502, '江阳区', 510500, '', 0, 0, 'J', '105.44154513382', '28.884671972905', 3, 'tr_0 tr_510000 tr_510500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510503, '纳溪区', 510500, '', 0, 0, 'N', '105.37740854586', '28.779359901658', 3, 'tr_0 tr_510000 tr_510500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510504, '龙马潭区', 510500, '', 0, 0, 'L', '105.4445442166', '28.919012274486', 3, 'tr_0 tr_510000 tr_510500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510521, '泸县', 510500, '', 0, 0, 'L', '105.38845608667', '29.157626295708', 3, 'tr_0 tr_510000 tr_510500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510522, '合江县', 510500, '', 0, 0, 'H', '105.83843195885', '28.81779304284', 3, 'tr_0 tr_510000 tr_510500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510524, '叙永县', 510500, '', 0, 0, 'X', '105.45150761142', '28.161714341911', 3, 'tr_0 tr_510000 tr_510500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510525, '古蔺县', 510500, '', 0, 0, 'G', '105.81947079565', '28.044745368759', 3, 'tr_0 tr_510000 tr_510500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510603, '旌阳区', 510600, '', 0, 0, 'J', '104.42343882821', '31.148596291553', 3, 'tr_0 tr_510000 tr_510600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510604, '罗江区', 510600, '', 0, 0, 'L', '104.51741416083', '31.324178639826', 3, 'tr_0 tr_510000 tr_510600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510623, '中江县', 510600, '', 0, 0, 'Z', '104.68553015058', '31.038953695302', 3, 'tr_0 tr_510000 tr_510600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510681, '广汉市', 510600, '', 0, 0, 'G', '104.28842189311', '30.982415239743', 3, 'tr_0 tr_510000 tr_510600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510682, '什邡市', 510600, '', 0, 0, 'S', '104.17442710355', '31.132889048238', 3, 'tr_0 tr_510000 tr_510600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510683, '绵竹市', 510600, '', 0, 0, 'M', '104.227609305', '31.343592258211', 3, 'tr_0 tr_510000 tr_510600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510703, '涪城区', 510700, '', 0, 0, 'F', '104.76342033491', '31.46131438858', 3, 'tr_0 tr_510000 tr_510700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510704, '游仙区', 510700, '', 0, 0, 'Y', '104.77242899171', '31.479904474058', 3, 'tr_0 tr_510000 tr_510700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510705, '安州区', 510700, '', 0, 0, 'A', '104.5735550213', '31.540750527876', 3, 'tr_0 tr_510000 tr_510700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510722, '三台县', 510700, '', 0, 0, 'S', '105.10148979833', '31.101585571238', 3, 'tr_0 tr_510000 tr_510700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510723, '盐亭县', 510700, '', 0, 0, 'Y', '105.39550321547', '31.214318764837', 3, 'tr_0 tr_510000 tr_510700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510725, '梓潼县', 510700, '', 0, 0, 'Z', '105.17756684281', '31.648313467681', 3, 'tr_0 tr_510000 tr_510700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510726, '北川羌族自治县', 510700, '', 0, 0, 'B', '104.36158555316', '31.963084103415', 3, 'tr_0 tr_510000 tr_510700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510727, '平武县', 510700, '', 0, 0, 'P', '104.53542150325', '32.414681977696', 3, 'tr_0 tr_510000 tr_510700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510781, '江油市', 510700, '', 0, 0, 'J', '104.75241160088', '31.784128193388', 3, 'tr_0 tr_510000 tr_510700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510802, '利州区', 510800, '', 0, 0, 'L', '105.85242622329', '32.440207812726', 3, 'tr_0 tr_510000 tr_510800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510811, '昭化区', 510800, '', 0, 0, 'Z', '105.96941892782', '32.329618490159', 3, 'tr_0 tr_510000 tr_510800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510812, '朝天区', 510800, '', 0, 0, 'C', '105.8965888086', '32.649726240308', 3, 'tr_0 tr_510000 tr_510800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510821, '旺苍县', 510800, '', 0, 0, 'W', '106.29649124536', '32.235097383079', 3, 'tr_0 tr_510000 tr_510800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510822, '青川县', 510800, '', 0, 0, 'Q', '105.24540705459', '32.5816168573', 3, 'tr_0 tr_510000 tr_510800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510823, '剑阁县', 510800, '', 0, 0, 'J', '105.53157601887', '32.293478516773', 3, 'tr_0 tr_510000 tr_510800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510824, '苍溪县', 510800, '', 0, 0, 'C', '105.9414826146', '31.738684400617', 3, 'tr_0 tr_510000 tr_510800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510903, '船山区', 510900, '', 0, 0, 'C', '105.5745228375', '30.531470607829', 3, 'tr_0 tr_510000 tr_510900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510904, '安居区', 510900, '', 0, 0, 'A', '105.46246730988', '30.361496469746', 3, 'tr_0 tr_510000 tr_510900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510921, '蓬溪县', 510900, '', 0, 0, 'P', '105.71344605411', '30.763751441791', 3, 'tr_0 tr_510000 tr_510900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510922, '射洪县', 510900, '', 0, 0, 'S', '105.39450950992', '30.877138522337', 3, 'tr_0 tr_510000 tr_510900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(510923, '大英县', 510900, '', 0, 0, 'D', '105.24340392313', '30.600810129921', 3, 'tr_0 tr_510000 tr_510900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511002, '市中区', 511000, '', 0, 0, 'S', '105.07457421786', '29.592710148736', 3, 'tr_0 tr_510000 tr_511000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511011, '东兴区', 511000, '', 0, 0, 'D', '105.08254748773', '29.598485728583', 3, 'tr_0 tr_510000 tr_511000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511024, '威远县', 511000, '', 0, 0, 'W', '104.6744982286', '29.533634931412', 3, 'tr_0 tr_510000 tr_511000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511025, '资中县', 511000, '', 0, 0, 'Z', '104.85849482242', '29.770234032565', 3, 'tr_0 tr_510000 tr_511000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511071, '内江经济开发区', 511000, '', 0, 0, 'N', '105.064588025', '29.58588653832', 3, 'tr_0 tr_510000 tr_511000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511083, '隆昌市', 511000, '', 0, 0, 'L', '105.29457175243', '29.345244662083', 3, 'tr_0 tr_510000 tr_511000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511102, '市中区', 511100, '', 0, 0, 'S', '103.76755865552', '29.561363941633', 3, 'tr_0 tr_510000 tr_511100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511111, '沙湾区', 511100, '', 0, 0, 'S', '103.55643566073', '29.419272499245', 3, 'tr_0 tr_510000 tr_511100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511112, '五通桥区', 511100, '', 0, 0, 'W', '103.82445508074', '29.413185014439', 3, 'tr_0 tr_510000 tr_511100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511113, '金口河区', 511100, '', 0, 0, 'J', '103.08539389554', '29.250803570124', 3, 'tr_0 tr_510000 tr_511100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511123, '犍为县', 511100, '', 0, 0, '', '', '', 3, 'tr_0 tr_510000 tr_511100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511124, '井研县', 511100, '', 0, 0, 'J', '104.07651071353', '29.65730305908', 3, 'tr_0 tr_510000 tr_511100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511126, '夹江县', 511100, '', 0, 0, 'J', '103.57841009994', '29.743846302985', 3, 'tr_0 tr_510000 tr_511100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511129, '沐川县', 511100, '', 0, 0, 'M', '103.90846703743', '28.962888278216', 3, 'tr_0 tr_510000 tr_511100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511132, '峨边彝族自治县', 511100, '', 0, 0, 'E', '103.26857725338', '29.236089109563', 3, 'tr_0 tr_510000 tr_511100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511133, '马边彝族自治县', 511100, '', 0, 0, 'M', '103.55245419105', '28.841736014812', 3, 'tr_0 tr_510000 tr_511100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511181, '峨眉山市', 511100, '', 0, 0, 'E', '103.4915455741', '29.606975527462', 3, 'tr_0 tr_510000 tr_511100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511302, '顺庆区', 511300, '', 0, 0, 'S', '106.09841065838', '30.802753098595', 3, 'tr_0 tr_510000 tr_511300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511303, '高坪区', 511300, '', 0, 0, 'G', '106.12554047291', '30.787254931592', 3, 'tr_0 tr_510000 tr_511300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511304, '嘉陵区', 511300, '', 0, 0, 'J', '106.07843297265', '30.764895560139', 3, 'tr_0 tr_510000 tr_511300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511321, '南部县', 511300, '', 0, 0, 'N', '106.04357826971', '31.353705301526', 3, 'tr_0 tr_510000 tr_511300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511322, '营山县', 511300, '', 0, 0, 'Y', '106.57240802852', '31.083002970199', 3, 'tr_0 tr_510000 tr_511300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511323, '蓬安县', 511300, '', 0, 0, 'P', '106.41848194209', '31.034630778271', 3, 'tr_0 tr_510000 tr_511300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511324, '仪陇县', 511300, '', 0, 0, 'Y', '106.30943016844', '31.277597359981', 3, 'tr_0 tr_510000 tr_511300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511325, '西充县', 511300, '', 0, 0, 'X', '105.90761137653', '31.000688020792', 3, 'tr_0 tr_510000 tr_511300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511381, '阆中市', 511300, '', 0, 0, 'L', '106.01156526642', '31.56407455364', 3, 'tr_0 tr_510000 tr_511300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511402, '东坡区', 511400, '', 0, 0, 'D', '103.83852480217', '30.048272134435', 3, 'tr_0 tr_510000 tr_511400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511403, '彭山区', 511400, '', 0, 0, 'P', '103.87955823007', '30.19885441686', 3, 'tr_0 tr_510000 tr_511400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511421, '仁寿县', 511400, '', 0, 0, 'R', '104.14047690443', '30.001663984301', 3, 'tr_0 tr_510000 tr_511400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511423, '洪雅县', 511400, '', 0, 0, 'H', '103.37960224488', '29.910615837469', 3, 'tr_0 tr_510000 tr_511400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511424, '丹棱县', 511400, '', 0, 0, 'D', '103.51958331729', '30.020362794872', 3, 'tr_0 tr_510000 tr_511400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511425, '青神县', 511400, '', 0, 0, 'Q', '103.85355883179', '29.837054743717', 3, 'tr_0 tr_510000 tr_511400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511502, '翠屏区', 511500, '', 0, 0, 'C', '104.62643798553', '28.772051773027', 3, 'tr_0 tr_510000 tr_511500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511503, '南溪区', 511500, '', 0, 0, 'N', '104.97651330198', '28.851503648027', 3, 'tr_0 tr_510000 tr_511500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511504, '叙州区', 511500, '', 0, 0, 'X', '104.53944275624', '28.696246394752', 3, 'tr_0 tr_510000 tr_511500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511523, '江安县', 511500, '', 0, 0, 'J', '105.07359488519', '28.729609721855', 3, 'tr_0 tr_510000 tr_511500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511524, '长宁县', 511500, '', 0, 0, 'Z', '104.92756445509', '28.588133452699', 3, 'tr_0 tr_510000 tr_511500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511525, '高县', 511500, '', 0, 0, 'G', '104.52441132032', '28.442510804102', 3, 'tr_0 tr_510000 tr_511500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511526, '珙县', 511500, '', 0, 0, 'G', '104.71557459549', '28.444319765248', 3, 'tr_0 tr_510000 tr_511500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511527, '筠连县', 511500, '', 0, 0, 'Y', '104.51740642378', '28.170174457648', 3, 'tr_0 tr_510000 tr_511500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511528, '兴文县', 511500, '', 0, 0, 'X', '105.24240230064', '28.309904884117', 3, 'tr_0 tr_510000 tr_511500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511529, '屏山县', 511500, '', 0, 0, 'P', '104.35267533908', '28.834274966477', 3, 'tr_0 tr_510000 tr_511500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511602, '广安区', 511600, '', 0, 0, 'G', '106.64853115608', '30.479768100142', 3, 'tr_0 tr_510000 tr_511600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511603, '前锋区', 511600, '', 0, 0, 'Q', '106.90447959588', '30.506435157767', 3, 'tr_0 tr_510000 tr_511600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511621, '岳池县', 511600, '', 0, 0, 'Y', '106.44641061972', '30.54411986458', 3, 'tr_0 tr_510000 tr_511600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511622, '武胜县', 511600, '', 0, 0, 'W', '106.3024617431', '30.355495660378', 3, 'tr_0 tr_510000 tr_511600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511623, '邻水县', 511600, '', 0, 0, 'L', '106.93640258896', '30.341072518332', 3, 'tr_0 tr_510000 tr_511600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511681, '华蓥市', 511600, '', 0, 0, 'H', '106.78946181601', '30.396307084289', 3, 'tr_0 tr_510000 tr_511600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511702, '通川区', 511700, '', 0, 0, 'T', '107.51144711201', '31.220931804105', 3, 'tr_0 tr_510000 tr_511700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511703, '达川区', 511700, '', 0, 0, 'D', '107.51841059667', '31.202393360554', 3, 'tr_0 tr_510000 tr_511700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511722, '宣汉县', 511700, '', 0, 0, 'X', '107.7335335663', '31.359754823662', 3, 'tr_0 tr_510000 tr_511700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511723, '开江县', 511700, '', 0, 0, 'K', '107.87542487414', '31.089372149066', 3, 'tr_0 tr_510000 tr_511700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511724, '大竹县', 511700, '', 0, 0, 'D', '107.21157970735', '30.74207661791', 3, 'tr_0 tr_510000 tr_511700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511725, '渠县', 511700, '', 0, 0, 'Q', '106.97958296702', '30.842299283481', 3, 'tr_0 tr_510000 tr_511700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511771, '达州经济开发区', 511700, '', 0, 0, 'D', '107.47459385898', '31.214307723927', 3, 'tr_0 tr_510000 tr_511700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511781, '万源市', 511700, '', 0, 0, 'W', '108.04154069684', '32.087420847789', 3, 'tr_0 tr_510000 tr_511700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511802, '雨城区', 511800, '', 0, 0, 'Y', '103.03957520533', '30.011061644393', 3, 'tr_0 tr_510000 tr_511800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511803, '名山区', 511800, '', 0, 0, 'M', '103.1154857938', '30.075913663382', 3, 'tr_0 tr_510000 tr_511800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511822, '荥经县', 511800, '', 0, 0, 'X', '102.85343551293', '29.799193512656', 3, 'tr_0 tr_510000 tr_511800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511823, '汉源县', 511800, '', 0, 0, 'H', '102.65857589024', '29.350217385987', 3, 'tr_0 tr_510000 tr_511800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511824, '石棉县', 511800, '', 0, 0, 'S', '102.36640453848', '29.23430487759', 3, 'tr_0 tr_510000 tr_511800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511825, '天全县', 511800, '', 0, 0, 'T', '102.76453022767', '30.072472953275', 3, 'tr_0 tr_510000 tr_511800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511826, '芦山县', 511800, '', 0, 0, 'L', '102.93452771831', '30.149873189563', 3, 'tr_0 tr_510000 tr_511800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511827, '宝兴县', 511800, '', 0, 0, 'B', '102.82148423429', '30.374082112445', 3, 'tr_0 tr_510000 tr_511800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511902, '巴州区', 511900, '', 0, 0, 'B', '106.77551310771', '31.857685602645', 3, 'tr_0 tr_510000 tr_511900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511903, '恩阳区', 511900, '', 0, 0, 'E', '106.63558190249', '31.802614044176', 3, 'tr_0 tr_510000 tr_511900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511921, '通江县', 511900, '', 0, 0, 'T', '107.25151684321', '31.917714346881', 3, 'tr_0 tr_510000 tr_511900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511922, '南江县', 511900, '', 0, 0, 'N', '106.83448345088', '32.352531654165', 3, 'tr_0 tr_510000 tr_511900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511923, '平昌县', 511900, '', 0, 0, 'P', '107.11059310023', '31.566185810095', 3, 'tr_0 tr_510000 tr_511900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(511971, '巴中经济开发区', 511900, '', 0, 0, 'B', '106.75158530316', '31.872888585957', 3, 'tr_0 tr_510000 tr_511900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(512002, '雁江区', 512000, '', 0, 0, 'Y', '104.65842441063', '30.123753456785', 3, 'tr_0 tr_510000 tr_512000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(512021, '安岳县', 512000, '', 0, 0, 'A', '105.34245423273', '30.103392734494', 3, 'tr_0 tr_510000 tr_512000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(512022, '乐至县', 512000, '', 0, 0, 'L', '105.02747697007', '30.282348346', 3, 'tr_0 tr_510000 tr_512000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513201, '马尔康市', 513200, '', 0, 0, 'M', '102.21350208208', '31.911747955648', 3, 'tr_0 tr_510000 tr_513200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513221, '汶川县', 513200, '', 0, 0, 'W', '103.59651788422', '31.483005320468', 3, 'tr_0 tr_510000 tr_513200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513222, '理县', 513200, '', 0, 0, 'L', '102.23141546175', '31.905511577267', 3, 'tr_0 tr_510000 tr_513200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513223, '茂县', 513200, '', 0, 0, 'M', '102.23141546175', '31.905511577267', 3, 'tr_0 tr_510000 tr_513200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513224, '松潘县', 513200, '', 0, 0, 'S', '103.61057968918', '32.661796559853', 3, 'tr_0 tr_510000 tr_513200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513225, '九寨沟县', 513200, '', 0, 0, 'J', '104.24954673403', '33.257591509496', 3, 'tr_0 tr_510000 tr_513200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513226, '金川县', 513200, '', 0, 0, 'J', '102.07061042122', '31.482005950337', 3, 'tr_0 tr_510000 tr_513200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513227, '小金县', 513200, '', 0, 0, 'X', '102.36942635928', '31.002208697062', 3, 'tr_0 tr_510000 tr_513200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513228, '黑水县', 513200, '', 0, 0, 'H', '102.99651735613', '32.067805449368', 3, 'tr_0 tr_510000 tr_513200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513230, '壤塘县', 513200, '', 0, 0, 'R', '100.98558348726', '32.271093316269', 3, 'tr_0 tr_510000 tr_513200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513231, '阿坝县', 513200, '', 0, 0, 'A', '101.71360970816', '32.908220918625', 3, 'tr_0 tr_510000 tr_513200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513232, '若尔盖县', 513200, '', 0, 0, 'R', '102.97439065413', '33.584376654702', 3, 'tr_0 tr_510000 tr_513200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513233, '红原县', 513200, '', 0, 0, 'H', '102.55061520946', '32.796605278762', 3, 'tr_0 tr_510000 tr_513200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513301, '康定市', 513300, '', 0, 0, 'K', '101.96355522139', '30.004407384262', 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513322, '泸定县', 513300, '', 0, 0, 'L', '102.24143209631', '29.920401664951', 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513323, '丹巴县', 513300, '', 0, 0, 'D', '101.89643706759', '30.88476979933', 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513324, '九龙县', 513300, '', 0, 0, 'J', '101.51341566718', '29.006431902925', 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513325, '雅江县', 513300, '', 0, 0, 'Y', '101.02050035294', '30.037568967864', 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513326, '道孚县', 513300, '', 0, 0, 'D', '101.13154034619', '30.985326277402', 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513327, '炉霍县', 513300, '', 0, 0, 'L', '100.68239693357', '31.397991882882', 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513328, '甘孜县', 513300, '', 0, 0, 'G', '99.999210350851', '31.628956694034', 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513329, '新龙县', 513300, '', 0, 0, 'X', '100.31839824093', '30.945469525266', 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513330, '德格县', 513300, '', 0, 0, 'D', '98.587401611354', '31.812106494713', 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513331, '白玉县', 513300, '', 0, 0, 'B', '98.83110021824', '31.215314448788', 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513332, '石渠县', 513300, '', 0, 0, 'S', '98.109480622408', '32.984003420478', 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513333, '色达县', 513300, '', 0, 0, 'S', '100.33941364918', '32.274330413227', 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513334, '理塘县', 513300, '', 0, 0, 'L', '100.27557457998', '30.000030621751', 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513335, '巴塘县', 513300, '', 0, 0, 'B', '99.11672669582', '30.011661707376', 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513336, '乡城县', 513300, '', 0, 0, 'X', '99.805059570922', '28.936733475224', 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513337, '稻城县', 513300, '', 0, 0, 'D', '100.3044615597', '29.043121558126', 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513338, '得荣县', 513300, '', 0, 0, 'D', '99.292984198181', '28.718780051461', 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513401, '西昌市', 513400, '', 0, 0, 'X', '102.27148382917', '27.900580896264', 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513422, '木里藏族自治县', 513400, '', 0, 0, 'M', '101.28639697674', '27.93459855924', 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513423, '盐源县', 513400, '', 0, 0, 'Y', '101.51542912915', '27.428154867741', 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513424, '德昌县', 513400, '', 0, 0, 'D', '102.18259551085', '27.408504192994', 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513425, '会理县', 513400, '', 0, 0, 'H', '102.25143634511', '26.661199778427', 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513426, '会东县', 513400, '', 0, 0, 'H', '102.5844621823', '26.640823775829', 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513427, '宁南县', 513400, '', 0, 0, 'N', '102.76252636654', '27.064605070116', 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513428, '普格县', 513400, '', 0, 0, 'P', '102.54659671863', '27.381996213807', 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513429, '布拖县', 513400, '', 0, 0, 'B', '102.818478493', '27.7121287338', 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513430, '金阳县', 513400, '', 0, 0, 'J', '103.25454895521', '27.702144511749', 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513431, '昭觉县', 513400, '', 0, 0, 'Z', '102.84942278222', '28.020506268006', 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513432, '喜德县', 513400, '', 0, 0, 'X', '102.41956715684', '28.312709832521', 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513433, '冕宁县', 513400, '', 0, 0, 'M', '102.18357457402', '28.55529444536', 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513434, '越西县', 513400, '', 0, 0, 'Y', '102.5144744814', '28.645827564326', 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513435, '甘洛县', 513400, '', 0, 0, 'G', '102.77859651312', '28.9648231905', 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'); -INSERT INTO `hg_sys_provinces` (`id`, `title`, `pid`, `short_title`, `areacode`, `zipcode`, `pinyin`, `lng`, `lat`, `level`, `tree`, `sort`, `status`, `created_at`, `updated_at`) VALUES -(513436, '美姑县', 513400, '', 0, 0, 'M', '103.13858579866', '28.33401962389', 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(513437, '雷波县', 513400, '', 0, 0, 'L', '103.57842869486', '28.268950617624', 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520102, '南明区', 520100, '', 0, 0, 'N', '106.72052763544', '26.574336181539', 3, 'tr_0 tr_520000 tr_520100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520103, '云岩区', 520100, '', 0, 0, 'Y', '106.73053475882', '26.610381076426', 3, 'tr_0 tr_520000 tr_520100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520111, '花溪区', 520100, '', 0, 0, 'H', '106.6764407773', '26.41587945643', 3, 'tr_0 tr_520000 tr_520100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520112, '乌当区', 520100, '', 0, 0, 'W', '106.75755803432', '26.636529135598', 3, 'tr_0 tr_520000 tr_520100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520113, '白云区', 520100, '', 0, 0, 'B', '106.62959683989', '26.683588499124', 3, 'tr_0 tr_520000 tr_520100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520115, '观山湖区', 520100, '', 0, 0, 'G', '106.60953255751', '26.623894296899', 3, 'tr_0 tr_520000 tr_520100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520121, '开阳县', 520100, '', 0, 0, 'K', '106.97155955928', '27.063673573951', 3, 'tr_0 tr_520000 tr_520100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520122, '息烽县', 520100, '', 0, 0, 'X', '106.74756178044', '27.096475267062', 3, 'tr_0 tr_520000 tr_520100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520123, '修文县', 520100, '', 0, 0, 'X', '106.59849220314', '26.844862447594', 3, 'tr_0 tr_520000 tr_520100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520181, '清镇市', 520100, '', 0, 0, 'Q', '106.47752261032', '26.561987898479', 3, 'tr_0 tr_520000 tr_520100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520201, '钟山区', 520200, '', 0, 0, 'Z', '104.85052981696', '26.580704079622', 3, 'tr_0 tr_520000 tr_520200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520203, '六枝特区', 520200, '', 0, 0, 'L', '105.48342934686', '26.219214290638', 3, 'tr_0 tr_520000 tr_520200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520221, '水城县', 520200, '', 0, 0, 'S', '104.96456610819', '26.553719763692', 3, 'tr_0 tr_520000 tr_520200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520281, '盘州市', 520200, '', 0, 0, 'P', '104.47858183932', '25.715651258076', 3, 'tr_0 tr_520000 tr_520200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520302, '红花岗区', 520300, '', 0, 0, 'H', '106.90049658668', '27.650870260732', 3, 'tr_0 tr_520000 tr_520300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520303, '汇川区', 520300, '', 0, 0, 'H', '106.94045752761', '27.756343380087', 3, 'tr_0 tr_520000 tr_520300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520304, '播州区', 520300, '', 0, 0, 'B', '106.83650354793', '27.542500878', 3, 'tr_0 tr_520000 tr_520300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520322, '桐梓县', 520300, '', 0, 0, 'T', '106.83248902061', '28.139468384162', 3, 'tr_0 tr_520000 tr_520300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520323, '绥阳县', 520300, '', 0, 0, 'S', '107.19749228819', '27.953080005876', 3, 'tr_0 tr_520000 tr_520300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520324, '正安县', 520300, '', 0, 0, 'Z', '107.4605748906', '28.55909172878', 3, 'tr_0 tr_520000 tr_520300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520325, '道真仡佬族苗族自治县', 520300, '', 0, 0, 'D', '107.61948378781', '28.86864981438', 3, 'tr_0 tr_520000 tr_520300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520326, '务川仡佬族苗族自治县', 520300, '', 0, 0, 'W', '107.90545629257', '28.569077110562', 3, 'tr_0 tr_520000 tr_520300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520327, '凤冈县', 520300, '', 0, 0, 'F', '107.72354763025', '27.960695338965', 3, 'tr_0 tr_520000 tr_520300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520328, '湄潭县', 520300, '', 0, 0, 'M', '107.47259853019', '27.75449836496', 3, 'tr_0 tr_520000 tr_520300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520329, '余庆县', 520300, '', 0, 0, 'Y', '107.91146020728', '27.221379027997', 3, 'tr_0 tr_520000 tr_520300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520330, '习水县', 520300, '', 0, 0, 'X', '106.20342803999', '28.339117886481', 3, 'tr_0 tr_520000 tr_520300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520381, '赤水市', 520300, '', 0, 0, 'C', '105.70348859502', '28.596118908733', 3, 'tr_0 tr_520000 tr_520300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520382, '仁怀市', 520300, '', 0, 0, 'R', '106.40752655518', '27.797752158543', 3, 'tr_0 tr_520000 tr_520300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450702, '钦南区', 450700, '', 0, 0, 'Q', '108.66454861267', '21.945972440989', 3, 'tr_0 tr_450000 tr_450700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450703, '钦北区', 450700, '', 0, 0, 'Q', '108.63851257493', '22.020367050196', 3, 'tr_0 tr_450000 tr_450700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450721, '灵山县', 450700, '', 0, 0, 'L', '109.29747796631', '22.422413326701', 3, 'tr_0 tr_450000 tr_450700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(450722, '浦北县', 450700, '', 0, 0, 'P', '109.5634229294', '22.277822326937', 3, 'tr_0 tr_450000 tr_450700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520402, '西秀区', 520400, '', 0, 0, 'X', '105.97240632053', '26.251497663244', 3, 'tr_0 tr_520000 tr_520400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520403, '平坝区', 520400, '', 0, 0, 'P', '106.26358378709', '26.411186471257', 3, 'tr_0 tr_520000 tr_520400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520422, '普定县', 520400, '', 0, 0, 'P', '105.74848570614', '26.308233451347', 3, 'tr_0 tr_520000 tr_520400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520423, '镇宁布依族苗族自治县', 520400, '', 0, 0, 'Z', '105.77658344485', '26.063829083032', 3, 'tr_0 tr_520000 tr_520400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520424, '关岭布依族苗族自治县', 520400, '', 0, 0, 'G', '105.62547597168', '25.949877045969', 3, 'tr_0 tr_520000 tr_520400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520425, '紫云苗族布依族自治县', 520400, '', 0, 0, 'Z', '106.09041375093', '25.757408728958', 3, 'tr_0 tr_520000 tr_520400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520502, '七星关区', 520500, '', 0, 0, 'Q', '105.31158071811', '27.304095223427', 3, 'tr_0 tr_520000 tr_520500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520521, '大方县', 520500, '', 0, 0, 'D', '105.61845131242', '27.147060750626', 3, 'tr_0 tr_520000 tr_520500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520522, '黔西县', 520500, '', 0, 0, 'Q', '106.03857397726', '27.014344747084', 3, 'tr_0 tr_520000 tr_520500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520523, '金沙县', 520500, '', 0, 0, 'J', '106.22644163901', '27.465354872614', 3, 'tr_0 tr_520000 tr_520500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520524, '织金县', 520500, '', 0, 0, 'Z', '105.77758954702', '26.669221885659', 3, 'tr_0 tr_520000 tr_520500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520525, '纳雍县', 520500, '', 0, 0, 'N', '105.38948662276', '26.783717229132', 3, 'tr_0 tr_520000 tr_520500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520526, '威宁彝族回族苗族自治县', 520500, '', 0, 0, 'W', '104.25948063398', '26.879247190553', 3, 'tr_0 tr_520000 tr_520500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520527, '赫章县', 520500, '', 0, 0, 'H', '104.73351582262', '27.129051675142', 3, 'tr_0 tr_520000 tr_520500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520602, '碧江区', 520600, '', 0, 0, 'B', '109.18743536171', '27.696773471802', 3, 'tr_0 tr_520000 tr_520600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520603, '万山区', 520600, '', 0, 0, 'W', '109.22045617394', '27.524647851983', 3, 'tr_0 tr_520000 tr_520600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520621, '江口县', 520600, '', 0, 0, 'J', '108.84540005924', '27.705921695043', 3, 'tr_0 tr_520000 tr_520600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520622, '玉屏侗族自治县', 520600, '', 0, 0, 'Y', '108.920563527', '27.248557881456', 3, 'tr_0 tr_520000 tr_520600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520623, '石阡县', 520600, '', 0, 0, 'S', '108.23046385479', '27.519722059758', 3, 'tr_0 tr_520000 tr_520600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520624, '思南县', 520600, '', 0, 0, 'S', '108.25941731933', '27.944547877977', 3, 'tr_0 tr_520000 tr_520600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520625, '印江土家族苗族自治县', 520600, '', 0, 0, 'Y', '108.41659167843', '27.999823251993', 3, 'tr_0 tr_520000 tr_520600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520626, '德江县', 520600, '', 0, 0, 'D', '108.1264110615', '28.270423278494', 3, 'tr_0 tr_520000 tr_520600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520627, '沿河土家族自治县', 520600, '', 0, 0, 'Y', '108.51047753979', '28.570101680095', 3, 'tr_0 tr_520000 tr_520600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(520628, '松桃苗族自治县', 520600, '', 0, 0, 'S', '109.20940351278', '28.160420179011', 3, 'tr_0 tr_520000 tr_520600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522301, '兴义市', 522300, '', 0, 0, 'X', '104.9024609483', '25.098113310297', 3, 'tr_0 tr_520000 tr_522300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522302, '兴仁市', 522300, '', 0, 0, 'X', '105.19256772452', '25.440898753576', 3, 'tr_0 tr_520000 tr_522300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522323, '普安县', 522300, '', 0, 0, 'P', '104.95954583802', '25.789951769129', 3, 'tr_0 tr_520000 tr_522300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522324, '晴隆县', 522300, '', 0, 0, 'Q', '105.22548361467', '25.841047900453', 3, 'tr_0 tr_520000 tr_522300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522325, '贞丰县', 522300, '', 0, 0, 'Z', '105.65655958807', '25.392123965341', 3, 'tr_0 tr_520000 tr_522300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522326, '望谟县', 522300, '', 0, 0, 'W', '106.10644455174', '25.18435492392', 3, 'tr_0 tr_520000 tr_522300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522327, '册亨县', 522300, '', 0, 0, 'C', '105.81851050706', '24.989637494252', 3, 'tr_0 tr_520000 tr_522300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522328, '安龙县', 522300, '', 0, 0, 'A', '105.44954274777', '25.103990431232', 3, 'tr_0 tr_520000 tr_522300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522601, '凯里市', 522600, '', 0, 0, 'K', '107.98944624078', '26.589702969826', 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522622, '黄平县', 522600, '', 0, 0, 'H', '107.92354780622', '26.911288643101', 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522623, '施秉县', 522600, '', 0, 0, 'S', '108.13043978205', '27.039822051733', 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522624, '三穗县', 522600, '', 0, 0, 'S', '108.68154500207', '26.958666465246', 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522625, '镇远县', 522600, '', 0, 0, 'Z', '108.43658077263', '27.054820913901', 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522626, '岑巩县', 522600, '', 0, 0, 'C', '108.82248096196', '27.179902417394', 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522627, '天柱县', 522600, '', 0, 0, 'T', '109.21444570161', '26.915804084012', 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522628, '锦屏县', 522600, '', 0, 0, 'J', '109.20743846948', '26.682631631865', 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522629, '剑河县', 522600, '', 0, 0, 'J', '108.44751710323', '26.734047558881', 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522630, '台江县', 522600, '', 0, 0, 'T', '108.32855163', '26.672372539643', 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522631, '黎平县', 522600, '', 0, 0, 'L', '109.14356697147', '26.236874050192', 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522632, '榕江县', 522600, '', 0, 0, 'R', '108.52755369872', '25.93772537325', 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522633, '从江县', 522600, '', 0, 0, 'C', '108.91156142782', '25.759881327892', 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522634, '雷山县', 522600, '', 0, 0, 'L', '108.08452891457', '26.384205121689', 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522635, '麻江县', 522600, '', 0, 0, 'M', '107.59555140191', '26.496807595584', 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522636, '丹寨县', 522600, '', 0, 0, 'D', '107.79551348972', '26.204421169869', 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522701, '都匀市', 522700, '', 0, 0, 'D', '107.52540443144', '26.266117957789', 3, 'tr_0 tr_520000 tr_522700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522702, '福泉市', 522700, '', 0, 0, 'F', '107.52643281158', '26.692525700784', 3, 'tr_0 tr_520000 tr_522700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522722, '荔波县', 522700, '', 0, 0, 'L', '107.89340938687', '25.417097566273', 3, 'tr_0 tr_520000 tr_522700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522723, '贵定县', 522700, '', 0, 0, 'G', '107.2405543594', '26.590659655039', 3, 'tr_0 tr_520000 tr_522700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522725, '瓮安县', 522700, '', 0, 0, 'W', '107.47755223592', '27.084125602602', 3, 'tr_0 tr_520000 tr_522700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522726, '独山县', 522700, '', 0, 0, 'D', '107.55149778107', '25.828287807074', 3, 'tr_0 tr_520000 tr_522700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522727, '平塘县', 522700, '', 0, 0, 'P', '107.32956664388', '25.828201706902', 3, 'tr_0 tr_520000 tr_522700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522728, '罗甸县', 522700, '', 0, 0, 'L', '106.75854805682', '25.430837682972', 3, 'tr_0 tr_520000 tr_522700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522729, '长顺县', 522700, '', 0, 0, 'Z', '106.45842122163', '26.028454545714', 3, 'tr_0 tr_520000 tr_522700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522730, '龙里县', 522700, '', 0, 0, 'L', '106.98658596469', '26.459080630642', 3, 'tr_0 tr_520000 tr_522700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522731, '惠水县', 522700, '', 0, 0, 'H', '106.66345262709', '26.138209889396', 3, 'tr_0 tr_520000 tr_522700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(522732, '三都水族自治县', 522700, '', 0, 0, 'S', '107.84263500353', '26.096765617985', 3, 'tr_0 tr_520000 tr_522700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530102, '五华区', 530100, '', 0, 0, 'W', '102.7134232806', '25.049834961981', 3, 'tr_0 tr_530000 tr_530100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530103, '盘龙区', 530100, '', 0, 0, 'P', '102.7585262121', '25.12237227983', 3, 'tr_0 tr_530000 tr_530100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530111, '官渡区', 530100, '', 0, 0, 'G', '102.7504817066', '25.021196423859', 3, 'tr_0 tr_530000 tr_530100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530112, '西山区', 530100, '', 0, 0, 'X', '102.6715571235', '25.043198760947', 3, 'tr_0 tr_530000 tr_530100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530113, '东川区', 530100, '', 0, 0, 'D', '103.19445186746', '26.089054237623', 3, 'tr_0 tr_530000 tr_530100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530114, '呈贡区', 530100, '', 0, 0, 'C', '102.82747259726', '24.891871210947', 3, 'tr_0 tr_530000 tr_530100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530115, '晋宁区', 530100, '', 0, 0, 'J', '102.60241805181', '24.676098812517', 3, 'tr_0 tr_530000 tr_530100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530124, '富民县', 530100, '', 0, 0, 'F', '102.50447319701', '25.228085092195', 3, 'tr_0 tr_530000 tr_530100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530125, '宜良县', 530100, '', 0, 0, 'Y', '103.14755798426', '24.925286989652', 3, 'tr_0 tr_530000 tr_530100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530126, '石林彝族自治县', 530100, '', 0, 0, 'S', '103.29650817676', '24.77770196132', 3, 'tr_0 tr_530000 tr_530100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530127, '嵩明县', 530100, '', 0, 0, 'S', '103.04356394016', '25.344409459135', 3, 'tr_0 tr_530000 tr_530100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530128, '禄劝彝族苗族自治县', 530100, '', 0, 0, 'L', '102.47742324184', '25.55767180024', 3, 'tr_0 tr_530000 tr_530100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530129, '寻甸回族彝族自治县', 530100, '', 0, 0, 'X', '103.26357387135', '25.563893580433', 3, 'tr_0 tr_530000 tr_530100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530181, '安宁市', 530100, '', 0, 0, 'A', '102.48440918413', '24.925601726344', 3, 'tr_0 tr_530000 tr_530100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530302, '麒麟区', 530300, '', 0, 0, 'Q', '103.81143036949', '25.502101828437', 3, 'tr_0 tr_530000 tr_530300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530303, '沾益区', 530300, '', 0, 0, 'Z', '103.82848532841', '25.606630798868', 3, 'tr_0 tr_530000 tr_530300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530304, '马龙区', 530300, '', 0, 0, 'M', '103.58544688632', '25.433966374816', 3, 'tr_0 tr_530000 tr_530300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530322, '陆良县', 530300, '', 0, 0, 'L', '103.67343249743', '25.035639470439', 3, 'tr_0 tr_530000 tr_530300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530323, '师宗县', 530300, '', 0, 0, 'S', '103.99155634453', '24.827994969501', 3, 'tr_0 tr_530000 tr_530300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530324, '罗平县', 530300, '', 0, 0, 'L', '104.31551019438', '24.890519724895', 3, 'tr_0 tr_530000 tr_530300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530325, '富源县', 530300, '', 0, 0, 'F', '104.2614742434', '25.680279502133', 3, 'tr_0 tr_530000 tr_530300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530326, '会泽县', 530300, '', 0, 0, 'H', '103.30348729192', '26.424215045561', 3, 'tr_0 tr_530000 tr_530300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530381, '宣威市', 530300, '', 0, 0, 'X', '104.1115760691', '26.225598378324', 3, 'tr_0 tr_530000 tr_530300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530402, '红塔区', 530400, '', 0, 0, 'H', '102.55156461759', '24.359801443673', 3, 'tr_0 tr_530000 tr_530400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530403, '江川区', 530400, '', 0, 0, 'J', '102.76052700796', '24.293438700984', 3, 'tr_0 tr_530000 tr_530400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530422, '澄江县', 530400, '', 0, 0, 'C', '102.91455487235', '24.679414908816', 3, 'tr_0 tr_530000 tr_530400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530423, '通海县', 530400, '', 0, 0, 'T', '102.73242289128', '24.117891201574', 3, 'tr_0 tr_530000 tr_530400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530424, '华宁县', 530400, '', 0, 0, 'H', '102.93549185853', '24.198581027163', 3, 'tr_0 tr_530000 tr_530400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530425, '易门县', 530400, '', 0, 0, 'Y', '102.1695354962', '24.677404477592', 3, 'tr_0 tr_530000 tr_530400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530426, '峨山彝族自治县', 530400, '', 0, 0, 'E', '102.41256450607', '24.174774239093', 3, 'tr_0 tr_530000 tr_530400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530427, '新平彝族傣族自治县', 530400, '', 0, 0, 'X', '101.99642771261', '24.076262705278', 3, 'tr_0 tr_530000 tr_530400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530428, '元江哈尼族彝族傣族自治县', 530400, '', 0, 0, 'Y', '102.00441463673', '23.603000905475', 3, 'tr_0 tr_530000 tr_530400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530502, '隆阳区', 530500, '', 0, 0, 'L', '99.172070839289', '25.12688832219', 3, 'tr_0 tr_530000 tr_530500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530521, '施甸县', 530500, '', 0, 0, 'S', '99.195469362222', '24.728835000146', 3, 'tr_0 tr_530000 tr_530500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530523, '龙陵县', 530500, '', 0, 0, 'L', '98.695749912275', '24.592546947017', 3, 'tr_0 tr_530000 tr_530500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530524, '昌宁县', 530500, '', 0, 0, 'C', '99.611616576026', '24.833984919853', 3, 'tr_0 tr_530000 tr_530500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530581, '腾冲市', 530500, '', 0, 0, 'T', '98.497595035489', '25.026616860346', 3, 'tr_0 tr_530000 tr_530500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530602, '昭阳区', 530600, '', 0, 0, 'Z', '103.71347042315', '27.326144206053', 3, 'tr_0 tr_530000 tr_530600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530621, '鲁甸县', 530600, '', 0, 0, 'L', '103.5644121645', '27.193107219133', 3, 'tr_0 tr_530000 tr_530600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530622, '巧家县', 530600, '', 0, 0, 'Q', '102.93651934037', '26.914705038577', 3, 'tr_0 tr_530000 tr_530600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530623, '盐津县', 530600, '', 0, 0, 'Y', '104.24157884246', '28.114384038516', 3, 'tr_0 tr_530000 tr_530600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530624, '大关县', 530600, '', 0, 0, 'D', '103.89751489665', '27.754021401911', 3, 'tr_0 tr_530000 tr_530600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530625, '永善县', 530600, '', 0, 0, 'Y', '103.6445690431', '28.234722481383', 3, 'tr_0 tr_530000 tr_530600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530626, '绥江县', 530600, '', 0, 0, 'S', '103.9645523826', '28.604277931727', 3, 'tr_0 tr_530000 tr_530600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530627, '镇雄县', 530600, '', 0, 0, 'Z', '104.88040422431', '27.447794634649', 3, 'tr_0 tr_530000 tr_530600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530628, '彝良县', 530600, '', 0, 0, 'Y', '104.05444303021', '27.631690165547', 3, 'tr_0 tr_530000 tr_530600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530629, '威信县', 530600, '', 0, 0, 'W', '105.05557676311', '27.85253746404', 3, 'tr_0 tr_530000 tr_530600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530681, '水富市', 530600, '', 0, 0, 'S', '104.42243298394', '28.636106975262', 3, 'tr_0 tr_530000 tr_530600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530702, '古城区', 530700, '', 0, 0, 'G', '100.23248033921', '26.883161684001', 3, 'tr_0 tr_530000 tr_530700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530721, '玉龙纳西族自治县', 530700, '', 0, 0, 'Y', '100.24352734105', '26.827391803625', 3, 'tr_0 tr_530000 tr_530700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530722, '永胜县', 530700, '', 0, 0, 'Y', '100.75758141133', '26.689950245419', 3, 'tr_0 tr_530000 tr_530700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530723, '华坪县', 530700, '', 0, 0, 'H', '101.27243012268', '26.635223014622', 3, 'tr_0 tr_530000 tr_530700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530724, '宁蒗彝族自治县', 530700, '', 0, 0, 'N', '100.85859038623', '27.287727826052', 3, 'tr_0 tr_530000 tr_530700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530802, '思茅区', 530800, '', 0, 0, 'S', '100.98355510298', '22.79249798436', 3, 'tr_0 tr_530000 tr_530800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530821, '宁洱哈尼族彝族自治县', 530800, '', 0, 0, 'N', '101.05244246946', '23.054590179481', 3, 'tr_0 tr_530000 tr_530800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530822, '墨江哈尼族自治县', 530800, '', 0, 0, 'M', '101.69858356155', '23.437725772256', 3, 'tr_0 tr_530000 tr_530800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530823, '景东彝族自治县', 530800, '', 0, 0, 'J', '100.83848864452', '24.451863775495', 3, 'tr_0 tr_530000 tr_530800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530824, '景谷傣族彝族自治县', 530800, '', 0, 0, 'J', '100.7094565801', '23.503204071241', 3, 'tr_0 tr_530000 tr_530800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530825, '镇沅彝族哈尼族拉祜族自治县', 530800, '', 0, 0, 'Z', '101.11556882305', '24.010330833613', 3, 'tr_0 tr_530000 tr_530800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530826, '江城哈尼族彝族自治县', 530800, '', 0, 0, 'J', '101.86847918429', '22.59168385943', 3, 'tr_0 tr_530000 tr_530800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530827, '孟连傣族拉祜族佤族自治县', 530800, '', 0, 0, 'M', '99.590962825578', '22.335307615556', 3, 'tr_0 tr_530000 tr_530800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530828, '澜沧拉祜族自治县', 530800, '', 0, 0, 'L', '99.938588283239', '22.561831918087', 3, 'tr_0 tr_530000 tr_530800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530829, '西盟佤族自治县', 530800, '', 0, 0, 'X', '99.596622150289', '22.650656010974', 3, 'tr_0 tr_530000 tr_530800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530902, '临翔区', 530900, '', 0, 0, 'L', '100.0884425304', '23.901401938645', 3, 'tr_0 tr_530000 tr_530900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530921, '凤庆县', 530900, '', 0, 0, 'F', '99.934989222215', '24.586472458274', 3, 'tr_0 tr_530000 tr_530900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530922, '云县', 530900, '', 0, 0, 'Y', '100.12953102441', '24.442807275329', 3, 'tr_0 tr_530000 tr_530900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530923, '永德县', 530900, '', 0, 0, 'Y', '99.265075642606', '24.024871282777', 3, 'tr_0 tr_530000 tr_530900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530924, '镇康县', 530900, '', 0, 0, 'Z', '98.831871224123', '23.768315480096', 3, 'tr_0 tr_530000 tr_530900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530925, '双江拉祜族佤族布朗族傣族自治县', 530900, '', 0, 0, 'S', '99.834130982979', '23.479836504614', 3, 'tr_0 tr_530000 tr_530900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530926, '耿马傣族佤族自治县', 530900, '', 0, 0, 'G', '99.403942176092', '23.543490995101', 3, 'tr_0 tr_530000 tr_530900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(530927, '沧源佤族自治县', 530900, '', 0, 0, 'C', '99.252721696084', '23.152878733913', 3, 'tr_0 tr_530000 tr_530900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532301, '楚雄市', 532300, '', 0, 0, 'C', '101.55247228396', '25.038860388323', 3, 'tr_0 tr_530000 tr_532300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532322, '双柏县', 532300, '', 0, 0, 'S', '101.64840700053', '24.694898530382', 3, 'tr_0 tr_530000 tr_532300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532323, '牟定县', 532300, '', 0, 0, 'M', '101.55348099122', '25.318845903714', 3, 'tr_0 tr_530000 tr_532300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532324, '南华县', 532300, '', 0, 0, 'N', '101.28042055018', '25.198587071156', 3, 'tr_0 tr_530000 tr_532300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532325, '姚安县', 532300, '', 0, 0, 'Y', '101.2485272012', '25.509775443473', 3, 'tr_0 tr_530000 tr_532300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532326, '大姚县', 532300, '', 0, 0, 'D', '101.33056746713', '25.727600600572', 3, 'tr_0 tr_530000 tr_532300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532327, '永仁县', 532300, '', 0, 0, 'Y', '101.67249299667', '26.055565754521', 3, 'tr_0 tr_530000 tr_532300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532328, '元谋县', 532300, '', 0, 0, 'Y', '101.8804452425', '25.710895319939', 3, 'tr_0 tr_530000 tr_532300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532329, '武定县', 532300, '', 0, 0, 'W', '102.41053182037', '25.536089587807', 3, 'tr_0 tr_530000 tr_532300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532331, '禄丰县', 532300, '', 0, 0, 'L', '102.08553135476', '25.155830804806', 3, 'tr_0 tr_530000 tr_532300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532501, '个旧市', 532500, '', 0, 0, 'G', '103.16651860849', '23.364941534583', 3, 'tr_0 tr_530000 tr_532500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532502, '开远市', 532500, '', 0, 0, 'K', '103.27355323709', '23.719907796912', 3, 'tr_0 tr_530000 tr_532500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532503, '蒙自市', 532500, '', 0, 0, 'M', '103.37154588175', '23.402079885198', 3, 'tr_0 tr_530000 tr_532500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532504, '弥勒市', 532500, '', 0, 0, 'M', '103.421489063', '24.417982225357', 3, 'tr_0 tr_530000 tr_532500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532523, '屏边苗族自治县', 532500, '', 0, 0, 'P', '103.69343183232', '22.989989585513', 3, 'tr_0 tr_530000 tr_532500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532524, '建水县', 532500, '', 0, 0, 'J', '102.83343959161', '23.640938563461', 3, 'tr_0 tr_530000 tr_532500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532525, '石屏县', 532500, '', 0, 0, 'S', '102.50244661978', '23.712004452449', 3, 'tr_0 tr_530000 tr_532500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532527, '泸西县', 532500, '', 0, 0, 'L', '103.77252314092', '24.53803716745', 3, 'tr_0 tr_530000 tr_532500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532528, '元阳县', 532500, '', 0, 0, 'Y', '102.84143280386', '23.226198051926', 3, 'tr_0 tr_530000 tr_532500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532529, '红河县', 532500, '', 0, 0, 'H', '102.42755057757', '23.374488738365', 3, 'tr_0 tr_530000 tr_532500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532530, '金平苗族瑶族傣族自治县', 532500, '', 0, 0, 'J', '103.23246860579', '22.785560606183', 3, 'tr_0 tr_530000 tr_532500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532531, '绿春县', 532500, '', 0, 0, 'L', '102.39849398755', '23.000164936586', 3, 'tr_0 tr_530000 tr_532500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532532, '河口瑶族自治县', 532500, '', 0, 0, 'H', '103.9454436278', '22.535465602947', 3, 'tr_0 tr_530000 tr_532500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532601, '文山市', 532600, '', 0, 0, 'W', '104.23854382746', '23.391944131908', 3, 'tr_0 tr_530000 tr_532600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532622, '砚山县', 532600, '', 0, 0, 'Y', '104.3435508907', '23.6114865767', 3, 'tr_0 tr_530000 tr_532600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532623, '西畴县', 532600, '', 0, 0, 'X', '104.67852542203', '23.443271275283', 3, 'tr_0 tr_530000 tr_532600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532624, '麻栗坡县', 532600, '', 0, 0, 'M', '104.70954948078', '23.13158558356', 3, 'tr_0 tr_530000 tr_532600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532625, '马关县', 532600, '', 0, 0, 'M', '104.40041497692', '23.018993577166', 3, 'tr_0 tr_530000 tr_532600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532626, '丘北县', 532600, '', 0, 0, 'Q', '104.17344174074', '24.056993896218', 3, 'tr_0 tr_530000 tr_532600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532627, '广南县', 532600, '', 0, 0, 'G', '105.06158238459', '24.052198510921', 3, 'tr_0 tr_530000 tr_532600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532628, '富宁县', 532600, '', 0, 0, 'F', '105.63749017905', '23.63138040952', 3, 'tr_0 tr_530000 tr_532600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532801, '景洪市', 532800, '', 0, 0, 'J', '100.80644312258', '22.017004423119', 3, 'tr_0 tr_530000 tr_532800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532822, '勐海县', 532800, '', 0, 0, 'M', '100.4594459398', '21.963433596681', 3, 'tr_0 tr_530000 tr_532800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532823, '勐腊县', 532800, '', 0, 0, 'M', '101.57152830823', '21.465280880862', 3, 'tr_0 tr_530000 tr_532800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532901, '大理市', 532900, '', 0, 0, 'D', '100.23651930044', '25.597604905452', 3, 'tr_0 tr_530000 tr_532900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532922, '漾濞彝族自治县', 532900, '', 0, 0, 'Y', '99.964413758168', '25.676295762972', 3, 'tr_0 tr_530000 tr_532900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532923, '祥云县', 532900, '', 0, 0, 'X', '100.55744657937', '25.489872506242', 3, 'tr_0 tr_530000 tr_532900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532924, '宾川县', 532900, '', 0, 0, 'B', '100.57845668762', '25.835249028198', 3, 'tr_0 tr_530000 tr_532900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532925, '弥渡县', 532900, '', 0, 0, 'M', '100.49758601546', '25.349336028746', 3, 'tr_0 tr_530000 tr_532900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532926, '南涧彝族自治县', 532900, '', 0, 0, 'N', '100.51554862227', '25.049426762094', 3, 'tr_0 tr_530000 tr_532900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532927, '巍山彝族回族自治县', 532900, '', 0, 0, 'W', '100.31346033515', '25.233438729799', 3, 'tr_0 tr_530000 tr_532900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532928, '永平县', 532900, '', 0, 0, 'Y', '99.547494899931', '25.4702064833', 3, 'tr_0 tr_530000 tr_532900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532929, '云龙县', 532900, '', 0, 0, 'Y', '99.377416022867', '25.891945073902', 3, 'tr_0 tr_530000 tr_532900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532930, '洱源县', 532900, '', 0, 0, 'E', '99.969209721453', '26.120093341888', 3, 'tr_0 tr_530000 tr_532900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532931, '剑川县', 532900, '', 0, 0, 'J', '99.912091235112', '26.542516534181', 3, 'tr_0 tr_530000 tr_532900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(532932, '鹤庆县', 532900, '', 0, 0, 'H', '100.18249206302', '26.566197313345', 3, 'tr_0 tr_530000 tr_532900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(533102, '瑞丽市', 533100, '', 0, 0, 'R', '97.862485584208', '24.022816893105', 3, 'tr_0 tr_530000 tr_533100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(533103, '芒市', 533100, '', 0, 0, 'M', '98.591359356114', '24.438010702758', 3, 'tr_0 tr_530000 tr_533100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(533122, '梁河县', 533100, '', 0, 0, 'L', '98.303133631636', '24.810784458257', 3, 'tr_0 tr_530000 tr_533100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(533123, '盈江县', 533100, '', 0, 0, 'Y', '97.938426535386', '24.711534266143', 3, 'tr_0 tr_530000 tr_533100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(533124, '陇川县', 533100, '', 0, 0, 'L', '97.798530364124', '24.189467890549', 3, 'tr_0 tr_530000 tr_533100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(533301, '泸水市', 533300, '', 0, 0, 'L', '98.864586163328', '25.829026769972', 3, 'tr_0 tr_530000 tr_533300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(533323, '福贡县', 533300, '', 0, 0, 'F', '98.875649424493', '26.908055208498', 3, 'tr_0 tr_530000 tr_533300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(533324, '贡山独龙族怒族自治县', 533300, '', 0, 0, 'G', '98.672399448687', '27.747067875272', 3, 'tr_0 tr_530000 tr_533300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(533325, '兰坪白族普米族自治县', 533300, '', 0, 0, 'L', '99.423284669988', '26.459207904688', 3, 'tr_0 tr_530000 tr_533300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(533401, '香格里拉市', 533400, '', 0, 0, 'X', '99.707444573899', '27.835760125321', 3, 'tr_0 tr_530000 tr_533400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(533422, '德钦县', 533400, '', 0, 0, 'D', '98.924452656054', '28.470086006822', 3, 'tr_0 tr_530000 tr_533400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(533423, '维西傈僳族自治县', 533400, '', 0, 0, 'W', '99.293465689934', '27.183170204022', 3, 'tr_0 tr_530000 tr_533400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540102, '城关区', 540100, '', 0, 0, 'C', '91.145100352371', '29.658331252915', 3, 'tr_0 tr_540000 tr_540100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540103, '堆龙德庆区', 540100, '', 0, 0, 'D', '91.009963134209', '29.651625675009', 3, 'tr_0 tr_540000 tr_540100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540104, '达孜区', 540100, '', 0, 0, 'D', '91.356318118388', '29.675409063815', 3, 'tr_0 tr_540000 tr_540100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540121, '林周县', 540100, '', 0, 0, 'L', '91.26950057393', '29.898733205887', 3, 'tr_0 tr_540000 tr_540100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540122, '当雄县', 540100, '', 0, 0, 'D', '91.107451746831', '30.479221726942', 3, 'tr_0 tr_540000 tr_540100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540123, '尼木县', 540100, '', 0, 0, 'N', '90.171180066243', '29.437518981255', 3, 'tr_0 tr_540000 tr_540100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540124, '曲水县', 540100, '', 0, 0, 'Q', '90.749958665453', '29.358987058337', 3, 'tr_0 tr_540000 tr_540100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540127, '墨竹工卡县', 540100, '', 0, 0, 'M', '91.737266398592', '29.839752605055', 3, 'tr_0 tr_540000 tr_540100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540171, '格尔木藏青工业园区', 540100, '', 0, 0, 'G', '91.120823915464', '29.650040274768', 3, 'tr_0 tr_540000 tr_540100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540172, '拉萨经济技术开发区', 540100, '', 0, 0, 'L', '91.120823915464', '29.650040274768', 3, 'tr_0 tr_540000 tr_540100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540173, '西藏文化旅游创意园区', 540100, '', 0, 0, 'X', '91.120823915464', '29.650040274768', 3, 'tr_0 tr_540000 tr_540100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540174, '达孜工业园区', 540100, '', 0, 0, 'D', '91.356318118388', '29.675409063815', 3, 'tr_0 tr_540000 tr_540100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540202, '桑珠孜区', 540200, '', 0, 0, 'S', '88.902951718862', '29.255582814198', 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540221, '南木林县', 540200, '', 0, 0, 'N', '89.105704213077', '29.687938036552', 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540222, '江孜县', 540200, '', 0, 0, 'J', '89.612012194954', '28.917634684239', 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540223, '定日县', 540200, '', 0, 0, 'D', '87.129597739314', '28.663951983289', 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540224, '萨迦县', 540200, '', 0, 0, 'S', '88.028269488152', '28.90493151262', 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540225, '拉孜县', 540200, '', 0, 0, 'L', '87.643647318074', '29.087509679995', 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540226, '昂仁县', 540200, '', 0, 0, 'A', '87.242427336755', '29.301060484014', 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540227, '谢通门县', 540200, '', 0, 0, 'X', '88.268206799957', '29.438142414132', 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540228, '白朗县', 540200, '', 0, 0, 'B', '89.268741991895', '29.111858951918', 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540229, '仁布县', 540200, '', 0, 0, 'R', '89.848624967899', '29.236788327037', 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540230, '康马县', 540200, '', 0, 0, 'K', '89.688244915761', '28.561443952501', 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540231, '定结县', 540200, '', 0, 0, 'D', '87.772376743375', '28.369910769393', 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540232, '仲巴县', 540200, '', 0, 0, 'Z', '84.038116876917', '29.775982232026', 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540233, '亚东县', 540200, '', 0, 0, 'Y', '88.913440783145', '27.491108780091', 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540234, '吉隆县', 540200, '', 0, 0, 'J', '85.304073768987', '28.858501664955', 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540235, '聂拉木县', 540200, '', 0, 0, 'N', '85.988770403046', '28.160839360543', 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540236, '萨嘎县', 540200, '', 0, 0, 'S', '85.239825701307', '29.334659688784', 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540237, '岗巴县', 540200, '', 0, 0, 'G', '88.526529281476', '28.28036304226', 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540302, '卡若区', 540300, '', 0, 0, 'K', '97.186654336416', '31.144248893947', 3, 'tr_0 tr_540000 tr_540300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540321, '江达县', 540300, '', 0, 0, 'J', '98.224594520968', '31.50520701798', 3, 'tr_0 tr_540000 tr_540300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540322, '贡觉县', 540300, '', 0, 0, 'G', '98.277334127289', '30.865966958412', 3, 'tr_0 tr_540000 tr_540300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540323, '类乌齐县', 540300, '', 0, 0, 'L', '96.606717192399', '31.217793112281', 3, 'tr_0 tr_540000 tr_540300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540324, '丁青县', 540300, '', 0, 0, 'D', '95.602643844218', '31.418402964614', 3, 'tr_0 tr_540000 tr_540300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540325, '察雅县', 540300, '', 0, 0, 'C', '97.575123679628', '30.659864699371', 3, 'tr_0 tr_540000 tr_540300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540326, '八宿县', 540300, '', 0, 0, 'B', '96.924360446152', '30.059028991399', 3, 'tr_0 tr_540000 tr_540300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540327, '左贡县', 540300, '', 0, 0, 'Z', '97.847366832989', '29.676848537197', 3, 'tr_0 tr_540000 tr_540300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540328, '芒康县', 540300, '', 0, 0, 'M', '98.599685480392', '29.685776117713', 3, 'tr_0 tr_540000 tr_540300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540329, '洛隆县', 540300, '', 0, 0, 'L', '95.831306613477', '30.747126507478', 3, 'tr_0 tr_540000 tr_540300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540330, '边坝县', 540300, '', 0, 0, 'B', '94.714371149159', '30.939624927347', 3, 'tr_0 tr_540000 tr_540300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540402, '巴宜区', 540400, '', 0, 0, 'B', '94.36754427672', '29.641644546372', 3, 'tr_0 tr_540000 tr_540400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540421, '工布江达县', 540400, '', 0, 0, 'G', '93.252419796678', '29.891367616241', 3, 'tr_0 tr_540000 tr_540400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540422, '米林县', 540400, '', 0, 0, 'M', '94.219938578083', '29.220916541197', 3, 'tr_0 tr_540000 tr_540400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540423, '墨脱县', 540400, '', 0, 0, 'M', '95.33949529751', '29.330937701878', 3, 'tr_0 tr_540000 tr_540400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540424, '波密县', 540400, '', 0, 0, 'B', '95.773900121645', '29.865060090549', 3, 'tr_0 tr_540000 tr_540400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540425, '察隅县', 540400, '', 0, 0, 'C', '97.473269749246', '28.667444137201', 3, 'tr_0 tr_540000 tr_540400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540426, '朗县', 540400, '', 0, 0, 'L', '93.081368234407', '29.051902419086', 3, 'tr_0 tr_540000 tr_540400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540602, '色尼区', 540600, '', 0, 0, 'S', '92.05984683665', '31.476117292678', 3, 'tr_0 tr_540000 tr_540600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540621, '嘉黎县', 540600, '', 0, 0, 'J', '93.23873151504', '30.647062455597', 3, 'tr_0 tr_540000 tr_540600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540622, '比如县', 540600, '', 0, 0, 'B', '93.685965938612', '31.48635726205', 3, 'tr_0 tr_540000 tr_540600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540623, '聂荣县', 540600, '', 0, 0, 'N', '92.308654466293', '32.113707483115', 3, 'tr_0 tr_540000 tr_540600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540624, '安多县', 540600, '', 0, 0, 'A', '91.688890677999', '32.271268023108', 3, 'tr_0 tr_540000 tr_540600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540625, '申扎县', 540600, '', 0, 0, 'S', '88.716481108234', '30.936393285832', 3, 'tr_0 tr_540000 tr_540600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540626, '索县', 540600, '', 0, 0, 'S', '93.792172958379', '31.892424309227', 3, 'tr_0 tr_540000 tr_540600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540627, '班戈县', 540600, '', 0, 0, 'B', '90.016707727114', '31.398727622963', 3, 'tr_0 tr_540000 tr_540600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540628, '巴青县', 540600, '', 0, 0, 'B', '94.059881564766', '31.924549424276', 3, 'tr_0 tr_540000 tr_540600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540629, '尼玛县', 540600, '', 0, 0, 'N', '87.243292410868', '31.790953326638', 3, 'tr_0 tr_540000 tr_540600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540630, '双湖县', 540600, '', 0, 0, 'S', '88.843427936123', '33.193503165809', 3, 'tr_0 tr_540000 tr_540600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(542521, '普兰县', 542500, '', 0, 0, 'P', '81.183094731974', '30.300162591078', 3, 'tr_0 tr_540000 tr_542500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(542522, '札达县', 542500, '', 0, 0, 'Z', '79.809323212178', '31.485343070014', 3, 'tr_0 tr_540000 tr_542500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(542523, '噶尔县', 542500, '', 0, 0, 'G', '80.102877146054', '32.497156823602', 3, 'tr_0 tr_540000 tr_542500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(542524, '日土县', 542500, '', 0, 0, 'R', '79.739109138263', '33.387186043872', 3, 'tr_0 tr_540000 tr_542500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(542525, '革吉县', 542500, '', 0, 0, 'G', '81.151664369638', '32.393356020044', 3, 'tr_0 tr_540000 tr_542500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(542526, '改则县', 542500, '', 0, 0, 'G', '84.06911336254', '32.308356643244', 3, 'tr_0 tr_540000 tr_542500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(542527, '措勤县', 542500, '', 0, 0, 'C', '85.165952205481', '31.022666379273', 3, 'tr_0 tr_540000 tr_542500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610102, '新城区', 610100, '', 0, 0, 'X', '108.9673910385', '34.272724469533', 3, 'tr_0 tr_610000 tr_610100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610103, '碑林区', 610100, '', 0, 0, 'B', '108.94049774781', '34.236473940412', 3, 'tr_0 tr_610000 tr_610100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610104, '莲湖区', 610100, '', 0, 0, 'L', '108.95042644912', '34.271017203053', 3, 'tr_0 tr_610000 tr_610100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610111, '灞桥区', 610100, '', 0, 0, 'B', '109.07141535554', '34.279127674951', 3, 'tr_0 tr_610000 tr_610100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610112, '未央区', 610100, '', 0, 0, 'W', '108.95340118781', '34.299148106589', 3, 'tr_0 tr_610000 tr_610100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610113, '雁塔区', 610100, '', 0, 0, 'Y', '108.95144045638', '34.220635239986', 3, 'tr_0 tr_610000 tr_610100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610114, '阎良区', 610100, '', 0, 0, 'Y', '109.23246311822', '34.668363274699', 3, 'tr_0 tr_610000 tr_610100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610115, '临潼区', 610100, '', 0, 0, 'L', '109.22043579558', '34.372747432848', 3, 'tr_0 tr_610000 tr_610100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610116, '长安区', 610100, '', 0, 0, 'Z', '108.91358047235', '34.163290267305', 3, 'tr_0 tr_610000 tr_610100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610117, '高陵区', 610100, '', 0, 0, 'G', '109.09438691387', '34.541093106058', 3, 'tr_0 tr_610000 tr_610100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610118, '鄠邑区', 610100, '', 0, 0, 'H', '108.61142023271', '34.115020711599', 3, 'tr_0 tr_610000 tr_610100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610122, '蓝田县', 610100, '', 0, 0, 'L', '109.32938812681', '34.157620654732', 3, 'tr_0 tr_610000 tr_610100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610124, '周至县', 610100, '', 0, 0, 'Z', '108.22842183954', '34.169385269616', 3, 'tr_0 tr_610000 tr_610100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610202, '王益区', 610200, '', 0, 0, 'W', '109.08141735858', '35.075322096471', 3, 'tr_0 tr_610000 tr_610200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610203, '印台区', 610200, '', 0, 0, 'Y', '109.10643408907', '35.120859282945', 3, 'tr_0 tr_610000 tr_610200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610204, '耀州区', 610200, '', 0, 0, 'Y', '108.98643790006', '34.91596030911', 3, 'tr_0 tr_610000 tr_610200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610222, '宜君县', 610200, '', 0, 0, 'Y', '109.12353674801', '35.404582194219', 3, 'tr_0 tr_610000 tr_610200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610302, '渭滨区', 610300, '', 0, 0, 'W', '107.15641916768', '34.377481132682', 3, 'tr_0 tr_610000 tr_610300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610303, '金台区', 610300, '', 0, 0, 'J', '107.15342367813', '34.382351084696', 3, 'tr_0 tr_610000 tr_610300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610304, '陈仓区', 610300, '', 0, 0, 'C', '107.39343842395', '34.360756335457', 3, 'tr_0 tr_610000 tr_610300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610322, '凤翔县', 610300, '', 0, 0, 'F', '107.40737949665', '34.527616279899', 3, 'tr_0 tr_610000 tr_610300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'); -INSERT INTO `hg_sys_provinces` (`id`, `title`, `pid`, `short_title`, `areacode`, `zipcode`, `pinyin`, `lng`, `lat`, `level`, `tree`, `sort`, `status`, `created_at`, `updated_at`) VALUES -(610323, '岐山县', 610300, '', 0, 0, 'Q', '107.62744727879', '34.449776962387', 3, 'tr_0 tr_610000 tr_610300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610324, '扶风县', 610300, '', 0, 0, 'F', '107.9064530651', '34.381463351226', 3, 'tr_0 tr_610000 tr_610300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610326, '眉县', 610300, '', 0, 0, 'M', '107.75639813644', '34.280375863086', 3, 'tr_0 tr_610000 tr_610300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610327, '陇县', 610300, '', 0, 0, 'L', '106.87058365441', '34.898780253107', 3, 'tr_0 tr_610000 tr_610300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610328, '千阳县', 610300, '', 0, 0, 'Q', '107.13946616644', '34.648544600794', 3, 'tr_0 tr_610000 tr_610300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610329, '麟游县', 610300, '', 0, 0, 'L', '107.799514106', '34.683748667164', 3, 'tr_0 tr_610000 tr_610300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610330, '凤县', 610300, '', 0, 0, 'F', '106.52255782187', '33.916583016343', 3, 'tr_0 tr_610000 tr_610300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610331, '太白县', 610300, '', 0, 0, 'T', '107.32552913248', '34.064248441153', 3, 'tr_0 tr_610000 tr_610300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610402, '秦都区', 610400, '', 0, 0, 'Q', '108.71243199239', '34.3351451161', 3, 'tr_0 tr_610000 tr_610400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610403, '杨陵区', 610400, '', 0, 0, 'Y', '108.09151531881', '34.278012507654', 3, 'tr_0 tr_610000 tr_610400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610404, '渭城区', 610400, '', 0, 0, 'W', '108.74345057148', '34.368110229368', 3, 'tr_0 tr_610000 tr_610400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610422, '三原县', 610400, '', 0, 0, 'S', '108.94744650025', '34.623078955252', 3, 'tr_0 tr_610000 tr_610400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610423, '泾阳县', 610400, '', 0, 0, 'J', '108.84937884705', '34.533316532768', 3, 'tr_0 tr_610000 tr_610400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610424, '乾县', 610400, '', 0, 0, 'G', '108.24537762554', '34.534018266142', 3, 'tr_0 tr_610000 tr_610400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610425, '礼泉县', 610400, '', 0, 0, 'L', '108.43161549166', '34.487390768504', 3, 'tr_0 tr_610000 tr_610400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610426, '永寿县', 610400, '', 0, 0, 'Y', '108.14846878644', '34.698035535617', 3, 'tr_0 tr_610000 tr_610400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610428, '长武县', 610400, '', 0, 0, 'Z', '107.80556078005', '35.211657338715', 3, 'tr_0 tr_610000 tr_610400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610429, '旬邑县', 610400, '', 0, 0, 'X', '108.34046703665', '35.117963919719', 3, 'tr_0 tr_610000 tr_610400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610430, '淳化县', 610400, '', 0, 0, 'C', '108.58744176373', '34.804776911295', 3, 'tr_0 tr_610000 tr_610400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610431, '武功县', 610400, '', 0, 0, 'W', '108.20655106479', '34.266137667633', 3, 'tr_0 tr_610000 tr_610400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610481, '兴平市', 610400, '', 0, 0, 'X', '108.49639400877', '34.305476520292', 3, 'tr_0 tr_610000 tr_610400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610482, '彬州市', 610400, '', 0, 0, 'B', '108.08456557823', '35.049610571828', 3, 'tr_0 tr_610000 tr_610400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610502, '临渭区', 610500, '', 0, 0, 'L', '109.4985962764', '34.504000470428', 3, 'tr_0 tr_610000 tr_610500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610503, '华州区', 610500, '', 0, 0, 'H', '109.7784773716', '34.5187307401', 3, 'tr_0 tr_610000 tr_610500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610522, '潼关县', 610500, '', 0, 0, 'T', '110.25250761972', '34.550326848532', 3, 'tr_0 tr_610000 tr_610500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610523, '大荔县', 610500, '', 0, 0, 'D', '109.94845330291', '34.801832760484', 3, 'tr_0 tr_610000 tr_610500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610524, '合阳县', 610500, '', 0, 0, 'H', '110.15539621274', '35.243872196866', 3, 'tr_0 tr_610000 tr_610500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610525, '澄城县', 610500, '', 0, 0, 'C', '109.93843360325', '35.196572815551', 3, 'tr_0 tr_610000 tr_610500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610526, '蒲城县', 610500, '', 0, 0, 'P', '109.59249651068', '34.961274128783', 3, 'tr_0 tr_610000 tr_610500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610527, '白水县', 610500, '', 0, 0, 'B', '109.59752055374', '35.183287514613', 3, 'tr_0 tr_610000 tr_610500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610528, '富平县', 610500, '', 0, 0, 'F', '109.18643744728', '34.757260440256', 3, 'tr_0 tr_610000 tr_610500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610581, '韩城市', 610500, '', 0, 0, 'H', '110.44955264012', '35.482086787313', 3, 'tr_0 tr_610000 tr_610500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610582, '华阴市', 610500, '', 0, 0, 'H', '110.09860075704', '34.571800158753', 3, 'tr_0 tr_610000 tr_610500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610602, '宝塔区', 610600, '', 0, 0, 'B', '109.49959402433', '36.596890441313', 3, 'tr_0 tr_610000 tr_610600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610603, '安塞区', 610600, '', 0, 0, 'A', '109.33541943984', '36.870098259307', 3, 'tr_0 tr_610000 tr_610600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610621, '延长县', 610600, '', 0, 0, 'Y', '110.01847172589', '36.585328801705', 3, 'tr_0 tr_610000 tr_610600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610622, '延川县', 610600, '', 0, 0, 'Y', '110.20054028665', '36.884136960993', 3, 'tr_0 tr_610000 tr_610600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610623, '子长县', 610600, '', 0, 0, 'Z', '109.68138985954', '37.148816918367', 3, 'tr_0 tr_610000 tr_610600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610625, '志丹县', 610600, '', 0, 0, 'Z', '108.77557747991', '36.828021135864', 3, 'tr_0 tr_610000 tr_610600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610626, '吴起县', 610600, '', 0, 0, 'W', '108.18258966361', '36.932576099483', 3, 'tr_0 tr_610000 tr_610600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610627, '甘泉县', 610600, '', 0, 0, 'G', '109.35752350454', '36.282688619053', 3, 'tr_0 tr_610000 tr_610600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610628, '富县', 610600, '', 0, 0, 'F', '109.38659653355', '35.993367977969', 3, 'tr_0 tr_610000 tr_610600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610629, '洛川县', 610600, '', 0, 0, 'L', '109.43840396825', '35.768300429421', 3, 'tr_0 tr_610000 tr_610600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610630, '宜川县', 610600, '', 0, 0, 'Y', '110.17541306458', '36.056397437854', 3, 'tr_0 tr_610000 tr_610600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610631, '黄龙县', 610600, '', 0, 0, 'H', '109.84654907671', '35.590233768069', 3, 'tr_0 tr_610000 tr_610600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610632, '黄陵县', 610600, '', 0, 0, 'H', '109.26960598495', '35.585076348969', 3, 'tr_0 tr_610000 tr_610600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610702, '汉台区', 610700, '', 0, 0, 'H', '107.03840167622', '33.074191093099', 3, 'tr_0 tr_610000 tr_610700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610703, '南郑区', 610700, '', 0, 0, 'N', '106.94243318334', '33.005614599734', 3, 'tr_0 tr_610000 tr_610700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610722, '城固县', 610700, '', 0, 0, 'C', '107.3406125803', '33.162399385178', 3, 'tr_0 tr_610000 tr_610700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610723, '洋县', 610700, '', 0, 0, 'Y', '107.55246428058', '33.228862589315', 3, 'tr_0 tr_610000 tr_610700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610724, '西乡县', 610700, '', 0, 0, 'X', '107.77339281906', '32.989397441895', 3, 'tr_0 tr_610000 tr_610700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610725, '勉县', 610700, '', 0, 0, 'M', '106.67942594867', '33.159804746955', 3, 'tr_0 tr_610000 tr_610700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610726, '宁强县', 610700, '', 0, 0, 'N', '106.26458864382', '32.835380199209', 3, 'tr_0 tr_610000 tr_610700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610727, '略阳县', 610700, '', 0, 0, 'L', '106.16354400616', '33.333193777733', 3, 'tr_0 tr_610000 tr_610700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610728, '镇巴县', 610700, '', 0, 0, 'Z', '107.9014456407', '32.54283336567', 3, 'tr_0 tr_610000 tr_610700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610729, '留坝县', 610700, '', 0, 0, 'L', '106.92741441352', '33.623825216737', 3, 'tr_0 tr_610000 tr_610700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610730, '佛坪县', 610700, '', 0, 0, 'F', '107.99742428443', '33.530693101588', 3, 'tr_0 tr_610000 tr_610700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610802, '榆阳区', 610800, '', 0, 0, 'Y', '109.72755916953', '38.28241962673', 3, 'tr_0 tr_610000 tr_610800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610803, '横山区', 610800, '', 0, 0, 'H', '109.30049134534', '37.968573394166', 3, 'tr_0 tr_610000 tr_610800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610822, '府谷县', 610800, '', 0, 0, 'F', '111.0736281152', '39.03379562985', 3, 'tr_0 tr_610000 tr_610800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610824, '靖边县', 610800, '', 0, 0, 'J', '108.80060049853', '37.605063193955', 3, 'tr_0 tr_610000 tr_610800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610825, '定边县', 610800, '', 0, 0, 'D', '107.60756957446', '37.600459865341', 3, 'tr_0 tr_610000 tr_610800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610826, '绥德县', 610800, '', 0, 0, 'S', '110.26942648536', '37.508907288933', 3, 'tr_0 tr_610000 tr_610800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610827, '米脂县', 610800, '', 0, 0, 'M', '110.19045141747', '37.761397514329', 3, 'tr_0 tr_610000 tr_610800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610828, '佳县', 610800, '', 0, 0, 'J', '110.49747741874', '38.025611678572', 3, 'tr_0 tr_610000 tr_610800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610829, '吴堡县', 610800, '', 0, 0, 'W', '110.74645500778', '37.458269874078', 3, 'tr_0 tr_610000 tr_610800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610830, '清涧县', 610800, '', 0, 0, 'Q', '110.12755916227', '37.094852887828', 3, 'tr_0 tr_610000 tr_610800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610831, '子洲县', 610800, '', 0, 0, 'Z', '110.04239845247', '37.617025887547', 3, 'tr_0 tr_610000 tr_610800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610881, '神木市', 610800, '', 0, 0, 'S', '110.50542966826', '38.848544495221', 3, 'tr_0 tr_610000 tr_610800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610902, '汉滨区', 610900, '', 0, 0, 'H', '109.03359606476', '32.701196105738', 3, 'tr_0 tr_610000 tr_610900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610921, '汉阴县', 610900, '', 0, 0, 'H', '108.51550698561', '32.899120857292', 3, 'tr_0 tr_610000 tr_610900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610922, '石泉县', 610900, '', 0, 0, 'S', '108.25442679592', '33.044602110263', 3, 'tr_0 tr_610000 tr_610900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610923, '宁陕县', 610900, '', 0, 0, 'N', '108.32056400011', '33.316555486503', 3, 'tr_0 tr_610000 tr_610900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610924, '紫阳县', 610900, '', 0, 0, 'Z', '108.54159431661', '32.525785619364', 3, 'tr_0 tr_610000 tr_610900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610925, '岚皋县', 610900, '', 0, 0, 'L', '108.90861535814', '32.312880776501', 3, 'tr_0 tr_610000 tr_610900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610926, '平利县', 610900, '', 0, 0, 'P', '109.36854670128', '32.394804123185', 3, 'tr_0 tr_610000 tr_610900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610927, '镇坪县', 610900, '', 0, 0, 'Z', '109.53349679292', '31.889643295791', 3, 'tr_0 tr_610000 tr_610900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610928, '旬阳县', 610900, '', 0, 0, 'X', '109.37155674338', '32.839864221772', 3, 'tr_0 tr_610000 tr_610900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(610929, '白河县', 610900, '', 0, 0, 'B', '110.11958688053', '32.814846485284', 3, 'tr_0 tr_610000 tr_610900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(611002, '商州区', 611000, '', 0, 0, 'S', '109.94747163465', '33.86885529308', 3, 'tr_0 tr_610000 tr_611000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(611021, '洛南县', 611000, '', 0, 0, 'L', '110.15442748007', '34.097070538846', 3, 'tr_0 tr_610000 tr_611000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(611022, '丹凤县', 611000, '', 0, 0, 'D', '110.3335602886', '33.701537322921', 3, 'tr_0 tr_610000 tr_611000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(611023, '商南县', 611000, '', 0, 0, 'S', '110.88840847837', '33.537533476707', 3, 'tr_0 tr_610000 tr_611000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(611024, '山阳县', 611000, '', 0, 0, 'S', '109.88854863218', '33.537968382769', 3, 'tr_0 tr_610000 tr_611000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(611025, '镇安县', 611000, '', 0, 0, 'Z', '109.15957460914', '33.429044650147', 3, 'tr_0 tr_610000 tr_611000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(611026, '柞水县', 611000, '', 0, 0, 'Z', '109.120502272', '33.692026241945', 3, 'tr_0 tr_610000 tr_611000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620102, '城关区', 620100, '', 0, 0, 'C', '103.83147490053', '36.063181475369', 3, 'tr_0 tr_620000 tr_620100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620103, '七里河区', 620100, '', 0, 0, 'Q', '103.79241388204', '36.07212925843', 3, 'tr_0 tr_620000 tr_620100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620104, '西固区', 620100, '', 0, 0, 'X', '103.63458007682', '36.094109365757', 3, 'tr_0 tr_620000 tr_620100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620105, '安宁区', 620100, '', 0, 0, 'A', '103.72553503682', '36.109753754973', 3, 'tr_0 tr_620000 tr_620100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620111, '红古区', 620100, '', 0, 0, 'H', '102.86542781272', '36.351863423179', 3, 'tr_0 tr_620000 tr_620100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620121, '永登县', 620100, '', 0, 0, 'Y', '103.26662443823', '36.74209521344', 3, 'tr_0 tr_620000 tr_620100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620122, '皋兰县', 620100, '', 0, 0, 'G', '103.95346415997', '36.338142148673', 3, 'tr_0 tr_620000 tr_620100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620123, '榆中县', 620100, '', 0, 0, 'Y', '104.11956587928', '35.848851048242', 3, 'tr_0 tr_620000 tr_620100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620171, '兰州新区', 620100, '', 0, 0, 'L', '103.76383312444', '36.082833434467', 3, 'tr_0 tr_620000 tr_620100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620201, '市辖区', 620200, '', 0, 0, 'S', '98.208045429791', '39.821463455258', 3, 'tr_0 tr_620000 tr_620200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620302, '金川区', 620300, '', 0, 0, 'J', '102.20058588614', '38.525772245594', 3, 'tr_0 tr_620000 tr_620300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620321, '永昌县', 620300, '', 0, 0, 'Y', '101.97946358316', '38.252940956889', 3, 'tr_0 tr_620000 tr_620300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620402, '白银区', 620400, '', 0, 0, 'B', '104.15541276065', '36.541463568069', 3, 'tr_0 tr_620000 tr_620400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620403, '平川区', 620400, '', 0, 0, 'P', '104.83161394007', '36.733498751869', 3, 'tr_0 tr_620000 tr_620400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620421, '靖远县', 620400, '', 0, 0, 'J', '104.68251507796', '36.577096288837', 3, 'tr_0 tr_620000 tr_620400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620422, '会宁县', 620400, '', 0, 0, 'H', '105.05960693274', '35.698508053094', 3, 'tr_0 tr_620000 tr_620400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620423, '景泰县', 620400, '', 0, 0, 'J', '104.06944438436', '37.187406260097', 3, 'tr_0 tr_620000 tr_620400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620502, '秦州区', 620500, '', 0, 0, 'Q', '105.73041549435', '34.587315743121', 3, 'tr_0 tr_620000 tr_620500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620503, '麦积区', 620500, '', 0, 0, 'M', '105.89559698949', '34.576336861448', 3, 'tr_0 tr_620000 tr_620500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620521, '清水县', 620500, '', 0, 0, 'Q', '106.14359506621', '34.753882906363', 3, 'tr_0 tr_620000 tr_620500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620522, '秦安县', 620500, '', 0, 0, 'Q', '105.68157480343', '34.864876111568', 3, 'tr_0 tr_620000 tr_620500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620523, '甘谷县', 620500, '', 0, 0, 'G', '105.34247534291', '34.738300137398', 3, 'tr_0 tr_620000 tr_620500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620524, '武山县', 620500, '', 0, 0, 'W', '104.89742838309', '34.727669101635', 3, 'tr_0 tr_620000 tr_620500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620525, '张家川回族自治县', 620500, '', 0, 0, 'Z', '106.21139036271', '34.99490501302', 3, 'tr_0 tr_620000 tr_620500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620602, '凉州区', 620600, '', 0, 0, 'L', '102.64857479651', '37.934121948376', 3, 'tr_0 tr_620000 tr_620600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620621, '民勤县', 620600, '', 0, 0, 'M', '103.10040027988', '38.630624826433', 3, 'tr_0 tr_620000 tr_620600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620622, '古浪县', 620600, '', 0, 0, 'G', '102.90362978165', '37.475801906601', 3, 'tr_0 tr_620000 tr_620600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620623, '天祝藏族自治县', 620600, '', 0, 0, 'T', '103.14862131966', '36.97759617654', 3, 'tr_0 tr_620000 tr_620600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620702, '甘州区', 620700, '', 0, 0, 'G', '100.48455772128', '38.934781471785', 3, 'tr_0 tr_620000 tr_620700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620721, '肃南裕固族自治县', 620700, '', 0, 0, 'S', '99.621905418008', '38.843100205023', 3, 'tr_0 tr_620000 tr_620700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620722, '民乐县', 620700, '', 0, 0, 'M', '100.81942903742', '38.436842233981', 3, 'tr_0 tr_620000 tr_620700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620723, '临泽县', 620700, '', 0, 0, 'L', '100.17055476077', '39.158514444726', 3, 'tr_0 tr_620000 tr_620700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620724, '高台县', 620700, '', 0, 0, 'G', '99.825759504337', '39.383646046807', 3, 'tr_0 tr_620000 tr_620700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620725, '山丹县', 620700, '', 0, 0, 'S', '101.09561558172', '38.790452663306', 3, 'tr_0 tr_620000 tr_620700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620802, '崆峒区', 620800, '', 0, 0, 'K', '106.68141452757', '35.548814892232', 3, 'tr_0 tr_620000 tr_620800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620821, '泾川县', 620800, '', 0, 0, 'J', '107.37451813364', '35.338668597821', 3, 'tr_0 tr_620000 tr_620800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620822, '灵台县', 620800, '', 0, 0, 'L', '107.62746120252', '35.07158181696', 3, 'tr_0 tr_620000 tr_620800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620823, '崇信县', 620800, '', 0, 0, 'C', '107.04141513189', '35.308615839828', 3, 'tr_0 tr_620000 tr_620800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620825, '庄浪县', 620800, '', 0, 0, 'Z', '106.04258582178', '35.208192125804', 3, 'tr_0 tr_620000 tr_620800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620826, '静宁县', 620800, '', 0, 0, 'J', '105.73841580322', '35.528257189136', 3, 'tr_0 tr_620000 tr_620800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620881, '华亭市', 620800, '', 0, 0, 'H', '106.65948599177', '35.223550762897', 3, 'tr_0 tr_620000 tr_620800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620902, '肃州区', 620900, '', 0, 0, 'S', '98.514321853032', '39.751245509963', 3, 'tr_0 tr_620000 tr_620900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620921, '金塔县', 620900, '', 0, 0, 'J', '98.908368236172', '39.990029254093', 3, 'tr_0 tr_620000 tr_620900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620922, '瓜州县', 620900, '', 0, 0, 'G', '95.788736364512', '40.52610597895', 3, 'tr_0 tr_620000 tr_620900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620923, '肃北蒙古族自治县', 620900, '', 0, 0, 'S', '94.883692395412', '39.518329738436', 3, 'tr_0 tr_620000 tr_620900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620924, '阿克塞哈萨克族自治县', 620900, '', 0, 0, 'A', '94.346760190396', '39.640045316917', 3, 'tr_0 tr_620000 tr_620900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620981, '玉门市', 620900, '', 0, 0, 'Y', '97.051711691182', '40.297620020884', 3, 'tr_0 tr_620000 tr_620900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(620982, '敦煌市', 620900, '', 0, 0, 'D', '94.668527025762', '40.147867484244', 3, 'tr_0 tr_620000 tr_620900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(621002, '西峰区', 621000, '', 0, 0, 'X', '107.65739112517', '35.736864475978', 3, 'tr_0 tr_620000 tr_621000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(621021, '庆城县', 621000, '', 0, 0, 'Q', '107.88840619724', '36.021726360644', 3, 'tr_0 tr_620000 tr_621000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(621022, '环县', 621000, '', 0, 0, 'H', '107.31446964419', '36.574427108907', 3, 'tr_0 tr_620000 tr_621000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(621023, '华池县', 621000, '', 0, 0, 'H', '107.99638952632', '36.467575129884', 3, 'tr_0 tr_620000 tr_621000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(621024, '合水县', 621000, '', 0, 0, 'H', '108.026447188', '35.8252622164', 3, 'tr_0 tr_620000 tr_621000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(621025, '正宁县', 621000, '', 0, 0, 'Z', '108.36637461671', '35.498218780898', 3, 'tr_0 tr_620000 tr_621000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(621026, '宁县', 621000, '', 0, 0, 'N', '107.93457092587', '35.507932974537', 3, 'tr_0 tr_620000 tr_621000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(621027, '镇原县', 621000, '', 0, 0, 'Z', '107.20757586986', '35.683230586316', 3, 'tr_0 tr_620000 tr_621000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(621102, '安定区', 621100, '', 0, 0, 'A', '104.61650040265', '35.585600016725', 3, 'tr_0 tr_620000 tr_621100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(621121, '通渭县', 621100, '', 0, 0, 'T', '105.24840362211', '35.217216821266', 3, 'tr_0 tr_620000 tr_621100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(621122, '陇西县', 621100, '', 0, 0, 'L', '104.64138059069', '35.010197162318', 3, 'tr_0 tr_620000 tr_621100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(621123, '渭源县', 621100, '', 0, 0, 'W', '104.22158401062', '35.142391958021', 3, 'tr_0 tr_620000 tr_621100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(621124, '临洮县', 621100, '', 0, 0, 'L', '103.8656010777', '35.400587040258', 3, 'tr_0 tr_620000 tr_621100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(621125, '漳县', 621100, '', 0, 0, 'Z', '104.4785953255', '34.854249981778', 3, 'tr_0 tr_620000 tr_621100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(621126, '岷县', 621100, '', 0, 0, 'M', '104.04339603983', '34.44440764065', 3, 'tr_0 tr_620000 tr_621100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(621202, '武都区', 621200, '', 0, 0, 'W', '104.93259336075', '33.398072188089', 3, 'tr_0 tr_620000 tr_621200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(621221, '成县', 621200, '', 0, 0, 'C', '105.7484779029', '33.756635187351', 3, 'tr_0 tr_620000 tr_621200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(621222, '文县', 621200, '', 0, 0, 'W', '104.68955842198', '32.949601280768', 3, 'tr_0 tr_620000 tr_621200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(621223, '宕昌县', 621200, '', 0, 0, 'D', '104.39938579987', '34.053486291359', 3, 'tr_0 tr_620000 tr_621200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(621224, '康县', 621200, '', 0, 0, 'K', '105.61539187549', '33.335376401996', 3, 'tr_0 tr_620000 tr_621200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(621225, '西和县', 621200, '', 0, 0, 'X', '105.30761048912', '34.016787358437', 3, 'tr_0 tr_620000 tr_621200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(621226, '礼县', 621200, '', 0, 0, 'L', '105.1835909694', '34.194685061207', 3, 'tr_0 tr_620000 tr_621200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(621227, '徽县', 621200, '', 0, 0, 'H', '106.09441787005', '33.77519418709', 3, 'tr_0 tr_620000 tr_621200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(621228, '两当县', 621200, '', 0, 0, 'L', '106.31141946599', '33.915122835173', 3, 'tr_0 tr_620000 tr_621200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(622901, '临夏市', 622900, '', 0, 0, 'L', '103.2495491776', '35.609898772689', 3, 'tr_0 tr_620000 tr_622900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(622921, '临夏县', 622900, '', 0, 0, 'L', '103.00251408439', '35.497397958837', 3, 'tr_0 tr_620000 tr_622900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(622922, '康乐县', 622900, '', 0, 0, 'K', '103.71547554223', '35.376109760702', 3, 'tr_0 tr_620000 tr_622900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(622923, '永靖县', 622900, '', 0, 0, 'Y', '103.29250749455', '35.963330304471', 3, 'tr_0 tr_620000 tr_622900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(622924, '广河县', 622900, '', 0, 0, 'G', '103.58240999619', '35.494101361696', 3, 'tr_0 tr_620000 tr_622900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(622925, '和政县', 622900, '', 0, 0, 'H', '103.35752370329', '35.430589904166', 3, 'tr_0 tr_620000 tr_622900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(622926, '东乡族自治县', 622900, '', 0, 0, 'D', '103.39561320437', '35.669329728624', 3, 'tr_0 tr_620000 tr_622900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(622927, '积石山保安族东乡族撒拉族自治县', 622900, '', 0, 0, 'J', '102.88251807505', '35.72349932364', 3, 'tr_0 tr_620000 tr_622900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(623001, '合作市', 623000, '', 0, 0, 'H', '102.917571573', '35.005935428196', 3, 'tr_0 tr_620000 tr_623000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(623021, '临潭县', 623000, '', 0, 0, 'L', '103.36053329624', '34.698639411522', 3, 'tr_0 tr_620000 tr_623000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(623022, '卓尼县', 623000, '', 0, 0, 'Z', '103.51361578396', '34.594916432804', 3, 'tr_0 tr_620000 tr_623000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(623023, '舟曲县', 623000, '', 0, 0, 'Z', '104.37748996239', '33.790814973644', 3, 'tr_0 tr_620000 tr_623000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(623024, '迭部县', 623000, '', 0, 0, 'D', '103.22844034558', '34.062020054097', 3, 'tr_0 tr_620000 tr_623000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(623025, '玛曲县', 623000, '', 0, 0, 'M', '102.07860004026', '34.003358168342', 3, 'tr_0 tr_620000 tr_623000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(623026, '碌曲县', 623000, '', 0, 0, 'L', '102.49442413371', '34.597087271566', 3, 'tr_0 tr_620000 tr_623000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(623027, '夏河县', 623000, '', 0, 0, 'X', '102.52857708038', '35.208324325541', 3, 'tr_0 tr_620000 tr_623000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(630102, '城东区', 630100, '', 0, 0, 'C', '101.80956903833', '36.605707645661', 3, 'tr_0 tr_630000 tr_630100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(630103, '城中区', 630100, '', 0, 0, 'C', '101.79048354964', '36.628800570589', 3, 'tr_0 tr_630000 tr_630100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(630104, '城西区', 630100, '', 0, 0, 'C', '101.77241422413', '36.634496979524', 3, 'tr_0 tr_630000 tr_630100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(630105, '城北区', 630100, '', 0, 0, 'C', '101.77240488176', '36.656293630837', 3, 'tr_0 tr_630000 tr_630100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(630121, '大通回族土族自治县', 630100, '', 0, 0, 'D', '101.69256375752', '36.932666463407', 3, 'tr_0 tr_630000 tr_630100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(630122, '湟中县', 630100, '', 0, 0, 'H', '101.57861675782', '36.506627546281', 3, 'tr_0 tr_630000 tr_630100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(630123, '湟源县', 630100, '', 0, 0, 'H', '101.26244861154', '36.688587514903', 3, 'tr_0 tr_630000 tr_630100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(630202, '乐都区', 630200, '', 0, 0, 'L', '102.40856633883', '36.487820051522', 3, 'tr_0 tr_630000 tr_630200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(630203, '平安区', 630200, '', 0, 0, 'P', '102.11442787756', '36.506553573162', 3, 'tr_0 tr_630000 tr_630200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(630222, '民和回族土族自治县', 630200, '', 0, 0, 'M', '102.11044407228', '36.508511080941', 3, 'tr_0 tr_630000 tr_630200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(630223, '互助土族自治县', 630200, '', 0, 0, 'H', '101.96456904899', '36.850021613826', 3, 'tr_0 tr_630000 tr_630200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(630224, '化隆回族自治县', 630200, '', 0, 0, 'H', '102.27044827345', '36.100988250893', 3, 'tr_0 tr_630000 tr_630200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(630225, '循化撒拉族自治县', 630200, '', 0, 0, 'X', '102.4953853206', '35.856667223862', 3, 'tr_0 tr_630000 tr_630200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632221, '门源回族自治县', 632200, '', 0, 0, 'M', '101.62843803903', '37.382180626313', 3, 'tr_0 tr_630000 tr_632200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632222, '祁连县', 632200, '', 0, 0, 'Q', '100.25962157243', '38.182924871569', 3, 'tr_0 tr_630000 tr_632200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632223, '海晏县', 632200, '', 0, 0, 'H', '101.0005855486', '36.902376022515', 3, 'tr_0 tr_630000 tr_632200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632224, '刚察县', 632200, '', 0, 0, 'G', '100.15360607139', '37.327320072254', 3, 'tr_0 tr_630000 tr_632200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632321, '同仁县', 632300, '', 0, 0, 'T', '102.0254377812', '35.521865150524', 3, 'tr_0 tr_630000 tr_632300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632322, '尖扎县', 632300, '', 0, 0, 'J', '102.0375073242', '35.944284459868', 3, 'tr_0 tr_630000 tr_632300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632323, '泽库县', 632300, '', 0, 0, 'Z', '101.47359451319', '35.0420144951', 3, 'tr_0 tr_630000 tr_632300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632324, '河南蒙古族自治县', 632300, '', 0, 0, 'H', '101.62247338027', '34.740396071091', 3, 'tr_0 tr_630000 tr_632300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632521, '共和县', 632500, '', 0, 0, 'G', '100.62662348005', '36.288703317865', 3, 'tr_0 tr_630000 tr_632500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632522, '同德县', 632500, '', 0, 0, 'T', '100.58542386564', '35.259857775817', 3, 'tr_0 tr_630000 tr_632500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632523, '贵德县', 632500, '', 0, 0, 'G', '101.43953310384', '36.046158080751', 3, 'tr_0 tr_630000 tr_632500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632524, '兴海县', 632500, '', 0, 0, 'X', '99.994380072293', '35.594629879949', 3, 'tr_0 tr_630000 tr_632500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632525, '贵南县', 632500, '', 0, 0, 'G', '100.75359321473', '35.592415454611', 3, 'tr_0 tr_630000 tr_632500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632621, '玛沁县', 632600, '', 0, 0, 'M', '100.24556434882', '34.483569486002', 3, 'tr_0 tr_630000 tr_632600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632622, '班玛县', 632600, '', 0, 0, 'B', '100.74360459645', '32.93850392747', 3, 'tr_0 tr_630000 tr_632600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632623, '甘德县', 632600, '', 0, 0, 'G', '99.907510695578', '33.975003677602', 3, 'tr_0 tr_630000 tr_632600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632624, '达日县', 632600, '', 0, 0, 'D', '99.658010113065', '33.754937373991', 3, 'tr_0 tr_630000 tr_632600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632625, '久治县', 632600, '', 0, 0, 'J', '101.48853225585', '33.434773499408', 3, 'tr_0 tr_630000 tr_632600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632626, '玛多县', 632600, '', 0, 0, 'M', '98.215883832099', '34.920748646186', 3, 'tr_0 tr_630000 tr_632600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632701, '玉树市', 632700, '', 0, 0, 'Y', '97.015376401101', '32.999555650886', 3, 'tr_0 tr_630000 tr_632700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632722, '杂多县', 632700, '', 0, 0, 'Z', '95.306964878828', '32.89924067586', 3, 'tr_0 tr_630000 tr_632700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632723, '称多县', 632700, '', 0, 0, 'C', '97.115000009277', '33.374225698944', 3, 'tr_0 tr_630000 tr_632700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632724, '治多县', 632700, '', 0, 0, 'Z', '95.61979357437', '33.857953267719', 3, 'tr_0 tr_630000 tr_632700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632725, '囊谦县', 632700, '', 0, 0, 'N', '96.486918271283', '32.209194368698', 3, 'tr_0 tr_630000 tr_632700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632726, '曲麻莱县', 632700, '', 0, 0, 'Q', '95.803750013992', '34.132298666997', 3, 'tr_0 tr_630000 tr_632700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632801, '格尔木市', 632800, '', 0, 0, 'G', '94.933310210425', '36.412371046954', 3, 'tr_0 tr_630000 tr_632800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632802, '德令哈市', 632800, '', 0, 0, 'D', '97.367470299975', '37.375345907463', 3, 'tr_0 tr_630000 tr_632800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632803, '茫崖市', 632800, '', 0, 0, 'M', '90.87951750334', '38.261902814972', 3, 'tr_0 tr_630000 tr_632800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632821, '乌兰县', 632800, '', 0, 0, 'W', '98.486735699295', '36.935747859032', 3, 'tr_0 tr_630000 tr_632800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632822, '都兰县', 632800, '', 0, 0, 'D', '98.102704793777', '36.307611028682', 3, 'tr_0 tr_630000 tr_632800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632823, '天峻县', 632800, '', 0, 0, 'T', '99.029242967967', '37.306903395111', 3, 'tr_0 tr_630000 tr_632800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(632857, '大柴旦行政委员会', 632800, '', 0, 0, 'D', '95.371722465415', '37.857987655919', 3, 'tr_0 tr_630000 tr_632800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(640104, '兴庆区', 640100, '', 0, 0, 'X', '106.29549376692', '38.479578929456', 3, 'tr_0 tr_640000 tr_640100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(640105, '西夏区', 640100, '', 0, 0, 'X', '106.15658124015', '38.496817469604', 3, 'tr_0 tr_640000 tr_640100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(640106, '金凤区', 640100, '', 0, 0, 'J', '106.24956089094', '38.478695238722', 3, 'tr_0 tr_640000 tr_640100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(640121, '永宁县', 640100, '', 0, 0, 'Y', '106.25960457536', '38.283001541521', 3, 'tr_0 tr_640000 tr_640100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(640122, '贺兰县', 640100, '', 0, 0, 'H', '106.3565182653', '38.560406689579', 3, 'tr_0 tr_640000 tr_640100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(640181, '灵武市', 640100, '', 0, 0, 'L', '106.34644035545', '38.108658666793', 3, 'tr_0 tr_640000 tr_640100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540502, '乃东区', 540500, '', 0, 0, 'N', '91.778681965641', '29.234229154985', 3, 'tr_0 tr_540000 tr_540500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540521, '扎囊县', 540500, '', 0, 0, 'Z', '91.343627127639', '29.251164315795', 3, 'tr_0 tr_540000 tr_540500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540522, '贡嘎县', 540500, '', 0, 0, 'G', '90.990582372498', '29.295585920341', 3, 'tr_0 tr_540000 tr_540500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540523, '桑日县', 540500, '', 0, 0, 'S', '92.022157253696', '29.265175836421', 3, 'tr_0 tr_540000 tr_540500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540524, '琼结县', 540500, '', 0, 0, 'Q', '91.690100777976', '29.030865581933', 3, 'tr_0 tr_540000 tr_540500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540525, '曲松县', 540500, '', 0, 0, 'Q', '92.210174662975', '29.068424815624', 3, 'tr_0 tr_540000 tr_540500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540526, '措美县', 540500, '', 0, 0, 'C', '91.439917573188', '28.444257990161', 3, 'tr_0 tr_540000 tr_540500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540527, '洛扎县', 540500, '', 0, 0, 'L', '90.866452001915', '28.391634617398', 3, 'tr_0 tr_540000 tr_540500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540528, '加查县', 540500, '', 0, 0, 'J', '92.600448881489', '29.146087474784', 3, 'tr_0 tr_540000 tr_540500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540529, '隆子县', 540500, '', 0, 0, 'L', '92.468965520987', '28.414018998419', 3, 'tr_0 tr_540000 tr_540500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540530, '错那县', 540500, '', 0, 0, 'C', '91.96375005827', '27.997004265923', 3, 'tr_0 tr_540000 tr_540500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(540531, '浪卡子县', 540500, '', 0, 0, 'L', '90.404646883462', '28.973992017804', 3, 'tr_0 tr_540000 tr_540500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(640302, '利通区', 640300, '', 0, 0, 'L', '106.21940702074', '37.990746080857', 3, 'tr_0 tr_640000 tr_640300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(640303, '红寺堡区', 640300, '', 0, 0, 'H', '106.06842117808', '37.431882454446', 3, 'tr_0 tr_640000 tr_640300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(640323, '盐池县', 640300, '', 0, 0, 'Y', '107.41337954864', '37.789295649909', 3, 'tr_0 tr_640000 tr_640300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(640324, '同心县', 640300, '', 0, 0, 'T', '105.9205990776', '36.986269629165', 3, 'tr_0 tr_640000 tr_640300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(640381, '青铜峡市', 640300, '', 0, 0, 'Q', '106.08537031661', '38.027412223967', 3, 'tr_0 tr_640000 tr_640300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(640402, '原州区', 640400, '', 0, 0, 'Y', '106.29451461392', '36.009367675763', 3, 'tr_0 tr_640000 tr_640400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(640422, '西吉县', 640400, '', 0, 0, 'X', '105.73538590857', '35.97007642089', 3, 'tr_0 tr_640000 tr_640400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(640423, '隆德县', 640400, '', 0, 0, 'L', '106.1184982967', '35.631762315094', 3, 'tr_0 tr_640000 tr_640400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(640424, '泾源县', 640400, '', 0, 0, 'J', '106.33739343083', '35.504361637679', 3, 'tr_0 tr_640000 tr_640400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(640425, '彭阳县', 640400, '', 0, 0, 'P', '106.64454429656', '35.85540546349', 3, 'tr_0 tr_640000 tr_640400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(640502, '沙坡头区', 640500, '', 0, 0, 'S', '105.20357090089', '37.505701418703', 3, 'tr_0 tr_640000 tr_640500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(640521, '中宁县', 640500, '', 0, 0, 'Z', '105.6915371912', '37.497420805579', 3, 'tr_0 tr_640000 tr_640500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(640522, '海原县', 640500, '', 0, 0, 'H', '105.65055514638', '36.570781489719', 3, 'tr_0 tr_640000 tr_640500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(650102, '天山区', 650100, '', 0, 0, 'T', '87.638407777566', '43.800271358313', 3, 'tr_0 tr_650000 tr_650100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(650103, '沙依巴克区', 650100, '', 0, 0, 'S', '87.604670027697', '43.807262352761', 3, 'tr_0 tr_650000 tr_650100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(650104, '新市区', 650100, '', 0, 0, 'X', '87.575908441201', '43.861394002748', 3, 'tr_0 tr_650000 tr_650100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(650105, '水磨沟区', 650100, '', 0, 0, 'S', '87.648896662192', '43.838251163831', 3, 'tr_0 tr_650000 tr_650100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(650106, '头屯河区', 650100, '', 0, 0, 'T', '87.434506709858', '43.882653022602', 3, 'tr_0 tr_650000 tr_650100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(650107, '达坂城区', 650100, '', 0, 0, 'D', '88.317397656607', '43.36994274634', 3, 'tr_0 tr_650000 tr_650100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(650109, '米东区', 650100, '', 0, 0, 'M', '87.662134271848', '43.979247426398', 3, 'tr_0 tr_650000 tr_650100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(650121, '乌鲁木齐县', 650100, '', 0, 0, 'W', '87.416028745179', '43.477086065793', 3, 'tr_0 tr_650000 tr_650100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(650171, '乌鲁木齐经济技术开发区', 650100, '', 0, 0, 'W', '87.523118529771', '43.868981036009', 3, 'tr_0 tr_650000 tr_650100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(650172, '乌鲁木齐高新技术产业开发区', 650100, '', 0, 0, 'W', '87.58408445863', '43.87767236981', 3, 'tr_0 tr_650000 tr_650100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(650202, '独山子区', 650200, '', 0, 0, 'D', '84.893613283343', '44.334407392365', 3, 'tr_0 tr_650000 tr_650200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(650203, '克拉玛依区', 650200, '', 0, 0, 'K', '84.866221962114', '45.596624206981', 3, 'tr_0 tr_650000 tr_650200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(650204, '白碱滩区', 650200, '', 0, 0, 'B', '85.139510123686', '45.693951629764', 3, 'tr_0 tr_650000 tr_650200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(650205, '乌尔禾区', 650200, '', 0, 0, 'W', '85.700304826442', '46.095295184689', 3, 'tr_0 tr_650000 tr_650200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(650402, '高昌区', 650400, '', 0, 0, 'G', '89.192458882701', '42.948548691684', 3, 'tr_0 tr_650000 tr_650400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(650421, '鄯善县', 650400, '', 0, 0, 'S', '90.220093886103', '42.874759228479', 3, 'tr_0 tr_650000 tr_650400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(650422, '托克逊县', 650400, '', 0, 0, 'T', '88.660164359541', '42.798545831023', 3, 'tr_0 tr_650000 tr_650400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(650502, '伊州区', 650500, '', 0, 0, 'Y', '93.521320462369', '42.832824924721', 3, 'tr_0 tr_650000 tr_650500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(650521, '巴里坤哈萨克自治县', 650500, '', 0, 0, 'B', '93.022930953564', '43.605688770787', 3, 'tr_0 tr_650000 tr_650500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(650522, '伊吾县', 650500, '', 0, 0, 'Y', '94.703825671285', '43.260676527466', 3, 'tr_0 tr_650000 tr_650500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652301, '昌吉市', 652300, '', 0, 0, 'C', '87.27386462195', '44.020126845939', 3, 'tr_0 tr_650000 tr_652300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652302, '阜康市', 652300, '', 0, 0, 'F', '87.993677905062', '44.163137321346', 3, 'tr_0 tr_650000 tr_652300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652323, '呼图壁县', 652300, '', 0, 0, 'H', '86.905143806731', '44.197654596132', 3, 'tr_0 tr_650000 tr_652300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652324, '玛纳斯县', 652300, '', 0, 0, 'M', '86.220643452199', '44.3100628588', 3, 'tr_0 tr_650000 tr_652300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652325, '奇台县', 652300, '', 0, 0, 'Q', '89.601080811724', '44.026897819018', 3, 'tr_0 tr_650000 tr_652300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652327, '吉木萨尔县', 652300, '', 0, 0, 'J', '89.187122858141', '44.005717795203', 3, 'tr_0 tr_650000 tr_652300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652328, '木垒哈萨克自治县', 652300, '', 0, 0, 'M', '90.292514737334', '43.840308302807', 3, 'tr_0 tr_650000 tr_652300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652701, '博乐市', 652700, '', 0, 0, 'B', '82.057972254591', '44.860009784639', 3, 'tr_0 tr_650000 tr_652700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652702, '阿拉山口市', 652700, '', 0, 0, 'A', '82.560725272438', '45.179670079921', 3, 'tr_0 tr_650000 tr_652700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652722, '精河县', 652700, '', 0, 0, 'J', '82.900655316205', '44.606645943492', 3, 'tr_0 tr_650000 tr_652700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652723, '温泉县', 652700, '', 0, 0, 'W', '81.031145546486', '44.974856638705', 3, 'tr_0 tr_650000 tr_652700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652801, '库尔勒市', 652800, '', 0, 0, 'K', '86.181494309938', '41.732373221412', 3, 'tr_0 tr_650000 tr_652800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652822, '轮台县', 652800, '', 0, 0, 'L', '84.258212152054', '41.783813000515', 3, 'tr_0 tr_650000 tr_652800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652823, '尉犁县', 652800, '', 0, 0, 'W', '86.266036536399', '41.350122782054', 3, 'tr_0 tr_650000 tr_652800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652824, '若羌县', 652800, '', 0, 0, 'R', '88.175324441896', '39.028991037175', 3, 'tr_0 tr_650000 tr_652800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652825, '且末县', 652800, '', 0, 0, 'Q', '85.535990385731', '38.15138769413', 3, 'tr_0 tr_650000 tr_652800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652826, '焉耆回族自治县', 652800, '', 0, 0, 'Y', '86.581222026277', '42.064850858728', 3, 'tr_0 tr_650000 tr_652800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652827, '和静县', 652800, '', 0, 0, 'H', '86.390398220692', '42.329365035879', 3, 'tr_0 tr_650000 tr_652800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652828, '和硕县', 652800, '', 0, 0, 'H', '86.883689037252', '42.288065062428', 3, 'tr_0 tr_650000 tr_652800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652829, '博湖县', 652800, '', 0, 0, 'B', '86.638469149986', '41.986430356829', 3, 'tr_0 tr_650000 tr_652800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652871, '库尔勒经济技术开发区', 652800, '', 0, 0, 'K', '86.229512961483', '41.71760888729', 3, 'tr_0 tr_650000 tr_652800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652901, '阿克苏市', 652900, '', 0, 0, 'A', '80.269926757334', '41.173859926953', 3, 'tr_0 tr_650000 tr_652900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652922, '温宿县', 652900, '', 0, 0, 'W', '80.245564352581', '41.282567249887', 3, 'tr_0 tr_650000 tr_652900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652923, '库车县', 652900, '', 0, 0, 'K', '82.968458787284', '41.723447514833', 3, 'tr_0 tr_650000 tr_652900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652924, '沙雅县', 652900, '', 0, 0, 'S', '82.788823736148', '41.227749329027', 3, 'tr_0 tr_650000 tr_652900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652925, '新和县', 652900, '', 0, 0, 'X', '82.615823030526', '41.553999628477', 3, 'tr_0 tr_650000 tr_652900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652926, '拜城县', 652900, '', 0, 0, 'B', '81.858516272038', '41.800706601984', 3, 'tr_0 tr_650000 tr_652900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652927, '乌什县', 652900, '', 0, 0, 'W', '79.230868990897', '41.220871106999', 3, 'tr_0 tr_650000 tr_652900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652928, '阿瓦提县', 652900, '', 0, 0, 'A', '80.381849245908', '40.649358802911', 3, 'tr_0 tr_650000 tr_652900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(652929, '柯坪县', 652900, '', 0, 0, 'K', '79.053213535614', '40.514055520966', 3, 'tr_0 tr_650000 tr_652900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(653001, '阿图什市', 653000, '', 0, 0, 'A', '76.174906408698', '39.722079128589', 3, 'tr_0 tr_650000 tr_653000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(653022, '阿克陶县', 653000, '', 0, 0, 'A', '75.953725266709', '39.153888517642', 3, 'tr_0 tr_650000 tr_653000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(653023, '阿合奇县', 653000, '', 0, 0, 'A', '78.45253927839', '40.942958224222', 3, 'tr_0 tr_650000 tr_653000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(653024, '乌恰县', 653000, '', 0, 0, 'W', '75.26533363237', '39.725123590953', 3, 'tr_0 tr_650000 tr_653000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(653101, '喀什市', 653100, '', 0, 0, 'K', '76.000312737915', '39.473649532912', 3, 'tr_0 tr_650000 tr_653100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(653121, '疏附县', 653100, '', 0, 0, 'S', '75.869168667361', '39.381291555212', 3, 'tr_0 tr_650000 tr_653100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(653122, '疏勒县', 653100, '', 0, 0, 'S', '76.056614395075', '39.406709108732', 3, 'tr_0 tr_650000 tr_653100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(653123, '英吉沙县', 653100, '', 0, 0, 'Y', '76.182075425651', '38.935670863521', 3, 'tr_0 tr_650000 tr_653100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(653124, '泽普县', 653100, '', 0, 0, 'Z', '77.266559423761', '38.190725516333', 3, 'tr_0 tr_650000 tr_653100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(653125, '莎车县', 653100, '', 0, 0, 'S', '77.252436713686', '38.420156752419', 3, 'tr_0 tr_650000 tr_653100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'); -INSERT INTO `hg_sys_provinces` (`id`, `title`, `pid`, `short_title`, `areacode`, `zipcode`, `pinyin`, `lng`, `lat`, `level`, `tree`, `sort`, `status`, `created_at`, `updated_at`) VALUES -(653126, '叶城县', 653100, '', 0, 0, 'Y', '77.420097621865', '37.889166844427', 3, 'tr_0 tr_650000 tr_653100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(653127, '麦盖提县', 653100, '', 0, 0, 'M', '77.658824287414', '38.911194315553', 3, 'tr_0 tr_650000 tr_653100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(653128, '岳普湖县', 653100, '', 0, 0, 'Y', '76.78414771574', '39.239387333945', 3, 'tr_0 tr_650000 tr_653100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(653129, '伽师县', 653100, '', 0, 0, 'J', '76.730385568257', '39.493851605868', 3, 'tr_0 tr_650000 tr_653100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(653130, '巴楚县', 653100, '', 0, 0, 'B', '78.5557014018', '39.79078837708', 3, 'tr_0 tr_650000 tr_653100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(653131, '塔什库尔干塔吉克自治县', 653100, '', 0, 0, 'T', '75.230804744838', '37.779045640763', 3, 'tr_0 tr_650000 tr_653100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(653201, '和田市', 653200, '', 0, 0, 'H', '79.920212469755', '37.118335544466', 3, 'tr_0 tr_650000 tr_653200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(653221, '和田县', 653200, '', 0, 0, 'H', '79.866215595042', '37.090362410221', 3, 'tr_0 tr_650000 tr_653200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(653222, '墨玉县', 653200, '', 0, 0, 'M', '79.735479265358', '37.282993446907', 3, 'tr_0 tr_650000 tr_653200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(653223, '皮山县', 653200, '', 0, 0, 'P', '78.289871062405', '37.627248714375', 3, 'tr_0 tr_650000 tr_653200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(653224, '洛浦县', 653200, '', 0, 0, 'L', '80.195387611879', '37.079611030988', 3, 'tr_0 tr_650000 tr_653200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(653225, '策勒县', 653200, '', 0, 0, 'C', '80.813201268742', '37.004122359371', 3, 'tr_0 tr_650000 tr_653200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(653226, '于田县', 653200, '', 0, 0, 'Y', '81.683782914748', '36.86295413611', 3, 'tr_0 tr_650000 tr_653200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(653227, '民丰县', 653200, '', 0, 0, 'M', '82.702713427589', '37.070256968231', 3, 'tr_0 tr_650000 tr_653200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(654002, '伊宁市', 654000, '', 0, 0, 'Y', '81.284242405278', '43.915299436243', 3, 'tr_0 tr_650000 tr_654000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(654003, '奎屯市', 654000, '', 0, 0, 'K', '84.909449241687', '44.432057210004', 3, 'tr_0 tr_650000 tr_654000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(654004, '霍尔果斯市', 654000, '', 0, 0, 'H', '80.427129772427', '44.235308556093', 3, 'tr_0 tr_650000 tr_654000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(654021, '伊宁县', 654000, '', 0, 0, 'Y', '81.533906479394', '43.982909125124', 3, 'tr_0 tr_650000 tr_654000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(654022, '察布查尔锡伯自治县', 654000, '', 0, 0, 'C', '81.157924570907', '43.846690330452', 3, 'tr_0 tr_650000 tr_654000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(654023, '霍城县', 654000, '', 0, 0, 'H', '80.885281123201', '44.062249507399', 3, 'tr_0 tr_650000 tr_654000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(654024, '巩留县', 654000, '', 0, 0, 'G', '82.238225609409', '43.488485559536', 3, 'tr_0 tr_650000 tr_654000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(654025, '新源县', 654000, '', 0, 0, 'X', '83.267022301497', '43.435927002185', 3, 'tr_0 tr_650000 tr_654000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(654026, '昭苏县', 654000, '', 0, 0, 'Z', '81.137377539147', '43.163496741509', 3, 'tr_0 tr_650000 tr_654000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(654027, '特克斯县', 654000, '', 0, 0, 'T', '81.842587249244', '43.224248213467', 3, 'tr_0 tr_650000 tr_654000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(654028, '尼勒克县', 654000, '', 0, 0, 'N', '82.51800753168', '43.804594836238', 3, 'tr_0 tr_650000 tr_654000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(654201, '塔城市', 654200, '', 0, 0, 'T', '82.987235518406', '46.750948254373', 3, 'tr_0 tr_650000 tr_654200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(654202, '乌苏市', 654200, '', 0, 0, 'W', '84.720088146964', '44.424048034452', 3, 'tr_0 tr_650000 tr_654200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(654221, '额敏县', 654200, '', 0, 0, 'E', '83.633374454783', '46.531884861309', 3, 'tr_0 tr_650000 tr_654200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(654223, '沙湾县', 654200, '', 0, 0, 'S', '85.626144686035', '44.331949461741', 3, 'tr_0 tr_650000 tr_654200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(654224, '托里县', 654200, '', 0, 0, 'T', '83.612909438315', '45.94274280505', 3, 'tr_0 tr_650000 tr_654200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(654225, '裕民县', 654200, '', 0, 0, 'Y', '82.9894387025', '46.207453546928', 3, 'tr_0 tr_650000 tr_654200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(654226, '和布克赛尔蒙古自治县', 654200, '', 0, 0, 'H', '85.735008883548', '46.798685112637', 3, 'tr_0 tr_650000 tr_654200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(654301, '阿勒泰市', 654300, '', 0, 0, 'A', '88.139226564024', '47.832752648475', 3, 'tr_0 tr_650000 tr_654300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(654321, '布尔津县', 654300, '', 0, 0, 'B', '86.881360170273', '47.707951723888', 3, 'tr_0 tr_650000 tr_654300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(654322, '富蕴县', 654300, '', 0, 0, 'F', '89.531953408055', '46.999951053055', 3, 'tr_0 tr_650000 tr_654300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(654323, '福海县', 654300, '', 0, 0, 'F', '87.493157246325', '47.118140737535', 3, 'tr_0 tr_650000 tr_654300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(654324, '哈巴河县', 654300, '', 0, 0, 'H', '86.424817684664', '48.066148902458', 3, 'tr_0 tr_650000 tr_654300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(654325, '青河县', 654300, '', 0, 0, 'Q', '90.389444407193', '46.68019396705', 3, 'tr_0 tr_650000 tr_654300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(654326, '吉木乃县', 654300, '', 0, 0, 'J', '85.880818240706', '47.449018413257', 3, 'tr_0 tr_650000 tr_654300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(659001, '石河子市', 659000, '', 0, 0, 'S', '114.5163190347', '36.772534944449', 3, 'tr_0 tr_650000 tr_659000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(659002, '阿拉尔市', 659000, '', 0, 0, 'A', '81.287354225395', '40.553263894706', 3, 'tr_0 tr_650000 tr_659000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(659003, '图木舒克市', 659000, '', 0, 0, 'T', '79.075616286896', '39.871209077425', 3, 'tr_0 tr_650000 tr_659000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(659004, '五家渠市', 659000, '', 0, 0, 'W', '87.549936632296', '44.172444518901', 3, 'tr_0 tr_650000 tr_659000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(659006, '铁门关市', 659000, '', 0, 0, 'T', '85.686857831724', '41.863648697693', 3, 'tr_0 tr_650000 tr_659000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130102, '长安区', 130100, '', 0, 0, 'Z', '114.54561160958', '38.043256136498', 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130104, '桥西区', 130100, '', 0, 0, 'Q', '114.46741977426', '38.010381080199', 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130105, '新华区', 130100, '', 0, 0, 'X', '114.46943844641', '38.057119539196', 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130107, '井陉矿区', 130100, '', 0, 0, 'J', '114.06863186515', '38.070565834517', 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130108, '裕华区', 130100, '', 0, 0, 'Y', '114.53758291426', '38.012087686284', 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130109, '藁城区', 130100, '', 0, 0, 'G', '114.85337790442', '38.027816555321', 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130110, '鹿泉区', 130100, '', 0, 0, 'L', '114.32059757764', '38.09174945759', 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130111, '栾城区', 130100, '', 0, 0, 'L', '114.65457561879', '37.905816364165', 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130121, '井陉县', 130100, '', 0, 0, 'J', '114.15146299928', '38.038386214927', 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130123, '正定县', 130100, '', 0, 0, 'Z', '114.57748106365', '38.151713727954', 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130125, '行唐县', 130100, '', 0, 0, 'X', '114.55960676028', '38.444238747676', 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130126, '灵寿县', 130100, '', 0, 0, 'L', '114.38947775771', '38.314629370046', 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130127, '高邑县', 130100, '', 0, 0, 'G', '114.61841307286', '37.621879561553', 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130128, '深泽县', 130100, '', 0, 0, 'S', '115.20740369913', '38.190451203069', 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130129, '赞皇县', 130100, '', 0, 0, 'Z', '114.39246354556', '37.671667061291', 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130130, '无极县', 130100, '', 0, 0, 'W', '114.98243934348', '38.18543617028', 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130131, '平山县', 130100, '', 0, 0, 'P', '113.98543503085', '38.271951013311', 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130132, '元氏县', 130100, '', 0, 0, 'Y', '114.53256551866', '37.772338553855', 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130133, '赵县', 130100, '', 0, 0, 'Z', '114.78259655058', '37.761858522888', 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130171, '石家庄高新技术产业开发区', 130100, '', 0, 0, 'S', '114.47561896798', '38.014375062684', 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130172, '石家庄循环化工园区', 130100, '', 0, 0, 'S', '114.69991493042', '38.002797025837', 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130181, '辛集市', 130100, '', 0, 0, 'X', '115.22445084279', '37.949309043173', 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130183, '晋州市', 130100, '', 0, 0, 'J', '115.0505290147', '38.039491309736', 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130184, '新乐市', 130100, '', 0, 0, 'X', '114.69053218327', '38.349292647959', 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130202, '路南区', 130200, '', 0, 0, 'L', '118.20604028639', '39.612986996735', 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130203, '路北区', 130200, '', 0, 0, 'L', '118.2239040796', '39.673985965975', 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130204, '古冶区', 130200, '', 0, 0, 'G', '118.45340092552', '39.739735914766', 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130205, '开平区', 130200, '', 0, 0, 'K', '118.26860762449', '39.677143635862', 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130207, '丰南区', 130200, '', 0, 0, 'F', '118.0903655757', '39.581540485109', 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130208, '丰润区', 130200, '', 0, 0, 'F', '118.16854133135', '39.838353430851', 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130209, '曹妃甸区', 130200, '', 0, 0, 'C', '118.46645986221', '39.279283996335', 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130224, '滦南县', 130200, '', 0, 0, 'L', '118.68040524315', '39.510044702469', 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130225, '乐亭县', 130200, '', 0, 0, 'L', '118.91938406305', '39.431931320096', 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130227, '迁西县', 130200, '', 0, 0, 'Q', '118.32038397781', '40.147837151362', 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130229, '玉田县', 130200, '', 0, 0, 'Y', '117.74543440564', '39.906592348189', 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130271, '唐山市芦台经济技术开发区', 130200, '', 0, 0, 'T', '117.83195389236', '39.334328330689', 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130272, '唐山市汉沽管理区', 130200, '', 0, 0, 'T', '117.88832858176', '39.367125548614', 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130273, '唐山高新技术产业开发区', 130200, '', 0, 0, 'T', '118.18645947204', '39.636583724147', 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130274, '河北唐山海港经济开发区', 130200, '', 0, 0, 'H', '119.00992050252', '39.237818631017', 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130281, '遵化市', 130200, '', 0, 0, 'Z', '117.97237521307', '40.195533204033', 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130283, '迁安市', 130200, '', 0, 0, 'Q', '118.70645736056', '40.004183924931', 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130284, '滦州市', 130200, '', 0, 0, 'L', '118.71048006247', '39.747115765489', 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130302, '海港区', 130300, '', 0, 0, 'H', '119.61747524097', '39.940412688357', 3, 'tr_0 tr_130000 tr_130300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130303, '山海关区', 130300, '', 0, 0, 'S', '119.78243521397', '39.984445641831', 3, 'tr_0 tr_130000 tr_130300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130304, '北戴河区', 130300, '', 0, 0, 'B', '119.49152607118', '39.841005667936', 3, 'tr_0 tr_130000 tr_130300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130306, '抚宁区', 130300, '', 0, 0, 'F', '119.25154914402', '39.88141356935', 3, 'tr_0 tr_130000 tr_130300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130321, '青龙满族自治县', 130300, '', 0, 0, 'Q', '118.95648129587', '40.412793702313', 3, 'tr_0 tr_130000 tr_130300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130322, '昌黎县', 130300, '', 0, 0, 'C', '119.16937521021', '39.71905083388', 3, 'tr_0 tr_130000 tr_130300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130324, '卢龙县', 130300, '', 0, 0, 'L', '118.89948911126', '39.897958466103', 3, 'tr_0 tr_130000 tr_130300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130371, '秦皇岛市经济技术开发区', 130300, '', 0, 0, 'Q', '119.48439783729', '39.943641230776', 3, 'tr_0 tr_130000 tr_130300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130372, '北戴河新区', 130300, '', 0, 0, 'B', '119.47981001139', '39.831809170026', 3, 'tr_0 tr_130000 tr_130300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130402, '邯山区', 130400, '', 0, 0, 'H', '114.49638868967', '36.586692191979', 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130403, '丛台区', 130400, '', 0, 0, 'C', '114.49943259789', '36.642672565982', 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130404, '复兴区', 130400, '', 0, 0, 'F', '114.44809470749', '36.610368592227', 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130406, '峰峰矿区', 130400, '', 0, 0, 'F', '114.21948332131', '36.425653614399', 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130407, '肥乡区', 130400, '', 0, 0, 'F', '114.80654708226', '36.55382525367', 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130408, '永年区', 130400, '', 0, 0, 'Y', '114.55062514246', '36.747569389575', 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130423, '临漳县', 130400, '', 0, 0, 'L', '114.62642694614', '36.340765980595', 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130424, '成安县', 130400, '', 0, 0, 'C', '114.67657655802', '36.449796208953', 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130425, '大名县', 130400, '', 0, 0, 'D', '115.15461253007', '36.291288466231', 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130426, '涉县', 130400, '', 0, 0, 'S', '113.69758434883', '36.590691663211', 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130427, '磁县', 130400, '', 0, 0, 'C', '114.38043173139', '36.380358940947', 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130430, '邱县', 130400, '', 0, 0, 'Q', '115.19339516368', '36.817362417143', 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130431, '鸡泽县', 130400, '', 0, 0, 'J', '114.89658577064', '36.916398206414', 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130432, '广平县', 130400, '', 0, 0, 'G', '114.95441490649', '36.489779995612', 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130433, '馆陶县', 130400, '', 0, 0, 'G', '115.28853676635', '36.553956728653', 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130434, '魏县', 130400, '', 0, 0, 'W', '114.94545044631', '36.366156454371', 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130435, '曲周县', 130400, '', 0, 0, 'Q', '114.96340442939', '36.771544831336', 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130471, '邯郸经济技术开发区', 130400, '', 0, 0, 'H', '114.54562822824', '36.631262731204', 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130473, '邯郸冀南新区', 130400, '', 0, 0, 'H', '114.54562822824', '36.631262731204', 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130481, '武安市', 130400, '', 0, 0, 'W', '114.21051607638', '36.70248828628', 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130502, '桥东区', 130500, '', 0, 0, 'Q', '114.51347113674', '37.073749959651', 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130503, '桥西区', 130500, '', 0, 0, 'Q', '114.4743934996', '37.066172415704', 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130521, '邢台县', 130500, '', 0, 0, 'X', '114.14341085818', '37.17710928752', 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130522, '临城县', 130500, '', 0, 0, 'L', '114.50544333972', '37.450788548442', 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130523, '内丘县', 130500, '', 0, 0, 'N', '114.51849293403', '37.292857912047', 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130524, '柏乡县', 130500, '', 0, 0, 'B', '114.69949736209', '37.488758727152', 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130525, '隆尧县', 130500, '', 0, 0, 'L', '114.77661608165', '37.355908006295', 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130526, '任县', 130500, '', 0, 0, 'R', '114.67860600983', '37.126726783523', 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130527, '南和县', 130500, '', 0, 0, 'N', '114.69054772395', '37.01099797056', 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130528, '宁晋县', 130500, '', 0, 0, 'N', '114.92556169283', '37.625612279932', 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130529, '巨鹿县', 130500, '', 0, 0, 'J', '115.04358735887', '37.227088328938', 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130530, '新河县', 130500, '', 0, 0, 'X', '115.24854716945', '37.534590601536', 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130531, '广宗县', 130500, '', 0, 0, 'G', '115.14960474634', '37.080457122162', 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130532, '平乡县', 130500, '', 0, 0, 'P', '115.03658174369', '37.069096393044', 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130533, '威县', 130500, '', 0, 0, 'W', '115.27361761861', '36.981581608663', 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130534, '清河县', 130500, '', 0, 0, 'Q', '115.67439356765', '37.046375401617', 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130535, '临西县', 130500, '', 0, 0, 'L', '115.50762943786', '36.87675996654', 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130571, '河北邢台经济开发区', 130500, '', 0, 0, 'H', '114.51146225613', '37.076685950966', 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130581, '南宫市', 130500, '', 0, 0, 'N', '115.4145290548', '37.364069402723', 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130582, '沙河市', 130500, '', 0, 0, 'S', '114.50947385688', '36.861127341145', 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130602, '竞秀区', 130600, '', 0, 0, 'J', '115.46543414161', '38.883787961691', 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130606, '莲池区', 130600, '', 0, 0, 'L', '115.53548768833', '38.860675807041', 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130607, '满城区', 130600, '', 0, 0, 'M', '115.3283750886', '38.955441208686', 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130608, '清苑区', 130600, '', 0, 0, 'Q', '115.49660588179', '38.771001774749', 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130609, '徐水区', 130600, '', 0, 0, 'X', '115.66247952133', '39.024712583834', 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130623, '涞水县', 130600, '', 0, 0, 'L', '115.72054302508', '39.400334198489', 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130624, '阜平县', 130600, '', 0, 0, 'F', '114.20156347384', '38.855351444796', 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130626, '定兴县', 130600, '', 0, 0, 'D', '115.81441011189', '39.269423528527', 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130627, '唐县', 130600, '', 0, 0, 'T', '114.9894471146', '38.754019925125', 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130628, '高阳县', 130600, '', 0, 0, 'G', '115.78544721513', '38.706257734087', 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130629, '容城县', 130600, '', 0, 0, 'R', '115.86863129349', '39.048559435416', 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130630, '涞源县', 130600, '', 0, 0, 'L', '114.70047561679', '39.366271691524', 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130631, '望都县', 130600, '', 0, 0, 'W', '115.16158760286', '38.700157645549', 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130632, '安新县', 130600, '', 0, 0, 'A', '115.94242628266', '38.941734298593', 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130633, '易县', 130600, '', 0, 0, 'Y', '115.50360664612', '39.355054469981', 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130634, '曲阳县', 130600, '', 0, 0, 'Q', '114.7514548138', '38.628384104122', 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130635, '蠡县', 130600, '', 0, 0, 'L', '115.59044548045', '38.494200963238', 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130636, '顺平县', 130600, '', 0, 0, 'S', '115.14159743069', '38.843261370364', 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130637, '博野县', 130600, '', 0, 0, 'B', '115.47046698806', '38.463408004952', 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130638, '雄县', 130600, '', 0, 0, 'X', '116.11460144552', '39.000180119499', 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130671, '保定高新技术产业开发区', 130600, '', 0, 0, 'B', '115.47146383769', '38.879987768455', 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130672, '保定白沟新城', 130600, '', 0, 0, 'B', '116.06423983354', '39.145149134834', 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130681, '涿州市', 130600, '', 0, 0, 'Z', '115.98161971138', '39.491065832', 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130682, '定州市', 130600, '', 0, 0, 'D', '114.99649620776', '38.522198840134', 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130683, '安国市', 130600, '', 0, 0, 'A', '115.33340802488', '38.424828318687', 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130684, '高碑店市', 130600, '', 0, 0, 'G', '115.88056905507', '39.332335447462', 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130702, '桥东区', 130700, '', 0, 0, 'Q', '114.90060577763', '40.794268437423', 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130703, '桥西区', 130700, '', 0, 0, 'Q', '114.87651609843', '40.825605695041', 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130705, '宣化区', 130700, '', 0, 0, 'X', '115.1054444068', '40.614591888266', 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130706, '下花园区', 130700, '', 0, 0, 'X', '115.29351688226', '40.508145182672', 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130708, '万全区', 130700, '', 0, 0, 'W', '114.74742582376', '40.773149648997', 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130709, '崇礼区', 130700, '', 0, 0, 'C', '115.28954933632', '40.98047788587', 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130722, '张北县', 130700, '', 0, 0, 'Z', '114.7263751121', '41.164943620015', 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130723, '康保县', 130700, '', 0, 0, 'K', '114.60635583664', '41.858636884497', 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130724, '沽源县', 130700, '', 0, 0, 'G', '115.69540744878', '41.676015876097', 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130725, '尚义县', 130700, '', 0, 0, 'S', '113.97552438548', '41.081888482486', 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130726, '蔚县', 130700, '', 0, 0, 'W', '114.5954005518', '39.847088636366', 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130727, '阳原县', 130700, '', 0, 0, 'Y', '114.15752413604', '40.109588388731', 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130728, '怀安县', 130700, '', 0, 0, 'H', '114.39246911506', '40.680369343116', 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130730, '怀来县', 130700, '', 0, 0, 'H', '115.52455288485', '40.420289890382', 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130731, '涿鹿县', 130700, '', 0, 0, 'Z', '115.21138346203', '40.385834075003', 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130732, '赤城县', 130700, '', 0, 0, 'C', '115.83850589957', '40.918761216841', 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130771, '张家口市高新技术产业开发区', 130700, '', 0, 0, 'Z', '114.89257223145', '40.773237202691', 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130772, '张家口市察北管理区', 130700, '', 0, 0, 'Z', '115.13535097349', '41.463489368202', 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130773, '张家口市塞北管理区', 130700, '', 0, 0, 'Z', '115.80931788745', '41.877919284073', 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130802, '双桥区', 130800, '', 0, 0, 'S', '117.94942790899', '40.980824477401', 3, 'tr_0 tr_130000 tr_130800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130803, '双滦区', 130800, '', 0, 0, 'S', '117.80657828883', '40.964729148178', 3, 'tr_0 tr_130000 tr_130800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130804, '鹰手营子矿区', 130800, '', 0, 0, 'Y', '117.66560909159', '40.552043233623', 3, 'tr_0 tr_130000 tr_130800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130821, '承德县', 130800, '', 0, 0, 'C', '118.18045573699', '40.774367194936', 3, 'tr_0 tr_130000 tr_130800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130822, '兴隆县', 130800, '', 0, 0, 'X', '117.50742737264', '40.423454029635', 3, 'tr_0 tr_130000 tr_130800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130824, '滦平县', 130800, '', 0, 0, 'L', '117.33949787111', '40.94756096291', 3, 'tr_0 tr_130000 tr_130800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130825, '隆化县', 130800, '', 0, 0, 'L', '117.7454510243', '41.319898805021', 3, 'tr_0 tr_130000 tr_130800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130826, '丰宁满族自治县', 130800, '', 0, 0, 'F', '116.65239270009', '41.215336380004', 3, 'tr_0 tr_130000 tr_130800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130827, '宽城满族自治县', 130800, '', 0, 0, 'K', '118.49159436055', '40.617151507814', 3, 'tr_0 tr_130000 tr_130800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130828, '围场满族蒙古族自治县', 130800, '', 0, 0, 'W', '117.76656434785', '41.944323773611', 3, 'tr_0 tr_130000 tr_130800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130871, '承德高新技术产业开发区', 130800, '', 0, 0, 'C', '117.96939750997', '40.957856012338', 3, 'tr_0 tr_130000 tr_130800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130881, '平泉市', 130800, '', 0, 0, 'P', '118.70742672204', '41.023755625929', 3, 'tr_0 tr_130000 tr_130800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130902, '新华区', 130900, '', 0, 0, 'X', '116.87243317375', '38.320366719478', 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130903, '运河区', 130900, '', 0, 0, 'Y', '116.8386119713', '38.316522737476', 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130921, '沧县', 130900, '', 0, 0, 'C', '116.88439779466', '38.299452743407', 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130922, '青县', 130900, '', 0, 0, 'Q', '116.81057477836', '38.58846475864', 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130923, '东光县', 130900, '', 0, 0, 'D', '116.54340955698', '37.894513906653', 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130924, '海兴县', 130900, '', 0, 0, 'H', '117.50441804918', '38.149402516518', 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130925, '盐山县', 130900, '', 0, 0, 'Y', '117.23741362448', '38.064318399559', 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130926, '肃宁县', 130900, '', 0, 0, 'S', '115.83651767998', '38.428905919718', 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130927, '南皮县', 130900, '', 0, 0, 'N', '116.71560115883', '38.045187886965', 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130928, '吴桥县', 130900, '', 0, 0, 'W', '116.39739206243', '37.633908755554', 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130929, '献县', 130900, '', 0, 0, 'X', '116.12956002887', '38.195981438007', 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130930, '孟村回族自治县', 130900, '', 0, 0, 'M', '117.11043607455', '38.059839127888', 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130971, '河北沧州经济开发区', 130900, '', 0, 0, 'H', '116.84558075595', '38.310215141107', 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130972, '沧州高新技术产业开发区', 130900, '', 0, 0, 'C', '116.81727200975', '38.34342368505', 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130973, '沧州渤海新区', 130900, '', 0, 0, 'C', '117.7623777537', '38.282913560669', 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130981, '泊头市', 130900, '', 0, 0, 'P', '116.58462803581', '38.089256915446', 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130982, '任丘市', 130900, '', 0, 0, 'R', '116.1056050955', '38.717348630775', 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130983, '黄骅市', 130900, '', 0, 0, 'H', '117.33648109172', '38.377493900735', 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(130984, '河间市', 130900, '', 0, 0, 'H', '116.10562809212', '38.451356515106', 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(131002, '安次区', 131000, '', 0, 0, 'A', '116.70963326617', '39.526159764041', 3, 'tr_0 tr_130000 tr_131000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(131003, '广阳区', 131000, '', 0, 0, 'G', '116.71761426148', '39.528611447334', 3, 'tr_0 tr_130000 tr_131000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(131022, '固安县', 131000, '', 0, 0, 'G', '116.30542004093', '39.444484855304', 3, 'tr_0 tr_130000 tr_131000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(131023, '永清县', 131000, '', 0, 0, 'Y', '116.50542928985', '39.327852998574', 3, 'tr_0 tr_130000 tr_131000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(131024, '香河县', 131000, '', 0, 0, 'X', '117.0124021078', '39.767939188546', 3, 'tr_0 tr_130000 tr_131000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(131025, '大城县', 131000, '', 0, 0, 'D', '116.66040917846', '38.710858640026', 3, 'tr_0 tr_130000 tr_131000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(131026, '文安县', 131000, '', 0, 0, 'W', '116.464609479', '38.87895049307', 3, 'tr_0 tr_130000 tr_131000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(131028, '大厂回族自治县', 131000, '', 0, 0, 'D', '116.99640912565', '39.892208394086', 3, 'tr_0 tr_130000 tr_131000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(131071, '廊坊经济技术开发区', 131000, '', 0, 0, 'L', '116.76777922809', '39.587610159458', 3, 'tr_0 tr_130000 tr_131000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(131081, '霸州市', 131000, '', 0, 0, 'B', '116.3983972663', '39.130920596981', 3, 'tr_0 tr_130000 tr_131000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(131082, '三河市', 131000, '', 0, 0, 'S', '117.08458787248', '39.988099552443', 3, 'tr_0 tr_130000 tr_131000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(131102, '桃城区', 131100, '', 0, 0, 'T', '115.68139532011', '37.741636751694', 3, 'tr_0 tr_130000 tr_131100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(131103, '冀州区', 131100, '', 0, 0, 'J', '115.58542988146', '37.557086025833', 3, 'tr_0 tr_130000 tr_131100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(131121, '枣强县', 131100, '', 0, 0, 'Z', '115.7305629044', '37.519363689764', 3, 'tr_0 tr_130000 tr_131100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(131122, '武邑县', 131100, '', 0, 0, 'W', '115.89451363117', '37.807764276867', 3, 'tr_0 tr_130000 tr_131100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(131123, '武强县', 131100, '', 0, 0, 'W', '115.98961391178', '38.046856805237', 3, 'tr_0 tr_130000 tr_131100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(131124, '饶阳县', 131100, '', 0, 0, 'R', '115.73257160535', '38.241037525428', 3, 'tr_0 tr_130000 tr_131100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(131125, '安平县', 131100, '', 0, 0, 'A', '115.52554928532', '38.240506922191', 3, 'tr_0 tr_130000 tr_131100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(131126, '故城县', 131100, '', 0, 0, 'G', '115.97260216135', '37.353347552477', 3, 'tr_0 tr_130000 tr_131100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(131127, '景县', 131100, '', 0, 0, 'J', '116.2774107853', '37.698814551395', 3, 'tr_0 tr_130000 tr_131100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(131128, '阜城县', 131100, '', 0, 0, 'F', '116.18242153525', '37.868732457906', 3, 'tr_0 tr_130000 tr_131100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(131171, '河北衡水高新技术产业开发区', 131100, '', 0, 0, 'H', '115.73456139967', '37.807821775773', 3, 'tr_0 tr_130000 tr_131100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(131172, '衡水滨湖新区', 131100, '', 0, 0, 'H', '115.70627999969', '37.701616037093', 3, 'tr_0 tr_130000 tr_131100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(131182, '深州市', 131100, '', 0, 0, 'S', '115.56636927583', '38.006941234922', 3, 'tr_0 tr_130000 tr_131100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(640202, '大武口区', 640200, '', 0, 0, '', '', '', 3, 'tr_0 tr_640000 tr_640200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(640205, '惠农区', 640200, '', 0, 0, '', '', '', 3, 'tr_0 tr_640000 tr_640200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), -(640221, '平罗县', 640200, '', 0, 0, '', '', '', 3, 'tr_0 tr_640000 tr_640200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'); +INSERT INTO `hg_sys_provinces` (`id`, `title`, `short_title`, `areacode`, `zipcode`, `pinyin`, `lng`, `lat`, `pid`, `level`, `tree`, `sort`, `status`, `created_at`, `updated_at`) VALUES +(810000, '香港特别行政区', '', 0, 0, 'X', '114.18612410257', '22.29358599328', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(810100, '九龙', '', 0, 0, 'J', '101.51341566718', '29.006431902925', 810000, 2, 'tr_0 tr_810000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(810101, '观塘区', '', 0, 0, 'G', '114.23743100142', '22.316803500017', 810100, 3, 'tr_0 tr_810000 tr_810100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(810102, '黄大仙区', '', 0, 0, 'H', '114.2055528338', '22.344516581114', 810100, 3, 'tr_0 tr_810000 tr_810100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(810103, '九龙城区', '', 0, 0, 'J', '114.19855413557', '22.325722838593', 810100, 3, 'tr_0 tr_810000 tr_810100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(810104, '深水埗区', '', 0, 0, 'S', '114.17556515012', '22.334814518942', 810100, 3, 'tr_0 tr_810000 tr_810100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(810105, '油尖旺区', '', 0, 0, 'Y', '114.17854456', '22.306583887776', 810100, 3, 'tr_0 tr_810000 tr_810100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(810200, '香港岛', '', 0, 0, 'X', '114.1838696432', '22.272099587606', 810000, 2, 'tr_0 tr_810000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(810201, '东区', '', 0, 0, 'D', '114.03675495515', '32.983906128946', 810200, 3, 'tr_0 tr_810000 tr_810200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(810202, '南区', '', 0, 0, 'N', '114.18612410257', '22.29358599328', 810200, 3, 'tr_0 tr_810000 tr_810200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(810203, '湾仔区', '', 0, 0, 'W', '114.1838696432', '22.272099587606', 810200, 3, 'tr_0 tr_810000 tr_810200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(810204, '中西区', '', 0, 0, 'Z', '114.15949141031', '22.291342714292', 810200, 3, 'tr_0 tr_810000 tr_810200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(810300, '新界', '', 0, 0, 'X', '114.18612410257', '22.29358599328', 810000, 2, 'tr_0 tr_810000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(810301, '北区', '', 0, 0, 'B', '114.56208137457', '38.029818054403', 810300, 3, 'tr_0 tr_810000 tr_810300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(810302, '大埔区', '', 0, 0, 'D', '114.14670082713', '22.427434108219', 810300, 3, 'tr_0 tr_810000 tr_810300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(810303, '葵青区', '', 0, 0, 'K', '114.14347453324', '22.36661881253', 810300, 3, 'tr_0 tr_810000 tr_810300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(810304, '离岛区', '', 0, 0, 'L', '113.95154733906', '22.286066480198', 810300, 3, 'tr_0 tr_810000 tr_810300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(810305, '荃湾区', '', 0, 0, 'Q', '114.126440954', '22.378243962528', 810300, 3, 'tr_0 tr_810000 tr_810300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(810306, '沙田区', '', 0, 0, 'S', '114.19855144065', '22.388522255034', 810300, 3, 'tr_0 tr_810000 tr_810300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(810307, '屯门区', '', 0, 0, 'T', '113.98745602385', '22.393584799271', 810300, 3, 'tr_0 tr_810000 tr_810300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(810308, '西贡区', '', 0, 0, 'X', '114.28352485373', '22.385077305939', 810300, 3, 'tr_0 tr_810000 tr_810300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(810309, '元朗区', '', 0, 0, 'Y', '114.03850969037', '22.448564780865', 810300, 3, 'tr_0 tr_810000 tr_810300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(820000, '澳门特别行政区', '', 0, 0, 'A', '113.55751910182', '22.204117988443', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(820100, '离岛', '', 0, 0, 'L', '113.55751910182', '22.204117988443', 820000, 2, 'tr_0 tr_820000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(820101, '嘉模堂区', '', 0, 0, 'J', '113.56551473951', '22.163142309955', 820100, 3, 'tr_0 tr_820000 tr_820100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(820102, '路氹填海区', '', 0, 0, 'L', '113.95154733906', '22.286066480198', 820100, 3, 'tr_0 tr_820000 tr_820100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(820103, '圣方济各堂区', '', 0, 0, 'S', '113.95154733906', '22.286066480198', 820100, 3, 'tr_0 tr_820000 tr_820100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(820200, '澳门半岛', '', 0, 0, 'A', '113.56643233517', '22.195004159218', 820000, 2, 'tr_0 tr_820000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(820201, '大堂区', '', 0, 0, 'D', '113.55648488269', '22.18919700752', 820200, 3, 'tr_0 tr_820000 tr_820200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(820202, '风顺堂区', '', 0, 0, 'F', '113.54545108595', '22.192783044934', 820200, 3, 'tr_0 tr_820000 tr_820200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(820203, '花地玛堂区', '', 0, 0, 'H', '113.55751029843', '22.212783524768', 820200, 3, 'tr_0 tr_820000 tr_820200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(820204, '花王堂区', '', 0, 0, 'H', '113.5544936987', '22.206635725923', 820200, 3, 'tr_0 tr_820000 tr_820200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(820205, '望德堂区', '', 0, 0, 'W', '113.5615137766', '22.202511136588', 820200, 3, 'tr_0 tr_820000 tr_820200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830000, '台湾省', '', 0, 0, 'T', '121.97387097872', '24.086956718805', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830100, '台北市', '', 0, 0, 'T', '121.5201088108', '25.063029935612', 830000, 2, 'tr_0 tr_830000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830101, '中正区', '', 0, 0, 'Z', '121.5201088108', '25.063029935612', 830100, 3, 'tr_0 tr_830000 tr_830100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830102, '大同区', '', 0, 0, 'D', '124.81937675979', '46.045583951311', 830100, 3, 'tr_0 tr_830000 tr_830100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830103, '中山区', '', 0, 0, 'Z', '121.65154739367', '38.924511115496', 830100, 3, 'tr_0 tr_830000 tr_830100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830104, '万华区', '', 0, 0, 'W', '121.5201088108', '25.063029935612', 830100, 3, 'tr_0 tr_830000 tr_830100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830105, '信义区', '', 0, 0, 'X', '121.5201088108', '25.063029935612', 830100, 3, 'tr_0 tr_830000 tr_830100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830106, '松山区', '', 0, 0, 'S', '118.9394138505', '42.292481572694', 830100, 3, 'tr_0 tr_830000 tr_830100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830107, '大安区', '', 0, 0, 'D', '104.78041635328', '29.369928541322', 830100, 3, 'tr_0 tr_830000 tr_830100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830108, '南港区', '', 0, 0, 'N', '121.5201088108', '25.063029935612', 830100, 3, 'tr_0 tr_830000 tr_830100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830109, '北投区', '', 0, 0, 'B', '121.5201088108', '25.063029935612', 830100, 3, 'tr_0 tr_830000 tr_830100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830110, '内湖区', '', 0, 0, 'N', '121.5201088108', '25.063029935612', 830100, 3, 'tr_0 tr_830000 tr_830100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830111, '士林区', '', 0, 0, 'S', '121.5201088108', '25.063029935612', 830100, 3, 'tr_0 tr_830000 tr_830100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830112, '文山区', '', 0, 0, 'W', '121.5201088108', '25.063029935612', 830100, 3, 'tr_0 tr_830000 tr_830100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830200, '新北市', '', 0, 0, 'X', '121.97387097872', '24.086956718805', 830000, 2, 'tr_0 tr_830000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830201, '板桥区', '', 0, 0, 'B', '121.46374631322', '25.009264935203', 830200, 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830202, '土城区', '', 0, 0, 'T', '121.45638215646', '24.969575575642', 830200, 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830203, '新庄区', '', 0, 0, 'X', '121.44987794847', '25.035900513246', 830200, 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830204, '新店区', '', 0, 0, 'X', '121.54851057293', '24.931579077246', 830200, 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830205, '深坑区', '', 0, 0, 'S', '121.63248449446', '25.000182732355', 830200, 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830206, '石碇区', '', 0, 0, 'S', '121.64666268478', '24.953083429509', 830200, 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830207, '坪林区', '', 0, 0, 'P', '121.73478767877', '24.915696554977', 830200, 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830208, '乌来区', '', 0, 0, 'W', '121.53050817209', '24.786532168822', 830200, 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830209, '五股区', '', 0, 0, 'W', '121.44461965429', '25.100233770435', 830200, 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830210, '八里区', '', 0, 0, 'B', '121.40465098523', '25.130119585774', 830200, 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830211, '林口区', '', 0, 0, 'L', '121.35894397022', '25.103036147515', 830200, 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830212, '淡水区', '', 0, 0, 'D', '121.47260573633', '25.187238161176', 830200, 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830213, '中和区', '', 0, 0, 'Z', '119.97751429276', '31.836323947624', 830200, 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830214, '永和区', '', 0, 0, 'Y', '121.52736966421', '25.010500528231', 830200, 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830215, '三重区', '', 0, 0, 'S', '121.49687574316', '25.069790814298', 830200, 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830216, '芦洲区', '', 0, 0, 'L', '121.47982274435', '25.091134839883', 830200, 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830217, '泰山区', '', 0, 0, 'T', '117.14141108582', '36.199444601195', 830200, 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830218, '树林区', '', 0, 0, 'S', '121.412622083', '24.984757647837', 830200, 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830219, '莺歌区', '', 0, 0, 'Y', '121.35899891418', '24.958676651245', 830200, 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830220, '三峡区', '', 0, 0, 'S', '121.42609502893', '24.87480469353', 830200, 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830221, '汐止区', '', 0, 0, 'X', '121.66100298061', '25.086721897126', 830200, 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830222, '金山区', '', 0, 0, 'J', '121.34848004512', '30.74785237657', 830200, 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830223, '万里区', '', 0, 0, 'W', '121.66558782234', '25.179420721026', 830200, 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830224, '三芝区', '', 0, 0, 'S', '121.53552324466', '25.233947831353', 830200, 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830225, '石门区', '', 0, 0, 'S', '121.59364212175', '25.261063301582', 830200, 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830226, '瑞芳区', '', 0, 0, 'R', '121.81592241951', '25.092372901641', 830200, 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830227, '贡寮区', '', 0, 0, 'G', '121.92278316131', '25.044375645825', 830200, 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830228, '双溪区', '', 0, 0, 'S', '121.8310510997', '25.001750367683', 830200, 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830229, '平溪区', '', 0, 0, 'P', '121.75897792057', '25.028954662262', 830200, 3, 'tr_0 tr_830000 tr_830200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830300, '桃园市', '', 0, 0, 'T', '121.97387097872', '24.086956718805', 830000, 2, 'tr_0 tr_830000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830301, '桃园区', '', 0, 0, 'T', '115.95771247803', '39.980514890446', 830300, 3, 'tr_0 tr_830000 tr_830300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830302, '中坜区', '', 0, 0, 'Z', '115.95771247803', '39.980514890446', 830300, 3, 'tr_0 tr_830000 tr_830300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830303, '平镇区', '', 0, 0, 'P', '115.95771247803', '39.980514890446', 830300, 3, 'tr_0 tr_830000 tr_830300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830304, '八德区', '', 0, 0, 'B', '115.95771247803', '39.980514890446', 830300, 3, 'tr_0 tr_830000 tr_830300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830305, '杨梅区', '', 0, 0, 'Y', '110.86164512823', '21.447395667888', 830300, 3, 'tr_0 tr_830000 tr_830300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830306, '芦竹区', '', 0, 0, 'L', '115.95771247803', '39.980514890446', 830300, 3, 'tr_0 tr_830000 tr_830300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830307, '大溪区', '', 0, 0, 'D', '115.95771247803', '39.980514890446', 830300, 3, 'tr_0 tr_830000 tr_830300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830308, '龙潭区', '', 0, 0, 'L', '126.56854459242', '43.91634255363', 830300, 3, 'tr_0 tr_830000 tr_830300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830309, '龟山区', '', 0, 0, 'G', '115.95771247803', '39.980514890446', 830300, 3, 'tr_0 tr_830000 tr_830300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830310, '大园区', '', 0, 0, 'D', '115.95771247803', '39.980514890446', 830300, 3, 'tr_0 tr_830000 tr_830300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830311, '观音区', '', 0, 0, 'G', '120.42538525561', '36.169241550407', 830300, 3, 'tr_0 tr_830000 tr_830300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830312, '新屋区', '', 0, 0, 'X', '115.95771247803', '39.980514890446', 830300, 3, 'tr_0 tr_830000 tr_830300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830313, '复兴区', '', 0, 0, 'F', '114.44809470749', '36.610368592227', 830300, 3, 'tr_0 tr_830000 tr_830300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830400, '台中市', '', 0, 0, 'T', '121.97387097872', '24.086956718805', 830000, 2, 'tr_0 tr_830000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830401, '中区', '', 0, 0, 'Z', '119.33696304538', '26.091557030419', 830400, 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830402, '东区', '', 0, 0, 'D', '119.33696304538', '26.091557030419', 830400, 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830403, '西区', '', 0, 0, 'X', '119.33696304538', '26.091557030419', 830400, 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830404, '南区', '', 0, 0, 'N', '119.33696304538', '26.091557030419', 830400, 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830405, '北区', '', 0, 0, 'B', '119.33696304538', '26.091557030419', 830400, 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830406, '西屯区', '', 0, 0, 'X', '119.33696304538', '26.091557030419', 830400, 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830407, '南屯区', '', 0, 0, 'N', '119.33696304538', '26.091557030419', 830400, 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830408, '北屯区', '', 0, 0, 'B', '119.33696304538', '26.091557030419', 830400, 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830409, '丰原区', '', 0, 0, 'F', '119.33696304538', '26.091557030419', 830400, 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830410, '大里区', '', 0, 0, 'D', '119.33696304538', '26.091557030419', 830400, 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830411, '太平区', '', 0, 0, 'T', '121.68538413681', '42.016967854141', 830400, 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830412, '东势区', '', 0, 0, 'D', '119.33696304538', '26.091557030419', 830400, 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830413, '大甲区', '', 0, 0, 'D', '119.33696304538', '26.091557030419', 830400, 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830414, '清水区', '', 0, 0, 'Q', '119.33696304538', '26.091557030419', 830400, 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830415, '沙鹿区', '', 0, 0, 'S', '119.33696304538', '26.091557030419', 830400, 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830416, '梧栖区', '', 0, 0, 'W', '119.33696304538', '26.091557030419', 830400, 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830417, '后里区', '', 0, 0, 'H', '119.33696304538', '26.091557030419', 830400, 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830418, '神冈区', '', 0, 0, 'S', '119.33696304538', '26.091557030419', 830400, 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830419, '潭子区', '', 0, 0, 'T', '119.33696304538', '26.091557030419', 830400, 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830420, '大雅区', '', 0, 0, 'D', '119.33696304538', '26.091557030419', 830400, 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830421, '新小区', '', 0, 0, 'X', '119.33696304538', '26.091557030419', 830400, 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830422, '石冈区', '', 0, 0, 'S', '119.33696304538', '26.091557030419', 830400, 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830423, '外埔区', '', 0, 0, 'W', '119.33696304538', '26.091557030419', 830400, 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830424, '大安区', '', 0, 0, 'D', '104.78041635328', '29.369928541322', 830400, 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830425, '乌日区', '', 0, 0, 'W', '119.33696304538', '26.091557030419', 830400, 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830426, '大肚区', '', 0, 0, 'D', '119.33696304538', '26.091557030419', 830400, 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830427, '龙井区', '', 0, 0, 'L', '119.33696304538', '26.091557030419', 830400, 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830428, '雾峰区', '', 0, 0, 'W', '119.33696304538', '26.091557030419', 830400, 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830429, '和平区', '', 0, 0, 'H', '117.2214669949', '39.12339025328', 830400, 3, 'tr_0 tr_830000 tr_830400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830500, '台南市', '', 0, 0, 'T', '121.97387097872', '24.086956718805', 830000, 2, 'tr_0 tr_830000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830501, '中西区', '', 0, 0, 'Z', '114.15949141031', '22.291342714292', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830502, '东区', '', 0, 0, 'D', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830503, '南区', '', 0, 0, 'N', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830504, '北区', '', 0, 0, 'B', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830505, '安平区', '', 0, 0, 'A', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830506, '安南区', '', 0, 0, 'A', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830507, '永康区', '', 0, 0, 'Y', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830508, '归仁区', '', 0, 0, 'G', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830509, '新化区', '', 0, 0, 'X', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830510, '左镇区', '', 0, 0, 'Z', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830511, '玉井区', '', 0, 0, 'Y', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830512, '楠西区', '', 0, 0, 'N', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830513, '南化区', '', 0, 0, 'N', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830514, '仁德区', '', 0, 0, 'R', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830515, '关庙区', '', 0, 0, 'G', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830516, '龙崎区', '', 0, 0, 'L', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830517, '官田区', '', 0, 0, 'G', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830518, '麻豆区', '', 0, 0, 'M', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830519, '佳里区', '', 0, 0, 'J', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830520, '西港区', '', 0, 0, 'X', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830521, '七股区', '', 0, 0, 'Q', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830522, '将军区', '', 0, 0, 'J', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830523, '学甲区', '', 0, 0, 'X', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830524, '北门区', '', 0, 0, 'B', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830525, '新营区', '', 0, 0, 'X', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830526, '后壁区', '', 0, 0, 'H', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830527, '白河区', '', 0, 0, 'B', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830528, '东山区', '', 0, 0, 'D', '130.32336109407', '47.344987135573', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830529, '六甲区', '', 0, 0, 'L', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830530, '下营区', '', 0, 0, 'X', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830531, '柳营区', '', 0, 0, 'L', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830532, '盐水区', '', 0, 0, 'Y', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830533, '善化区', '', 0, 0, 'S', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830534, '大内区', '', 0, 0, 'D', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830535, '山上区', '', 0, 0, 'S', '121.36052796411', '38.965848756262', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830536, '新市区', '', 0, 0, 'X', '115.41224520287', '38.88118294749', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830537, '安定区', '', 0, 0, 'A', '104.61650040265', '35.585600016725', 830500, 3, 'tr_0 tr_830000 tr_830500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830600, '高雄市', '', 0, 0, 'G', '121.97387097872', '24.086956718805', 830000, 2, 'tr_0 tr_830000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830601, '楠梓区', '', 0, 0, 'N', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830602, '左营区', '', 0, 0, 'Z', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830603, '鼓山区', '', 0, 0, 'G', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830604, '三民区', '', 0, 0, 'S', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830605, '盐埕区', '', 0, 0, 'Y', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830606, '前金区', '', 0, 0, 'Q', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830607, '新兴区', '', 0, 0, 'X', '130.93837086995', '45.822310328543', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830608, '苓雅区', '', 0, 0, 'L', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830609, '前镇区', '', 0, 0, 'Q', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830610, '旗津区', '', 0, 0, 'Q', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830611, '小港区', '', 0, 0, 'X', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830612, '凤山区', '', 0, 0, 'F', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830613, '大寮区', '', 0, 0, 'D', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830614, '鸟松区', '', 0, 0, 'N', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830615, '林园区', '', 0, 0, 'L', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830616, '仁武区', '', 0, 0, 'R', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830617, '大树区', '', 0, 0, 'D', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830618, '大社区', '', 0, 0, 'D', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830619, '冈山区', '', 0, 0, 'G', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830620, '路竹区', '', 0, 0, 'L', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830621, '桥头区', '', 0, 0, 'Q', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830622, '梓官区', '', 0, 0, 'Z', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830623, '弥陀区', '', 0, 0, 'M', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830624, '永安区', '', 0, 0, 'Y', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830625, '燕巢区', '', 0, 0, 'Y', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830626, '阿莲区', '', 0, 0, 'A', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830627, '茄萣区', '', 0, 0, 'J', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830628, '湖内区', '', 0, 0, 'H', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830629, '旗山区', '', 0, 0, 'Q', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830630, '美浓区', '', 0, 0, 'M', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830631, '内门区', '', 0, 0, 'N', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830632, '杉林区', '', 0, 0, 'S', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830633, '甲仙区', '', 0, 0, 'J', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830634, '六龟区', '', 0, 0, 'L', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830635, '茂林区', '', 0, 0, 'M', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830636, '桃源区', '', 0, 0, 'T', '114.29349244944', '30.607022895804', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830637, '那玛夏区', '', 0, 0, 'N', '120.71415692906', '23.273513646073', 830600, 3, 'tr_0 tr_830000 tr_830600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830700, '基隆市', '', 0, 0, 'J', '121.97387097872', '24.086956718805', 830000, 2, 'tr_0 tr_830000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830701, '中正区', '', 0, 0, 'Z', '118.53225032938', '24.6210238893', 830700, 3, 'tr_0 tr_830000 tr_830700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830702, '七堵区', '', 0, 0, 'Q', '118.53225032938', '24.6210238893', 830700, 3, 'tr_0 tr_830000 tr_830700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830703, '暖暖区', '', 0, 0, 'N', '118.53225032938', '24.6210238893', 830700, 3, 'tr_0 tr_830000 tr_830700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830704, '仁爱区', '', 0, 0, 'R', '118.53225032938', '24.6210238893', 830700, 3, 'tr_0 tr_830000 tr_830700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830705, '中山区', '', 0, 0, 'Z', '121.65154739367', '38.924511115496', 830700, 3, 'tr_0 tr_830000 tr_830700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830706, '安乐区', '', 0, 0, 'A', '118.53225032938', '24.6210238893', 830700, 3, 'tr_0 tr_830000 tr_830700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830707, '信义区', '', 0, 0, 'X', '118.53225032938', '24.6210238893', 830700, 3, 'tr_0 tr_830000 tr_830700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830800, '新竹市', '', 0, 0, 'X', '121.97387097872', '24.086956718805', 830000, 2, 'tr_0 tr_830000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830801, '东区', '', 0, 0, 'D', '119.76701381388', '49.221741849328', 830800, 3, 'tr_0 tr_830000 tr_830800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830802, '北区', '', 0, 0, 'B', '119.76701381388', '49.221741849328', 830800, 3, 'tr_0 tr_830000 tr_830800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830803, '香山区', '', 0, 0, 'X', '119.76701381388', '49.221741849328', 830800, 3, 'tr_0 tr_830000 tr_830800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830900, '嘉义市', '', 0, 0, 'J', '121.97387097872', '24.086956718805', 830000, 2, 'tr_0 tr_830000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830901, '东区', '', 0, 0, 'D', '114.2466374103', '22.728825804821', 830900, 3, 'tr_0 tr_830000 tr_830900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(830902, '西区', '', 0, 0, 'X', '114.2466374103', '22.728825804821', 830900, 3, 'tr_0 tr_830000 tr_830900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(839001, '宜兰县', '', 0, 0, 'Y', '121.39369436652', '31.211883015985', 839000, 3, 'tr_0 tr_830000 tr_839000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(839002, '新竹县', '', 0, 0, 'X', '119.76701381388', '49.221741849328', 839000, 3, 'tr_0 tr_830000 tr_839000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(839003, '苗栗县', '', 0, 0, 'M', '', '', 839000, 3, 'tr_0 tr_830000 tr_839000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(839004, '彰化县', '', 0, 0, 'Z', '109.04292985822', '26.632603089128', 839000, 3, 'tr_0 tr_830000 tr_839000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(839005, '南投县', '', 0, 0, 'N', '', '', 839000, 3, 'tr_0 tr_830000 tr_839000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(839006, '嘉义县', '', 0, 0, 'J', '114.2466374103', '22.728825804821', 839000, 3, 'tr_0 tr_830000 tr_839000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(839007, '云林县', '', 0, 0, 'Y', '124.7995182988', '42.918396678776', 839000, 3, 'tr_0 tr_830000 tr_839000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(839008, '屏东县', '', 0, 0, 'P', '119.30846756124', '26.107056743573', 839000, 3, 'tr_0 tr_830000 tr_839000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(839009, '台东县', '', 0, 0, 'T', '119.33983605008', '26.095631255982', 839000, 3, 'tr_0 tr_830000 tr_839000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(839010, '花莲县', '', 0, 0, 'H', '120.16162991211', '33.366606824641', 839000, 3, 'tr_0 tr_830000 tr_839000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(839011, '澎湖县', '', 0, 0, 'P', '121.13156576447', '30.875327117717', 839000, 3, 'tr_0 tr_830000 tr_839000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(839012, '金门县', '', 0, 0, 'J', '118.3304151596', '24.440444541055', 839000, 3, 'tr_0 tr_830000 tr_839000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(839013, '连江县', '', 0, 0, 'L', '119.54647881621', '26.203583291029', 839000, 3, 'tr_0 tr_830000 tr_839000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(110000, '北京市', '', 0, 0, 'B', '116.41338369712', '39.9109245473', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(120000, '天津市', '', 0, 0, 'T', '117.21081309155', '39.14392990331', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130000, '河北省', '', 0, 0, 'H', '114.53659630532', '38.0432016452', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140000, '山西省', '', 0, 0, 'S', '112.56937550968', '37.879829423856', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150000, '内蒙古自治区', '', 0, 0, 'N', '111.77260583082', '40.823156232446', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210000, '辽宁省', '', 0, 0, 'L', '123.43559785683', '41.841465251202', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220000, '吉林省', '', 0, 0, 'J', '125.33257987515', '43.901714435444', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230000, '黑龙江省', '', 0, 0, 'H', '126.66965282042', '45.747929837435', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(310000, '上海市', '', 0, 0, 'S', '121.48053886018', '31.235929042252', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320000, '江苏省', '', 0, 0, 'J', '118.76955164467', '32.066776944293', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330000, '浙江省', '', 0, 0, 'Z', '120.15953308739', '30.271548393337', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340000, '安徽省', '', 0, 0, 'A', '117.33054041772', '31.734294156317', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350000, '福建省', '', 0, 0, 'F', '119.30244747704', '26.106339415901', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360000, '江西省', '', 0, 0, 'J', '115.91542320365', '28.681690516761', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370000, '山东省', '', 0, 0, 'S', '117.02744162848', '36.674856650405', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410000, '河南省', '', 0, 0, 'H', '113.75938408486', '34.771712921931', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420000, '湖北省', '', 0, 0, 'H', '114.34844073659', '30.551600064658', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430000, '湖南省', '', 0, 0, 'H', '112.98960254335', '28.118269998009', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440000, '广东省', '', 0, 0, 'G', '113.27242891273', '23.137948556539', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450000, '广西壮族自治区', '', 0, 0, 'G', '108.33452122944', '22.821268997909', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460000, '海南省', '', 0, 0, 'H', '110.35553651088', '20.025801964463', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500000, '重庆市', '', 0, 0, 'Z', '106.55843415538', '29.568996245339', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510000, '四川省', '', 0, 0, 'S', '104.07346654728', '30.577543147015', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520000, '贵州省', '', 0, 0, 'G', '106.71447593089', '26.604029544995', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530000, '云南省', '', 0, 0, 'Y', '102.71641607523', '25.051562267345', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540000, '西藏自治区', '', 0, 0, 'X', '91.124342128993', '29.652893647473', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610000, '陕西省', '', 0, 0, 'S', '108.96039314875', '34.275808006024', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620000, '甘肃省', '', 0, 0, 'G', '103.83247812812', '36.065464887368', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(630000, '青海省', '', 0, 0, 'Q', '101.78646183587', '36.627158579235', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(640000, '宁夏回族自治区', '', 0, 0, 'N', '106.26560480701', '38.476877967911', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(650000, '新疆维吾尔自治区', '', 0, 0, 'X', '87.633473205738', '43.79923810129', 0, 1, 'tr_0 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(110100, '市辖区', '', 0, 0, 'S', '116.41338369712', '39.9109245473', 110000, 2, 'tr_0 tr_110000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(120100, '市辖区', '', 0, 0, 'S', '117.21081309155', '39.14392990331', 120000, 2, 'tr_0 tr_120000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140100, '太原市', '', 0, 0, 'T', '112.55639149167', '37.876989028848', 140000, 2, 'tr_0 tr_140000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140200, '大同市', '', 0, 0, 'D', '113.30643625859', '40.082468716161', 140000, 2, 'tr_0 tr_140000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140300, '阳泉市', '', 0, 0, 'Y', '113.58761666288', '37.862360847859', 140000, 2, 'tr_0 tr_140000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140400, '长治市', '', 0, 0, 'Z', '113.12255886985', '36.201268372155', 140000, 2, 'tr_0 tr_140000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140500, '晋城市', '', 0, 0, 'J', '112.85857823133', '35.496284586473', 140000, 2, 'tr_0 tr_140000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140600, '朔州市', '', 0, 0, 'S', '112.43937093967', '39.337108370542', 140000, 2, 'tr_0 tr_140000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140700, '晋中市', '', 0, 0, 'J', '112.75959475566', '37.69283940976', 140000, 2, 'tr_0 tr_140000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140800, '运城市', '', 0, 0, 'Y', '111.01338945448', '35.032706912909', 140000, 2, 'tr_0 tr_140000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140900, '忻州市', '', 0, 0, 'X', '112.74062416024', '38.422383385178', 140000, 2, 'tr_0 tr_140000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141000, '临汾市', '', 0, 0, 'L', '111.52553022403', '36.09374189542', 140000, 2, 'tr_0 tr_140000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141100, '吕梁市', '', 0, 0, 'L', '111.15044967529', '37.524497749577', 140000, 2, 'tr_0 tr_140000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150100, '呼和浩特市', '', 0, 0, 'H', '111.75550856171', '40.848422997113', 150000, 2, 'tr_0 tr_150000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150200, '包头市', '', 0, 0, 'B', '109.84654350721', '40.662928788261', 150000, 2, 'tr_0 tr_150000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150300, '乌海市', '', 0, 0, 'W', '106.80039105', '39.662006364891', 150000, 2, 'tr_0 tr_150000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150400, '赤峰市', '', 0, 0, 'C', '118.89552039752', '42.261686103412', 150000, 2, 'tr_0 tr_150000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150500, '通辽市', '', 0, 0, 'T', '122.25052178738', '43.657980083917', 150000, 2, 'tr_0 tr_150000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150600, '鄂尔多斯市', '', 0, 0, 'E', '109.78744317924', '39.614482313949', 150000, 2, 'tr_0 tr_150000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150700, '呼伦贝尔市', '', 0, 0, 'H', '119.77237049947', '49.218446475565', 150000, 2, 'tr_0 tr_150000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150800, '巴彦淖尔市', '', 0, 0, 'B', '107.39439808372', '40.749359489573', 150000, 2, 'tr_0 tr_150000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150900, '乌兰察布市', '', 0, 0, 'W', '113.13946767446', '41.000748327674', 150000, 2, 'tr_0 tr_150000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(152200, '兴安盟', '', 0, 0, 'X', '122.04436452583', '46.088463713219', 150000, 2, 'tr_0 tr_150000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(152500, '锡林郭勒盟', '', 0, 0, 'X', '116.05439144075', '43.939422665339', 150000, 2, 'tr_0 tr_150000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(152900, '阿拉善盟', '', 0, 0, 'A', '105.73537746449', '38.858275883057', 150000, 2, 'tr_0 tr_150000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210100, '沈阳市', '', 0, 0, 'S', '123.45598993089', '41.720915668889', 210000, 2, 'tr_0 tr_210000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210200, '大连市', '', 0, 0, 'D', '121.62163148459', '38.918953666786', 210000, 2, 'tr_0 tr_210000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210300, '鞍山市', '', 0, 0, 'A', '123.00137251399', '41.115053596949', 210000, 2, 'tr_0 tr_210000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210400, '抚顺市', '', 0, 0, 'F', '123.96437461561', '41.885969593057', 210000, 2, 'tr_0 tr_210000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210500, '本溪市', '', 0, 0, 'B', '123.69250712421', '41.492916460553', 210000, 2, 'tr_0 tr_210000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210600, '丹东市', '', 0, 0, 'D', '124.36154728159', '40.006408705594', 210000, 2, 'tr_0 tr_210000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210700, '锦州市', '', 0, 0, 'J', '121.13259630056', '41.100931499462', 210000, 2, 'tr_0 tr_210000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210800, '营口市', '', 0, 0, 'Y', '122.2415746645', '40.673136838267', 210000, 2, 'tr_0 tr_210000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210900, '阜新市', '', 0, 0, 'F', '121.67640799866', '42.028021901318', 210000, 2, 'tr_0 tr_210000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211000, '辽阳市', '', 0, 0, 'L', '123.24336640651', '41.274161290454', 210000, 2, 'tr_0 tr_210000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211100, '盘锦市', '', 0, 0, 'P', '122.07322781023', '41.141248022956', 210000, 2, 'tr_0 tr_210000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211200, '铁岭市', '', 0, 0, 'T', '123.73236520918', '42.229947997184', 210000, 2, 'tr_0 tr_210000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211300, '朝阳市', '', 0, 0, 'C', '120.45749949793', '41.579820864756', 210000, 2, 'tr_0 tr_210000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211400, '葫芦岛市', '', 0, 0, 'H', '120.84339833993', '40.717364436362', 210000, 2, 'tr_0 tr_210000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220100, '长春市', '', 0, 0, 'Z', '125.33060207591', '43.821953501043', 220000, 2, 'tr_0 tr_220000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220200, '吉林市', '', 0, 0, 'J', '126.55563450495', '43.843567834579', 220000, 2, 'tr_0 tr_220000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220300, '四平市', '', 0, 0, 'S', '124.35648155716', '43.171993571561', 220000, 2, 'tr_0 tr_220000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220400, '辽源市', '', 0, 0, 'L', '125.15042516689', '42.894055005746', 220000, 2, 'tr_0 tr_220000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220500, '通化市', '', 0, 0, 'T', '125.94660627598', '41.733815801613', 220000, 2, 'tr_0 tr_220000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220600, '白山市', '', 0, 0, 'B', '126.42963008938', '41.939627205329', 220000, 2, 'tr_0 tr_220000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220700, '松原市', '', 0, 0, 'S', '124.83148187569', '45.147404193414', 220000, 2, 'tr_0 tr_220000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220800, '白城市', '', 0, 0, 'B', '122.8455906085', '45.625504359996', 220000, 2, 'tr_0 tr_220000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(222400, '延边朝鲜族自治州', '', 0, 0, 'Y', '129.47737632023', '42.915743033722', 220000, 2, 'tr_0 tr_220000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230100, '哈尔滨市', '', 0, 0, 'H', '126.54161509032', '45.808825827952', 230000, 2, 'tr_0 tr_230000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230200, '齐齐哈尔市', '', 0, 0, 'Q', '123.92457086842', '47.359977186015', 230000, 2, 'tr_0 tr_230000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230300, '鸡西市', '', 0, 0, 'J', '130.97561865877', '45.300872317824', 230000, 2, 'tr_0 tr_230000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230400, '鹤岗市', '', 0, 0, 'H', '130.30443289867', '47.356056157685', 230000, 2, 'tr_0 tr_230000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230500, '双鸭山市', '', 0, 0, 'S', '131.16534168078', '46.653185895886', 230000, 2, 'tr_0 tr_230000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230600, '大庆市', '', 0, 0, 'D', '125.10865763402', '46.593633176722', 230000, 2, 'tr_0 tr_230000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230700, '伊春市', '', 0, 0, 'Y', '128.8475463802', '47.733318457231', 230000, 2, 'tr_0 tr_230000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230800, '佳木斯市', '', 0, 0, 'J', '130.32735909257', '46.805689990858', 230000, 2, 'tr_0 tr_230000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230900, '七台河市', '', 0, 0, 'Q', '131.01154459103', '45.776300321548', 230000, 2, 'tr_0 tr_230000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231000, '牡丹江市', '', 0, 0, 'M', '129.63953977835', '44.556245708986', 230000, 2, 'tr_0 tr_230000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231100, '黑河市', '', 0, 0, 'H', '127.53548988622', '50.25127231175', 230000, 2, 'tr_0 tr_230000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231200, '绥化市', '', 0, 0, 'S', '126.9753568753', '46.660032179824', 230000, 2, 'tr_0 tr_230000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(232700, '大兴安岭地区', '', 0, 0, 'D', '124.15292785448', '50.420025955028', 230000, 2, 'tr_0 tr_230000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(310100, '市辖区', '', 0, 0, 'S', '121.48053886018', '31.235929042252', 310000, 2, 'tr_0 tr_310000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320100, '南京市', '', 0, 0, 'N', '118.80242172125', '32.064652885618', 320000, 2, 'tr_0 tr_320000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320200, '无锡市', '', 0, 0, 'W', '120.31858328811', '31.498809732686', 320000, 2, 'tr_0 tr_320000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320300, '徐州市', '', 0, 0, 'X', '117.29057543439', '34.212666550113', 320000, 2, 'tr_0 tr_320000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320400, '常州市', '', 0, 0, 'C', '119.98148471328', '31.815795653328', 320000, 2, 'tr_0 tr_320000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'); +INSERT INTO `hg_sys_provinces` (`id`, `title`, `short_title`, `areacode`, `zipcode`, `pinyin`, `lng`, `lat`, `pid`, `level`, `tree`, `sort`, `status`, `created_at`, `updated_at`) VALUES +(320500, '苏州市', '', 0, 0, 'S', '120.59241222959', '31.303564074442', 320000, 2, 'tr_0 tr_320000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320600, '南通市', '', 0, 0, 'N', '120.90159173866', '31.986549431201', 320000, 2, 'tr_0 tr_320000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320700, '连云港市', '', 0, 0, 'L', '119.22862133317', '34.602249525267', 320000, 2, 'tr_0 tr_320000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320800, '淮安市', '', 0, 0, 'H', '119.02148367071', '33.616295301033', 320000, 2, 'tr_0 tr_320000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320900, '盐城市', '', 0, 0, 'Y', '120.16754426576', '33.355100917626', 320000, 2, 'tr_0 tr_320000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321000, '扬州市', '', 0, 0, 'Y', '119.41941890823', '32.40067693609', 320000, 2, 'tr_0 tr_320000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321100, '镇江市', '', 0, 0, 'Z', '119.43048944567', '32.194715920524', 320000, 2, 'tr_0 tr_320000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321200, '泰州市', '', 0, 0, 'T', '119.92956633785', '32.460675049308', 320000, 2, 'tr_0 tr_320000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321300, '宿迁市', '', 0, 0, 'S', '118.28157403571', '33.96774971569', 320000, 2, 'tr_0 tr_320000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330100, '杭州市', '', 0, 0, 'H', '120.21551180372', '30.253082981693', 330000, 2, 'tr_0 tr_330000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330200, '宁波市', '', 0, 0, 'N', '121.62857249434', '29.866033045866', 330000, 2, 'tr_0 tr_330000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330300, '温州市', '', 0, 0, 'W', '120.70647689036', '28.001085404472', 330000, 2, 'tr_0 tr_330000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330400, '嘉兴市', '', 0, 0, 'J', '120.76355182586', '30.75097483092', 330000, 2, 'tr_0 tr_330000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330500, '湖州市', '', 0, 0, 'H', '120.09451660916', '30.898963937294', 330000, 2, 'tr_0 tr_330000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330600, '绍兴市', '', 0, 0, 'S', '120.58547847885', '30.036369311307', 330000, 2, 'tr_0 tr_330000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330700, '金华市', '', 0, 0, 'J', '119.65343619053', '29.084639385514', 330000, 2, 'tr_0 tr_330000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330800, '衢州市', '', 0, 0, 'Q', '118.86659674036', '28.975545802265', 330000, 2, 'tr_0 tr_330000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330900, '舟山市', '', 0, 0, 'Z', '122.21355631852', '29.99091168016', 330000, 2, 'tr_0 tr_330000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(331000, '台州市', '', 0, 0, 'T', '121.42743470428', '28.662194055996', 330000, 2, 'tr_0 tr_330000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(331100, '丽水市', '', 0, 0, 'L', '119.92957305844', '28.473278180563', 330000, 2, 'tr_0 tr_330000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340100, '合肥市', '', 0, 0, 'H', '117.23344266498', '31.826577833687', 340000, 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340200, '芜湖市', '', 0, 0, 'W', '118.43943137654', '31.358536655799', 340000, 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340300, '蚌埠市', '', 0, 0, 'B', '117.39551332814', '32.921523704351', 340000, 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340400, '淮南市', '', 0, 0, 'H', '117.00638885072', '32.631847399053', 340000, 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340500, '马鞍山市', '', 0, 0, 'M', '118.51357957943', '31.676265597609', 340000, 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340600, '淮北市', '', 0, 0, 'H', '116.80453726703', '33.961656300276', 340000, 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340700, '铜陵市', '', 0, 0, 'T', '117.81847679446', '30.951233239913', 340000, 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340800, '安庆市', '', 0, 0, 'A', '117.06360390492', '30.530956568043', 340000, 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341000, '黄山市', '', 0, 0, 'H', '118.34543725315', '29.721889786592', 340000, 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341100, '滁州市', '', 0, 0, 'C', '118.33940613597', '32.261270872041', 340000, 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341200, '阜阳市', '', 0, 0, 'F', '115.82043612491', '32.896060994852', 340000, 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341300, '宿州市', '', 0, 0, 'S', '116.97054394561', '33.652095326452', 340000, 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341500, '六安市', '', 0, 0, 'L', '116.52640966419', '31.741450815323', 340000, 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341600, '亳州市', '', 0, 0, 'B', '115.78446321127', '33.850642695789', 340000, 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341700, '池州市', '', 0, 0, 'C', '117.4984209616', '30.670883790765', 340000, 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341800, '宣城市', '', 0, 0, 'X', '118.76553424277', '30.946601545293', 340000, 2, 'tr_0 tr_340000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350100, '福州市', '', 0, 0, 'F', '119.30346983854', '26.080429420698', 350000, 2, 'tr_0 tr_350000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350200, '厦门市', '', 0, 0, 'S', '118.09643549977', '24.485406605176', 350000, 2, 'tr_0 tr_350000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350300, '莆田市', '', 0, 0, 'P', '119.01452097813', '25.459865455923', 350000, 2, 'tr_0 tr_350000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350400, '三明市', '', 0, 0, 'S', '117.64552116782', '26.269736515992', 350000, 2, 'tr_0 tr_350000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350500, '泉州市', '', 0, 0, 'Q', '118.6824462668', '24.879952330498', 350000, 2, 'tr_0 tr_350000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350600, '漳州市', '', 0, 0, 'Z', '117.65357645299', '24.518929791171', 350000, 2, 'tr_0 tr_350000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350700, '南平市', '', 0, 0, 'N', '118.18436954814', '26.647772874203', 350000, 2, 'tr_0 tr_350000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350800, '龙岩市', '', 0, 0, 'L', '117.02344756678', '25.081219844872', 350000, 2, 'tr_0 tr_350000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350900, '宁德市', '', 0, 0, 'N', '119.55451074543', '26.672241711409', 350000, 2, 'tr_0 tr_350000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360100, '南昌市', '', 0, 0, 'N', '115.86458944232', '28.689455295061', 360000, 2, 'tr_0 tr_360000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360200, '景德镇市', '', 0, 0, 'J', '117.18457644639', '29.274247711041', 360000, 2, 'tr_0 tr_360000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360300, '萍乡市', '', 0, 0, 'P', '113.86149643375', '27.628392709397', 360000, 2, 'tr_0 tr_360000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360400, '九江市', '', 0, 0, 'J', '116.00753491163', '29.711340559079', 360000, 2, 'tr_0 tr_360000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360500, '新余市', '', 0, 0, 'X', '114.9235346514', '27.823578697789', 360000, 2, 'tr_0 tr_360000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360600, '鹰潭市', '', 0, 0, 'Y', '117.07557542703', '28.265787063191', 360000, 2, 'tr_0 tr_360000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360700, '赣州市', '', 0, 0, 'G', '114.94050337298', '25.835176103498', 360000, 2, 'tr_0 tr_360000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360800, '吉安市', '', 0, 0, 'J', '115.00051072001', '27.11972682607', 360000, 2, 'tr_0 tr_360000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360900, '宜春市', '', 0, 0, 'Y', '114.42356367591', '27.820856421848', 360000, 2, 'tr_0 tr_360000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(361000, '抚州市', '', 0, 0, 'F', '116.36453876864', '27.95489225342', 360000, 2, 'tr_0 tr_360000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(361100, '上饶市', '', 0, 0, 'S', '117.94945960312', '28.460625921852', 360000, 2, 'tr_0 tr_360000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370100, '济南市', '', 0, 0, 'J', '117.12639941261', '36.656554201787', 370000, 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370200, '青岛市', '', 0, 0, 'Q', '120.38945519115', '36.072227496663', 370000, 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370300, '淄博市', '', 0, 0, 'Z', '118.0614525349', '36.819085683322', 370000, 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370400, '枣庄市', '', 0, 0, 'Z', '117.33054194484', '34.815994048435', 370000, 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370500, '东营市', '', 0, 0, 'D', '118.68138493514', '37.439641826323', 370000, 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370600, '烟台市', '', 0, 0, 'Y', '121.4544154173', '37.470038383731', 370000, 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370700, '潍坊市', '', 0, 0, 'W', '119.16837791143', '36.712651551268', 370000, 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370800, '济宁市', '', 0, 0, 'J', '116.59361234854', '35.42017739453', 370000, 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370900, '泰安市', '', 0, 0, 'T', '117.0944948348', '36.205858044885', 370000, 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371000, '威海市', '', 0, 0, 'W', '122.12754097831', '37.516430548015', 370000, 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371100, '日照市', '', 0, 0, 'R', '119.53341540457', '35.422838998438', 370000, 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371200, '莱芜市', '', 0, 0, 'L', '117.68466691247', '36.233654133647', 370000, 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371300, '临沂市', '', 0, 0, 'L', '118.36353300501', '35.110671242365', 370000, 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371400, '德州市', '', 0, 0, 'D', '116.36555674397', '37.441308454576', 370000, 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371500, '聊城市', '', 0, 0, 'L', '115.9915878483', '36.462758187694', 370000, 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371600, '滨州市', '', 0, 0, 'B', '117.97740401715', '37.388196196077', 370000, 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371700, '菏泽市', '', 0, 0, 'H', '115.48754503343', '35.239407424766', 370000, 2, 'tr_0 tr_370000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410100, '郑州市', '', 0, 0, 'Z', '113.63141920734', '34.753438850454', 410000, 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410200, '开封市', '', 0, 0, 'K', '114.31459258497', '34.802885811212', 410000, 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410300, '洛阳市', '', 0, 0, 'L', '112.45942129831', '34.624262779219', 410000, 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410400, '平顶山市', '', 0, 0, 'P', '113.19952856052', '33.772050748691', 410000, 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410500, '安阳市', '', 0, 0, 'A', '114.39950042177', '36.105940984015', 410000, 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410600, '鹤壁市', '', 0, 0, 'H', '114.30359364248', '35.7523574114', 410000, 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410700, '新乡市', '', 0, 0, 'X', '113.93360046733', '35.309639930337', 410000, 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410800, '焦作市', '', 0, 0, 'J', '113.24854783457', '35.220963254039', 410000, 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410900, '濮阳市', '', 0, 0, 'P', '115.03559747034', '35.767593028906', 410000, 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411000, '许昌市', '', 0, 0, 'X', '113.85847553686', '34.041431611619', 410000, 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411100, '漯河市', '', 0, 0, 'L', '114.02342077765', '33.587710707102', 410000, 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411200, '三门峡市', '', 0, 0, 'S', '111.20653322387', '34.77832724946', 410000, 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411300, '南阳市', '', 0, 0, 'N', '112.53450131351', '32.996562204651', 410000, 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411400, '商丘市', '', 0, 0, 'S', '115.66244933826', '34.420201665859', 410000, 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411500, '信阳市', '', 0, 0, 'X', '114.09748283305', '32.153014547531', 410000, 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411600, '周口市', '', 0, 0, 'Z', '114.70348251482', '33.631828875702', 410000, 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411700, '驻马店市', '', 0, 0, 'Z', '114.02847078173', '33.017842416744', 410000, 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(419000, '省直辖县级行政区划', '', 0, 0, 'S', '113.75938408486', '34.771712921931', 410000, 2, 'tr_0 tr_410000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420100, '武汉市', '', 0, 0, 'W', '114.31158155473', '30.598466736401', 420000, 2, 'tr_0 tr_420000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420200, '黄石市', '', 0, 0, 'H', '115.04553290894', '30.205207848942', 420000, 2, 'tr_0 tr_420000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420300, '十堰市', '', 0, 0, 'S', '110.8045295607', '32.635061858401', 420000, 2, 'tr_0 tr_420000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420500, '宜昌市', '', 0, 0, 'Y', '111.29254921035', '30.697446484492', 420000, 2, 'tr_0 tr_420000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420600, '襄阳市', '', 0, 0, 'X', '112.128537201', '32.014796804669', 420000, 2, 'tr_0 tr_420000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420700, '鄂州市', '', 0, 0, 'E', '114.90160738827', '30.396572173317', 420000, 2, 'tr_0 tr_420000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420800, '荆门市', '', 0, 0, 'J', '112.20639298023', '31.04173257557', 420000, 2, 'tr_0 tr_420000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420900, '孝感市', '', 0, 0, 'X', '113.92251007734', '30.930689227018', 420000, 2, 'tr_0 tr_420000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421000, '荆州市', '', 0, 0, 'J', '112.24552262926', '30.340842107743', 420000, 2, 'tr_0 tr_420000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421100, '黄冈市', '', 0, 0, 'H', '114.87849048411', '30.459358857618', 420000, 2, 'tr_0 tr_420000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421200, '咸宁市', '', 0, 0, 'X', '114.32851909027', '29.847055947646', 420000, 2, 'tr_0 tr_420000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421300, '随州市', '', 0, 0, 'S', '113.38945001822', '31.696516772328', 420000, 2, 'tr_0 tr_420000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(422800, '恩施土家族苗族自治州', '', 0, 0, 'E', '109.49459261858', '30.277939575301', 420000, 2, 'tr_0 tr_420000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(429000, '省直辖县级行政区划', '', 0, 0, 'S', '114.34844073659', '30.551600064658', 420000, 2, 'tr_0 tr_420000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430100, '长沙市', '', 0, 0, 'Z', '112.94547319535', '28.234889399944', 430000, 2, 'tr_0 tr_430000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430200, '株洲市', '', 0, 0, 'Z', '113.14047079776', '27.833567639016', 430000, 2, 'tr_0 tr_430000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430300, '湘潭市', '', 0, 0, 'X', '112.95046418076', '27.835702227136', 430000, 2, 'tr_0 tr_430000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430400, '衡阳市', '', 0, 0, 'H', '112.57844721326', '26.899576139189', 430000, 2, 'tr_0 tr_430000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430500, '邵阳市', '', 0, 0, 'S', '111.47443288593', '27.245270272809', 430000, 2, 'tr_0 tr_430000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430600, '岳阳市', '', 0, 0, 'Y', '113.13548942422', '29.363178293926', 430000, 2, 'tr_0 tr_430000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430700, '常德市', '', 0, 0, 'C', '111.70545217996', '29.037749999407', 430000, 2, 'tr_0 tr_430000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430800, '张家界市', '', 0, 0, 'Z', '110.48553254695', '29.122815562552', 430000, 2, 'tr_0 tr_430000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430900, '益阳市', '', 0, 0, 'Y', '112.36151595471', '28.55971117849', 430000, 2, 'tr_0 tr_430000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431000, '郴州市', '', 0, 0, 'C', '113.02146049909', '25.776683273602', 430000, 2, 'tr_0 tr_430000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431100, '永州市', '', 0, 0, 'Y', '111.61945505792', '26.4258641179', 430000, 2, 'tr_0 tr_430000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431200, '怀化市', '', 0, 0, 'H', '110.00851426537', '27.575160902979', 430000, 2, 'tr_0 tr_430000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431300, '娄底市', '', 0, 0, 'L', '112.00150349288', '27.703208596992', 430000, 2, 'tr_0 tr_430000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(433100, '湘西土家族苗族自治州', '', 0, 0, 'X', '109.74557664947', '28.317369104701', 430000, 2, 'tr_0 tr_430000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440100, '广州市', '', 0, 0, 'G', '113.27143134446', '23.135336306695', 440000, 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440200, '韶关市', '', 0, 0, 'S', '113.60352734562', '24.815881278583', 440000, 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440300, '深圳市', '', 0, 0, 'S', '114.06455183659', '22.548456637984', 440000, 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440400, '珠海市', '', 0, 0, 'Z', '113.58255478655', '22.276564654249', 440000, 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440500, '汕头市', '', 0, 0, 'S', '116.68852864055', '23.359091717725', 440000, 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440600, '佛山市', '', 0, 0, 'F', '113.1285121955', '23.027758750789', 440000, 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440700, '江门市', '', 0, 0, 'J', '113.08855619524', '22.584603880965', 440000, 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440800, '湛江市', '', 0, 0, 'Z', '110.36555441393', '21.276723439012', 440000, 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440900, '茂名市', '', 0, 0, 'M', '110.93154257997', '21.669064031332', 440000, 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441200, '肇庆市', '', 0, 0, 'Z', '112.47148894063', '23.052888771126', 440000, 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441300, '惠州市', '', 0, 0, 'H', '114.42355801658', '23.116358854726', 440000, 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441400, '梅州市', '', 0, 0, 'M', '116.12953737612', '24.294177532206', 440000, 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441500, '汕尾市', '', 0, 0, 'S', '115.3729242894', '22.778730500164', 440000, 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441600, '河源市', '', 0, 0, 'H', '114.70744627291', '23.74968437096', 440000, 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441700, '阳江市', '', 0, 0, 'Y', '111.98848929181', '21.864339726139', 440000, 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441800, '清远市', '', 0, 0, 'Q', '113.06246832527', '23.688230292088', 440000, 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900, '东莞市', '', 0, 0, 'D', '113.75842045788', '23.027308411643', 440000, 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(442000, '中山市', '', 0, 0, 'Z', '113.39942236263', '22.522314670791', 440000, 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(445100, '潮州市', '', 0, 0, 'C', '116.62947017363', '23.662623192616', 440000, 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(445200, '揭阳市', '', 0, 0, 'J', '116.37851218034', '23.555740488276', 440000, 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(445300, '云浮市', '', 0, 0, 'Y', '112.05151269959', '22.920911970343', 440000, 2, 'tr_0 tr_440000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450100, '南宁市', '', 0, 0, 'N', '108.37345082582', '22.822606601187', 450000, 2, 'tr_0 tr_450000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450200, '柳州市', '', 0, 0, 'L', '109.43442194635', '24.331961386852', 450000, 2, 'tr_0 tr_450000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450300, '桂林市', '', 0, 0, 'G', '110.20354537458', '25.242885724873', 450000, 2, 'tr_0 tr_450000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450400, '梧州市', '', 0, 0, 'W', '111.28551681182', '23.482745281135', 450000, 2, 'tr_0 tr_450000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450500, '北海市', '', 0, 0, 'B', '109.12653321257', '21.486836495769', 450000, 2, 'tr_0 tr_450000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450600, '防城港市', '', 0, 0, 'F', '108.3604188383', '21.693005289969', 450000, 2, 'tr_0 tr_450000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450700, '钦州市', '', 0, 0, 'Q', '108.66058016842', '21.986593539484', 450000, 2, 'tr_0 tr_450000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450800, '贵港市', '', 0, 0, 'G', '109.60552031033', '23.117448382038', 450000, 2, 'tr_0 tr_450000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450900, '玉林市', '', 0, 0, 'Y', '110.18845312337', '22.659830509953', 450000, 2, 'tr_0 tr_450000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451000, '百色市', '', 0, 0, 'B', '106.62458932565', '23.908185934296', 450000, 2, 'tr_0 tr_450000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451100, '贺州市', '', 0, 0, 'H', '111.57352631416', '24.409450902865', 450000, 2, 'tr_0 tr_450000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451200, '河池市', '', 0, 0, 'H', '108.09149994499', '24.698911731273', 450000, 2, 'tr_0 tr_450000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451300, '来宾市', '', 0, 0, 'L', '109.2274581959', '23.756546762607', 450000, 2, 'tr_0 tr_450000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451400, '崇左市', '', 0, 0, 'C', '107.3715202061', '22.383117234663', 450000, 2, 'tr_0 tr_450000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460100, '海口市', '', 0, 0, 'H', '110.32552547126', '20.044049439257', 460000, 2, 'tr_0 tr_460000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460200, '三亚市', '', 0, 0, 'S', '109.5185567014', '18.258736291748', 460000, 2, 'tr_0 tr_460000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460300, '三沙市', '', 0, 0, 'S', '112.34048204137', '16.838953334409', 460000, 2, 'tr_0 tr_460000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460400, '儋州市', '', 0, 0, 'D', '109.58745583569', '19.527146110044', 460000, 2, 'tr_0 tr_460000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(469000, '省直辖县级行政区划', '', 0, 0, 'S', '110.35553651088', '20.025801964463', 460000, 2, 'tr_0 tr_460000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500100, '市辖区', '', 0, 0, 'S', '106.55843415538', '29.568996245339', 500000, 2, 'tr_0 tr_500000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500200, '县', '', 0, 0, 'X', '106.55843415538', '29.568996245339', 500000, 2, 'tr_0 tr_500000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510100, '成都市', '', 0, 0, 'C', '104.08153351042', '30.655821878416', 510000, 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510300, '自贡市', '', 0, 0, 'Z', '104.78444884672', '29.345584921328', 510000, 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510400, '攀枝花市', '', 0, 0, 'P', '101.72554117091', '26.588033173333', 510000, 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510500, '泸州市', '', 0, 0, 'L', '105.44852406933', '28.877668303607', 510000, 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510600, '德阳市', '', 0, 0, 'D', '104.40441936496', '31.133115003657', 510000, 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510700, '绵阳市', '', 0, 0, 'M', '104.68556186076', '31.473663048746', 510000, 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510800, '广元市', '', 0, 0, 'G', '105.85042318166', '32.441616305315', 510000, 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510900, '遂宁市', '', 0, 0, 'S', '105.59942153064', '30.539097671109', 510000, 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511000, '内江市', '', 0, 0, 'N', '105.064588025', '29.58588653832', 510000, 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511100, '乐山市', '', 0, 0, 'L', '103.77253760363', '29.557940717458', 510000, 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511300, '南充市', '', 0, 0, 'N', '106.11750261487', '30.843782508337', 510000, 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511400, '眉山市', '', 0, 0, 'M', '103.85656331579', '30.082526119421', 510000, 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511500, '宜宾市', '', 0, 0, 'Y', '104.64940370487', '28.758007028552', 510000, 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511600, '广安市', '', 0, 0, 'G', '106.63955268233', '30.461746110679', 510000, 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511700, '达州市', '', 0, 0, 'D', '107.47459385898', '31.214307723927', 510000, 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511800, '雅安市', '', 0, 0, 'Y', '103.0495426236', '30.016792545706', 510000, 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511900, '巴中市', '', 0, 0, 'B', '106.75158530316', '31.872888585957', 510000, 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(512000, '资阳市', '', 0, 0, 'Z', '104.63443534164', '30.134956559253', 510000, 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513200, '阿坝藏族羌族自治州', '', 0, 0, 'A', '102.23141546175', '31.905511577267', 510000, 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513300, '甘孜藏族自治州', '', 0, 0, 'G', '101.96854674579', '30.055278843518', 510000, 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513400, '凉山彝族自治州', '', 0, 0, 'L', '102.27350268097', '27.88775230037', 510000, 2, 'tr_0 tr_510000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520100, '贵阳市', '', 0, 0, 'G', '106.63657676353', '26.65332482231', 520000, 2, 'tr_0 tr_520000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520200, '六盘水市', '', 0, 0, 'L', '104.83755460235', '26.598833108257', 520000, 2, 'tr_0 tr_520000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520300, '遵义市', '', 0, 0, 'Z', '106.93342774802', '27.731700878917', 520000, 2, 'tr_0 tr_520000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520400, '安顺市', '', 0, 0, 'A', '105.95441712389', '26.259252378715', 520000, 2, 'tr_0 tr_520000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520500, '毕节市', '', 0, 0, 'B', '105.33332337117', '27.408562131331', 520000, 2, 'tr_0 tr_520000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520600, '铜仁市', '', 0, 0, 'T', '109.16855802826', '27.674902690624', 520000, 2, 'tr_0 tr_520000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522300, '黔西南布依族苗族自治州', '', 0, 0, 'Q', '104.91249214627', '25.093967349417', 520000, 2, 'tr_0 tr_520000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522600, '黔东南苗族侗族自治州', '', 0, 0, 'Q', '107.98944624078', '26.589702969826', 520000, 2, 'tr_0 tr_520000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522700, '黔南布依族苗族自治州', '', 0, 0, 'Q', '107.52840270574', '26.260616196074', 520000, 2, 'tr_0 tr_520000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530100, '昆明市', '', 0, 0, 'K', '102.852448365', '24.873998150044', 530000, 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530300, '曲靖市', '', 0, 0, 'Q', '103.80243482795', '25.496406931544', 530000, 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530400, '玉溪市', '', 0, 0, 'Y', '102.55356029311', '24.357710942446', 530000, 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530500, '保山市', '', 0, 0, 'B', '99.177273285818', '25.139038793266', 530000, 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530600, '昭通市', '', 0, 0, 'Z', '103.72351177197', '27.344083860247', 530000, 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530700, '丽江市', '', 0, 0, 'L', '100.23246452903', '26.860657438065', 530000, 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530800, '普洱市', '', 0, 0, 'P', '100.97256981473', '22.83097918601', 530000, 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530900, '临沧市', '', 0, 0, 'L', '100.09544042015', '23.890468556279', 530000, 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532300, '楚雄彝族自治州', '', 0, 0, 'C', '101.5344124805', '25.05177356534', 530000, 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532500, '红河哈尼族彝族自治州', '', 0, 0, 'H', '103.38154905258', '23.369996247605', 530000, 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532600, '文山壮族苗族自治州', '', 0, 0, 'W', '104.22256899109', '23.405994293612', 530000, 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532800, '西双版纳傣族自治州', '', 0, 0, 'X', '100.80344682456', '22.013601254764', 530000, 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532900, '大理白族自治州', '', 0, 0, 'D', '100.27458284048', '25.612128418193', 530000, 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(533100, '德宏傣族景颇族自治州', '', 0, 0, 'D', '98.591359356114', '24.438010702758', 530000, 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(533300, '怒江傈僳族自治州', '', 0, 0, 'N', '98.863288381358', '25.823707417658', 530000, 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(533400, '迪庆藏族自治州', '', 0, 0, 'D', '99.70952999014', '27.825184683643', 530000, 2, 'tr_0 tr_530000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540100, '拉萨市', '', 0, 0, 'L', '91.120823915464', '29.650040274768', 540000, 2, 'tr_0 tr_540000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540200, '日喀则市', '', 0, 0, 'R', '88.893703034826', '29.275657822512', 540000, 2, 'tr_0 tr_540000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540300, '昌都市', '', 0, 0, 'C', '97.179583594086', '31.147346549327', 540000, 2, 'tr_0 tr_540000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540400, '林芝市', '', 0, 0, 'L', '94.368058287133', '29.654042176952', 540000, 2, 'tr_0 tr_540000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540500, '山南市', '', 0, 0, 'S', '91.778675138519', '29.243026939249', 540000, 2, 'tr_0 tr_540000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540600, '那曲市', '', 0, 0, 'N', '92.057338498175', '31.482438388455', 540000, 2, 'tr_0 tr_540000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(542500, '阿里地区', '', 0, 0, 'A', '80.112776921926', '32.506866017633', 540000, 2, 'tr_0 tr_540000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610100, '西安市', '', 0, 0, 'X', '108.94646555063', '34.347268816624', 610000, 2, 'tr_0 tr_610000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610200, '铜川市', '', 0, 0, 'T', '108.95240424836', '34.902637080503', 610000, 2, 'tr_0 tr_610000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610300, '宝鸡市', '', 0, 0, 'B', '107.24457536704', '34.36891564287', 610000, 2, 'tr_0 tr_610000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610400, '咸阳市', '', 0, 0, 'X', '108.71542245143', '34.335476293369', 610000, 2, 'tr_0 tr_610000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610500, '渭南市', '', 0, 0, 'W', '109.51658960526', '34.505715516753', 610000, 2, 'tr_0 tr_610000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610600, '延安市', '', 0, 0, 'Y', '109.49658191613', '36.591111035218', 610000, 2, 'tr_0 tr_610000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610700, '汉中市', '', 0, 0, 'H', '107.02943020926', '33.073799907834', 610000, 2, 'tr_0 tr_610000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610800, '榆林市', '', 0, 0, 'Y', '109.74161603381', '38.290883835484', 610000, 2, 'tr_0 tr_610000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610900, '安康市', '', 0, 0, 'A', '109.03560108266', '32.690512770574', 610000, 2, 'tr_0 tr_610000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(611000, '商洛市', '', 0, 0, 'S', '109.92441788136', '33.878633852208', 610000, 2, 'tr_0 tr_610000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620100, '兰州市', '', 0, 0, 'L', '103.84052119634', '36.067234693546', 620000, 2, 'tr_0 tr_620000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620200, '嘉峪关市', '', 0, 0, 'J', '98.296203843001', '39.777960147391', 620000, 2, 'tr_0 tr_620000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620300, '金昌市', '', 0, 0, 'J', '102.1946056867', '38.525820092093', 620000, 2, 'tr_0 tr_620000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620400, '白银市', '', 0, 0, 'B', '104.14445082834', '36.550825330415', 620000, 2, 'tr_0 tr_620000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620500, '天水市', '', 0, 0, 'T', '105.73141674567', '34.587411881651', 620000, 2, 'tr_0 tr_620000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620600, '武威市', '', 0, 0, 'W', '102.64455434037', '37.934377808158', 620000, 2, 'tr_0 tr_620000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620700, '张掖市', '', 0, 0, 'Z', '100.45641147406', '38.932066007005', 620000, 2, 'tr_0 tr_620000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620800, '平凉市', '', 0, 0, 'P', '106.67144234828', '35.549232050464', 620000, 2, 'tr_0 tr_620000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620900, '酒泉市', '', 0, 0, 'J', '98.500685216068', '39.738469080716', 620000, 2, 'tr_0 tr_620000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(621000, '庆阳市', '', 0, 0, 'Q', '107.64938569595', '35.715215983562', 620000, 2, 'tr_0 tr_620000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(621100, '定西市', '', 0, 0, 'D', '104.63242008306', '35.586832926562', 620000, 2, 'tr_0 tr_620000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(621200, '陇南市', '', 0, 0, 'L', '104.92857497071', '33.406620229951', 620000, 2, 'tr_0 tr_620000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(622900, '临夏回族自治州', '', 0, 0, 'L', '103.2163905653', '35.607562183503', 620000, 2, 'tr_0 tr_620000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(623000, '甘南藏族自治州', '', 0, 0, 'G', '102.91758468826', '34.989139909968', 620000, 2, 'tr_0 tr_620000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(630100, '西宁市', '', 0, 0, 'X', '101.78445017051', '36.623384696517', 630000, 2, 'tr_0 tr_630000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(630200, '海东市', '', 0, 0, 'H', '102.11044407228', '36.508511080941', 630000, 2, 'tr_0 tr_630000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632200, '海北藏族自治州', '', 0, 0, 'H', '100.90743432146', '36.96066282413', 630000, 2, 'tr_0 tr_630000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632300, '黄南藏族自治州', '', 0, 0, 'H', '102.02242827808', '35.525804586516', 630000, 2, 'tr_0 tr_630000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632500, '海南藏族自治州', '', 0, 0, 'H', '100.62662114446', '36.292102479899', 630000, 2, 'tr_0 tr_630000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632600, '果洛藏族自治州', '', 0, 0, 'G', '100.2515919788', '34.477193866471', 630000, 2, 'tr_0 tr_630000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632700, '玉树藏族自治州', '', 0, 0, 'Y', '97.013180762773', '33.010979585143', 630000, 2, 'tr_0 tr_630000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632800, '海西蒙古族藏族自治州', '', 0, 0, 'H', '97.376299116019', '37.382750462527', 630000, 2, 'tr_0 tr_630000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(640100, '银川市', '', 0, 0, 'Y', '106.2384935874', '38.49246005551', 640000, 2, 'tr_0 tr_640000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(640200, '石嘴山市', '', 0, 0, 'S', '106.3906004255', '38.989682839915', 640000, 2, 'tr_0 tr_640000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(640300, '吴忠市', '', 0, 0, 'W', '106.20537126664', '38.003712913453', 640000, 2, 'tr_0 tr_640000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(640400, '固原市', '', 0, 0, 'G', '106.24857742607', '36.021617258011', 640000, 2, 'tr_0 tr_640000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(640500, '中卫市', '', 0, 0, 'Z', '105.20357090089', '37.505701418703', 640000, 2, 'tr_0 tr_640000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(650100, '乌鲁木齐市', '', 0, 0, 'W', '87.62443993536', '43.83076320429', 650000, 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(650200, '克拉玛依市', '', 0, 0, 'K', '84.895900538875', '45.585675237814', 650000, 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(650400, '吐鲁番市', '', 0, 0, 'T', '89.266025488642', '42.678924820794', 650000, 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(650500, '哈密市', '', 0, 0, 'H', '93.529373012389', '42.344467104552', 650000, 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652300, '昌吉回族自治州', '', 0, 0, 'C', '87.315001624474', '44.01685415992', 650000, 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652700, '博尔塔拉蒙古自治州', '', 0, 0, 'B', '82.072914758274', '44.912196413465', 650000, 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652800, '巴音郭楞蒙古自治州', '', 0, 0, 'B', '86.151713865333', '41.77028733045', 650000, 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652900, '阿克苏地区', '', 0, 0, 'A', '80.266943484735', '41.175029860077', 650000, 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(653000, '克孜勒苏柯尔克孜自治州', '', 0, 0, 'K', '76.174308676212', '39.720471204871', 650000, 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(653100, '喀什地区', '', 0, 0, 'K', '75.996390556397', '39.476096748645', 650000, 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(653200, '和田地区', '', 0, 0, 'H', '79.928507063512', '37.120446463042', 650000, 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(654000, '伊犁哈萨克自治州', '', 0, 0, 'Y', '81.330537747532', '43.922723137492', 650000, 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(654200, '塔城地区', '', 0, 0, 'T', '82.987235518406', '46.750948254373', 650000, 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(654300, '阿勒泰地区', '', 0, 0, 'A', '88.147926203735', '47.850727870102', 650000, 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(659000, '自治区直辖县级行政区划', '', 0, 0, 'Z', '87.633473205738', '43.79923810129', 650000, 2, 'tr_0 tr_650000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(110101, '东城区', '', 0, 0, 'D', '116.42240097766', '39.934827272396', 110100, 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(110102, '西城区', '', 0, 0, 'X', '116.37251358117', '39.918123605841', 110100, 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(110105, '朝阳区', '', 0, 0, 'C', '112.85530302042', '35.520558754673', 110100, 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(110106, '丰台区', '', 0, 0, 'F', '116.29240188731', '39.864937197557', 110100, 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(110107, '石景山区', '', 0, 0, 'S', '116.22961266776', '39.911353808778', 110100, 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(110108, '海淀区', '', 0, 0, 'H', '116.3054340545', '39.965489841101', 110100, 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(110109, '门头沟区', '', 0, 0, 'M', '116.10760355577', '39.946146720034', 110100, 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(110111, '房山区', '', 0, 0, 'F', '116.14944375184', '39.754325839773', 110100, 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(110112, '通州区', '', 0, 0, 'T', '112.85530302042', '35.520558754673', 110100, 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(110113, '顺义区', '', 0, 0, 'S', '116.66142426369', '40.136350762231', 110100, 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(110114, '昌平区', '', 0, 0, 'C', '116.23761791731', '40.226413371594', 110100, 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(110115, '大兴区', '', 0, 0, 'D', '116.34862521223', '39.732555236554', 110100, 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(110116, '怀柔区', '', 0, 0, 'H', '116.63838587143', '40.322618404266', 110100, 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(110117, '平谷区', '', 0, 0, 'P', '117.1273791046', '40.146950735799', 110100, 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(110118, '密云区', '', 0, 0, 'M', '116.84954704427', '40.382175658138', 110100, 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(110119, '延庆区', '', 0, 0, 'Y', '115.98163156902', '40.462168973754', 110100, 3, 'tr_0 tr_110000 tr_110100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(120101, '和平区', '', 0, 0, 'H', '112.85530302042', '35.520558754673', 120100, 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(120102, '河东区', '', 0, 0, 'H', '117.26169316527', '39.126625684666', 120100, 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(120103, '河西区', '', 0, 0, 'H', '117.22941628002', '39.115718082216', 120100, 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(120104, '南开区', '', 0, 0, 'N', '117.15651537432', '39.144105279768', 120100, 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(120105, '河北区', '', 0, 0, 'H', '117.20359278136', '39.153485144705', 120100, 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(120106, '红桥区', '', 0, 0, 'H', '117.15751788327', '39.173285646564', 120100, 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(120110, '东丽区', '', 0, 0, 'D', '117.32056850791', '39.092332342815', 120100, 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(120111, '西青区', '', 0, 0, 'X', '117.01441017994', '39.148726608967', 120100, 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(120112, '津南区', '', 0, 0, 'J', '117.36338677903', '38.944148568115', 120100, 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(120113, '北辰区', '', 0, 0, 'B', '117.14140273158', '39.230343909918', 120100, 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(120114, '武清区', '', 0, 0, 'W', '117.05059715978', '39.389871228788', 120100, 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(120115, '宝坻区', '', 0, 0, 'B', '117.31660069248', '39.723194482933', 120100, 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(120116, '滨海新区', '', 0, 0, 'B', '117.71739882966', '39.009415773647', 120100, 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(120117, '宁河区', '', 0, 0, 'N', '117.83239334342', '39.336956431227', 120100, 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(120118, '静海区', '', 0, 0, 'J', '116.98046860455', '38.953370689172', 120100, 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(120119, '蓟州区', '', 0, 0, 'J', '117.41457869479', '40.051508786395', 120100, 3, 'tr_0 tr_120000 tr_120100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140105, '小店区', '', 0, 0, 'X', '112.57239624162', '37.742322528645', 140100, 3, 'tr_0 tr_140000 tr_140100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140106, '迎泽区', '', 0, 0, 'Y', '112.5693846724', '37.869532484225', 140100, 3, 'tr_0 tr_140000 tr_140100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140107, '杏花岭区', '', 0, 0, 'X', '112.5763830113', '37.900186246845', 140100, 3, 'tr_0 tr_140000 tr_140100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140108, '尖草坪区', '', 0, 0, 'J', '112.49360496704', '37.945943354548', 140100, 3, 'tr_0 tr_140000 tr_140100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140109, '万柏林区', '', 0, 0, 'W', '112.52257675702', '37.864974410402', 140100, 3, 'tr_0 tr_140000 tr_140100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140110, '晋源区', '', 0, 0, 'J', '112.48456424072', '37.721168857849', 140100, 3, 'tr_0 tr_140000 tr_140100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140121, '清徐县', '', 0, 0, 'Q', '112.36455763137', '37.613066838238', 140100, 3, 'tr_0 tr_140000 tr_140100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140122, '阳曲县', '', 0, 0, 'Y', '112.6794089516', '38.064620819448', 140100, 3, 'tr_0 tr_140000 tr_140100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140123, '娄烦县', '', 0, 0, 'L', '111.80359063362', '38.073195368896', 140100, 3, 'tr_0 tr_140000 tr_140100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140171, '山西转型综合改革示范区', '', 0, 0, 'S', '112.55639149167', '37.876989028848', 140100, 3, 'tr_0 tr_140000 tr_140100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140181, '古交市', '', 0, 0, 'G', '112.1824528689', '37.912999960962', 140100, 3, 'tr_0 tr_140000 tr_140100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140212, '新荣区', '', 0, 0, 'X', '113.14644373539', '40.261971219328', 140200, 3, 'tr_0 tr_140000 tr_140200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140213, '平城区', '', 0, 0, 'P', '113.30442522204', '40.081998375025', 140200, 3, 'tr_0 tr_140000 tr_140200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140214, '云冈区', '', 0, 0, 'Y', '113.16240150396', '39.996838811279', 140200, 3, 'tr_0 tr_140000 tr_140200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140215, '云州区', '', 0, 0, 'Y', '113.61847103172', '40.046229886508', 140200, 3, 'tr_0 tr_140000 tr_140200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140221, '阳高县', '', 0, 0, 'Y', '113.75541420332', '40.367391842472', 140200, 3, 'tr_0 tr_140000 tr_140200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140222, '天镇县', '', 0, 0, 'T', '114.09747753304', '40.426412198691', 140200, 3, 'tr_0 tr_140000 tr_140200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140223, '广灵县', '', 0, 0, 'G', '114.28858637097', '39.766004217139', 140200, 3, 'tr_0 tr_140000 tr_140200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140224, '灵丘县', '', 0, 0, 'L', '114.24136819946', '39.448825128052', 140200, 3, 'tr_0 tr_140000 tr_140200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140225, '浑源县', '', 0, 0, 'H', '113.70560028822', '39.698952969845', 140200, 3, 'tr_0 tr_140000 tr_140200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140226, '左云县', '', 0, 0, 'Z', '112.70946328956', '40.019623449015', 140200, 3, 'tr_0 tr_140000 tr_140200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140271, '山西大同经济开发区', '', 0, 0, 'S', '113.30643625859', '40.082468716161', 140200, 3, 'tr_0 tr_140000 tr_140200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140302, '城区', '', 0, 0, 'C', '113.61283811719', '37.85786536147', 140300, 3, 'tr_0 tr_140000 tr_140300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140303, '矿区', '', 0, 0, 'K', '113.54077065934', '37.890804244519', 140300, 3, 'tr_0 tr_140000 tr_140300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140311, '郊区', '', 0, 0, 'J', '113.60060283682', '37.950352892943', 140300, 3, 'tr_0 tr_140000 tr_140300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140321, '平定县', '', 0, 0, 'P', '113.66442115516', '37.792796383591', 140300, 3, 'tr_0 tr_140000 tr_140300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140322, '盂县', '', 0, 0, 'Y', '113.41842046075', '38.091979630201', 140300, 3, 'tr_0 tr_140000 tr_140300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140403, '潞州区', '', 0, 0, 'L', '113.12952091721', '36.209472481338', 140400, 3, 'tr_0 tr_140000 tr_140400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'); +INSERT INTO `hg_sys_provinces` (`id`, `title`, `short_title`, `areacode`, `zipcode`, `pinyin`, `lng`, `lat`, `pid`, `level`, `tree`, `sort`, `status`, `created_at`, `updated_at`) VALUES +(140404, '上党区', '', 0, 0, 'S', '113.05741608986', '36.059286479291', 140400, 3, 'tr_0 tr_140000 tr_140400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140405, '屯留区', '', 0, 0, 'T', '112.89847476377', '36.321630843108', 140400, 3, 'tr_0 tr_140000 tr_140400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140406, '潞城区', '', 0, 0, 'L', '113.23557845894', '36.339691267612', 140400, 3, 'tr_0 tr_140000 tr_140400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140423, '襄垣县', '', 0, 0, 'X', '113.05741258647', '36.541685821155', 140400, 3, 'tr_0 tr_140000 tr_140400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140425, '平顺县', '', 0, 0, 'P', '113.44251696707', '36.205989459384', 140400, 3, 'tr_0 tr_140000 tr_140400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140426, '黎城县', '', 0, 0, 'L', '113.39343247604', '36.508669901441', 140400, 3, 'tr_0 tr_140000 tr_140400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140427, '壶关县', '', 0, 0, 'H', '113.21357985531', '36.121334604237', 140400, 3, 'tr_0 tr_140000 tr_140400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140428, '长子县', '', 0, 0, 'Z', '112.88456585041', '36.128001557794', 140400, 3, 'tr_0 tr_140000 tr_140400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140429, '武乡县', '', 0, 0, 'W', '112.8706056438', '36.843167949301', 140400, 3, 'tr_0 tr_140000 tr_140400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140430, '沁县', '', 0, 0, 'Q', '112.70545801478', '36.762189938552', 140400, 3, 'tr_0 tr_140000 tr_140400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140431, '沁源县', '', 0, 0, 'Q', '112.34445202694', '36.506103350913', 140400, 3, 'tr_0 tr_140000 tr_140400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140471, '山西长治高新技术产业园区', '', 0, 0, 'S', '113.12255886985', '36.201268372155', 140400, 3, 'tr_0 tr_140000 tr_140400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140502, '城区', '', 0, 0, 'C', '112.85958379452', '35.507278924584', 140500, 3, 'tr_0 tr_140000 tr_140500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140521, '沁水县', '', 0, 0, 'Q', '112.19342620969', '35.696364462457', 140500, 3, 'tr_0 tr_140000 tr_140500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140522, '阳城县', '', 0, 0, 'Y', '112.42145378712', '35.492181320425', 140500, 3, 'tr_0 tr_140000 tr_140500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140524, '陵川县', '', 0, 0, 'L', '113.28740655466', '35.781743639538', 140500, 3, 'tr_0 tr_140000 tr_140500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140525, '泽州县', '', 0, 0, 'Z', '112.79440121959', '35.599769729488', 140500, 3, 'tr_0 tr_140000 tr_140500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140581, '高平市', '', 0, 0, 'G', '112.93041239923', '35.804336798578', 140500, 3, 'tr_0 tr_140000 tr_140500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140602, '朔城区', '', 0, 0, 'S', '112.43837642564', '39.325302712534', 140600, 3, 'tr_0 tr_140000 tr_140600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140603, '平鲁区', '', 0, 0, 'P', '112.29552500886', '39.517389104237', 140600, 3, 'tr_0 tr_140000 tr_140600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140621, '山阴县', '', 0, 0, 'S', '112.82243194473', '39.534030498011', 140600, 3, 'tr_0 tr_140000 tr_140600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140622, '应县', '', 0, 0, 'Y', '113.19749353922', '39.560077852375', 140600, 3, 'tr_0 tr_140000 tr_140600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140623, '右玉县', '', 0, 0, 'Y', '112.47350008125', '39.994859555431', 140600, 3, 'tr_0 tr_140000 tr_140600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140671, '山西朔州经济开发区', '', 0, 0, 'S', '112.46306042376', '39.354781496121', 140600, 3, 'tr_0 tr_140000 tr_140600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140681, '怀仁市', '', 0, 0, 'H', '113.10660846738', '39.833756889522', 140600, 3, 'tr_0 tr_140000 tr_140600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140702, '榆次区', '', 0, 0, 'Y', '112.71450350211', '37.703940486801', 140700, 3, 'tr_0 tr_140000 tr_140700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140721, '榆社县', '', 0, 0, 'Y', '112.98159856583', '37.0763696687', 140700, 3, 'tr_0 tr_140000 tr_140700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140722, '左权县', '', 0, 0, 'Z', '113.38545184006', '37.088555147171', 140700, 3, 'tr_0 tr_140000 tr_140700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140723, '和顺县', '', 0, 0, 'H', '113.57660568309', '37.334807738688', 140700, 3, 'tr_0 tr_140000 tr_140700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140724, '昔阳县', '', 0, 0, 'X', '113.71361290387', '37.617884042996', 140700, 3, 'tr_0 tr_140000 tr_140700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140725, '寿阳县', '', 0, 0, 'S', '113.18341017493', '37.901307606957', 140700, 3, 'tr_0 tr_140000 tr_140700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140726, '太谷县', '', 0, 0, 'T', '112.55738411926', '37.427395577313', 140700, 3, 'tr_0 tr_140000 tr_140700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140727, '祁县', '', 0, 0, 'Q', '112.34244242768', '37.364131283475', 140700, 3, 'tr_0 tr_140000 tr_140700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140728, '平遥县', '', 0, 0, 'P', '112.18245556381', '37.195600690703', 140700, 3, 'tr_0 tr_140000 tr_140700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140729, '灵石县', '', 0, 0, 'L', '111.78561787596', '36.85336750127', 140700, 3, 'tr_0 tr_140000 tr_140700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140781, '介休市', '', 0, 0, 'J', '111.92356319719', '37.032686403603', 140700, 3, 'tr_0 tr_140000 tr_140700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140802, '盐湖区', '', 0, 0, 'Y', '111.00437711462', '35.021425327829', 140800, 3, 'tr_0 tr_140000 tr_140800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140821, '临猗县', '', 0, 0, 'L', '110.78040700351', '35.149542242622', 140800, 3, 'tr_0 tr_140000 tr_140800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140822, '万荣县', '', 0, 0, 'W', '110.84457611016', '35.421108800536', 140800, 3, 'tr_0 tr_140000 tr_140800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140823, '闻喜县', '', 0, 0, 'W', '111.23141035768', '35.362931196381', 140800, 3, 'tr_0 tr_140000 tr_140800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140824, '稷山县', '', 0, 0, 'J', '110.98941457872', '35.610403569616', 140800, 3, 'tr_0 tr_140000 tr_140800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140825, '新绛县', '', 0, 0, 'X', '111.23140649497', '35.622630103082', 140800, 3, 'tr_0 tr_140000 tr_140800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140826, '绛县', '', 0, 0, 'J', '111.57548652056', '35.497276373896', 140800, 3, 'tr_0 tr_140000 tr_140800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140827, '垣曲县', '', 0, 0, 'Y', '111.67660670572', '35.303014517418', 140800, 3, 'tr_0 tr_140000 tr_140800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140828, '夏县', '', 0, 0, 'X', '111.2264314994', '35.147461779807', 140800, 3, 'tr_0 tr_140000 tr_140800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140829, '平陆县', '', 0, 0, 'P', '111.22348047596', '34.842925154581', 140800, 3, 'tr_0 tr_140000 tr_140800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140830, '芮城县', '', 0, 0, 'R', '110.7006115132', '34.699388110563', 140800, 3, 'tr_0 tr_140000 tr_140800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140881, '永济市', '', 0, 0, 'Y', '110.45457767131', '34.872829714714', 140800, 3, 'tr_0 tr_140000 tr_140800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140882, '河津市', '', 0, 0, 'H', '110.71857214373', '35.601926575322', 140800, 3, 'tr_0 tr_140000 tr_140800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140902, '忻府区', '', 0, 0, 'X', '112.75261366422', '38.40987981762', 140900, 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140921, '定襄县', '', 0, 0, 'D', '112.96352861152', '38.479974305847', 140900, 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140922, '五台县', '', 0, 0, 'W', '113.26145109492', '38.734181590565', 140900, 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140923, '代县', '', 0, 0, 'D', '112.96655194854', '39.072728346381', 140900, 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140924, '繁峙县', '', 0, 0, 'F', '113.27140827251', '39.195237430734', 140900, 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140925, '宁武县', '', 0, 0, 'N', '112.32639824212', '39.024342381431', 140900, 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140926, '静乐县', '', 0, 0, 'J', '111.94543190585', '38.365147088438', 140900, 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140927, '神池县', '', 0, 0, 'S', '112.21738276001', '39.096875824863', 140900, 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140928, '五寨县', '', 0, 0, 'W', '111.85340993856', '38.917019909692', 140900, 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140929, '岢岚县', '', 0, 0, 'K', '111.57947778177', '38.710151038936', 140900, 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140930, '河曲县', '', 0, 0, 'H', '111.14444863516', '39.390702488715', 140900, 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140931, '保德县', '', 0, 0, 'B', '111.09254175805', '39.028336932396', 140900, 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140932, '偏关县', '', 0, 0, 'P', '111.51447352049', '39.442230090387', 140900, 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140971, '五台山风景名胜区', '', 0, 0, 'W', '113.602695497', '38.983546253607', 140900, 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(140981, '原平市', '', 0, 0, 'Y', '112.71748713403', '38.736475897605', 140900, 3, 'tr_0 tr_140000 tr_140900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141002, '尧都区', '', 0, 0, 'Y', '111.58643021727', '36.084562230192', 141000, 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141021, '曲沃县', '', 0, 0, 'Q', '111.48239637819', '35.647327335982', 141000, 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141022, '翼城县', '', 0, 0, 'Y', '111.72537553219', '35.744429075039', 141000, 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141023, '襄汾县', '', 0, 0, 'X', '111.44854005199', '35.882062670676', 141000, 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141024, '洪洞县', '', 0, 0, 'H', '111.68158942672', '36.259467079377', 141000, 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141025, '古县', '', 0, 0, 'G', '111.92657314947', '36.272338064827', 141000, 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141026, '安泽县', '', 0, 0, 'A', '112.2566128396', '36.153514380523', 141000, 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141027, '浮山县', '', 0, 0, 'F', '111.85538495306', '35.974392753943', 141000, 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141028, '吉县', '', 0, 0, 'J', '110.68854637189', '36.103999062021', 141000, 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141029, '乡宁县', '', 0, 0, 'X', '110.85349790083', '35.976441665474', 141000, 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141030, '大宁县', '', 0, 0, 'D', '110.75938440882', '36.471305687097', 141000, 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141031, '隰县', '', 0, 0, 'X', '110.94759127079', '36.699061383227', 141000, 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141032, '永和县', '', 0, 0, 'Y', '110.63841589393', '36.765908673933', 141000, 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141033, '蒲县', '', 0, 0, 'P', '111.10247405258', '36.418005429177', 141000, 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141034, '汾西县', '', 0, 0, 'F', '111.56954629571', '36.658782264232', 141000, 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141081, '侯马市', '', 0, 0, 'H', '111.37839658489', '35.625364816258', 141000, 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141082, '霍州市', '', 0, 0, 'H', '111.76150942218', '36.574606950709', 141000, 3, 'tr_0 tr_140000 tr_141000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141102, '离石区', '', 0, 0, 'L', '111.15749077354', '37.523577475907', 141100, 3, 'tr_0 tr_140000 tr_141100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141121, '文水县', '', 0, 0, 'W', '112.0355986926', '37.444300082651', 141100, 3, 'tr_0 tr_140000 tr_141100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141122, '交城县', '', 0, 0, 'J', '112.16256770864', '37.557772236259', 141100, 3, 'tr_0 tr_140000 tr_141100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141123, '兴县', '', 0, 0, 'X', '111.13439210498', '38.468803780991', 141100, 3, 'tr_0 tr_140000 tr_141100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141124, '临县', '', 0, 0, 'L', '110.99841488129', '37.957210672321', 141100, 3, 'tr_0 tr_140000 tr_141100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141125, '柳林县', '', 0, 0, 'L', '110.8953898393', '37.435492964934', 141100, 3, 'tr_0 tr_140000 tr_141100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141126, '石楼县', '', 0, 0, 'S', '110.84159553248', '37.004470503012', 141100, 3, 'tr_0 tr_140000 tr_141100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141127, '岚县', '', 0, 0, 'L', '111.67859223038', '38.28502878885', 141100, 3, 'tr_0 tr_140000 tr_141100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141128, '方山县', '', 0, 0, 'F', '111.25037044293', '37.90102023916', 141100, 3, 'tr_0 tr_140000 tr_141100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141129, '中阳县', '', 0, 0, 'Z', '111.18562956483', '37.36287279238', 141100, 3, 'tr_0 tr_140000 tr_141100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141130, '交口县', '', 0, 0, 'J', '111.18762820476', '36.987872666553', 141100, 3, 'tr_0 tr_140000 tr_141100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141181, '孝义市', '', 0, 0, 'X', '111.78560601833', '37.151063319102', 141100, 3, 'tr_0 tr_140000 tr_141100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(141182, '汾阳市', '', 0, 0, 'F', '111.7945966192', '37.271291794518', 141100, 3, 'tr_0 tr_140000 tr_141100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150102, '新城区', '', 0, 0, 'X', '111.671620122', '40.863877021183', 150100, 3, 'tr_0 tr_150000 tr_150100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150103, '回民区', '', 0, 0, 'H', '111.63047018388', '40.814506362944', 150100, 3, 'tr_0 tr_150000 tr_150100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150104, '玉泉区', '', 0, 0, 'Y', '111.68157514366', '40.758058968635', 150100, 3, 'tr_0 tr_150000 tr_150100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150105, '赛罕区', '', 0, 0, 'S', '111.7084206445', '40.798394236975', 150100, 3, 'tr_0 tr_150000 tr_150100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150121, '土默特左旗', '', 0, 0, 'T', '111.16958672672', '40.735293711759', 150100, 3, 'tr_0 tr_150000 tr_150100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150122, '托克托县', '', 0, 0, 'T', '111.20057494309', '40.283146729007', 150100, 3, 'tr_0 tr_150000 tr_150100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150123, '和林格尔县', '', 0, 0, 'H', '111.82843021826', '40.384797744251', 150100, 3, 'tr_0 tr_150000 tr_150100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150124, '清水河县', '', 0, 0, 'Q', '111.65357648803', '39.926333854389', 150100, 3, 'tr_0 tr_150000 tr_150100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150125, '武川县', '', 0, 0, 'W', '111.45749705623', '41.102418723793', 150100, 3, 'tr_0 tr_150000 tr_150100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150171, '呼和浩特金海工业园区', '', 0, 0, 'H', '111.61859862741', '40.813484420815', 150100, 3, 'tr_0 tr_150000 tr_150100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150172, '呼和浩特经济技术开发区', '', 0, 0, 'H', '111.75550856171', '40.848422997113', 150100, 3, 'tr_0 tr_150000 tr_150100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150202, '东河区', '', 0, 0, 'D', '110.05039480879', '40.582228038324', 150200, 3, 'tr_0 tr_150000 tr_150200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150203, '昆都仑区', '', 0, 0, 'K', '109.84553830335', '40.647644106921', 150200, 3, 'tr_0 tr_150000 tr_150200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150204, '青山区', '', 0, 0, 'Q', '109.9074160123', '40.649473068783', 150200, 3, 'tr_0 tr_150000 tr_150200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150205, '石拐区', '', 0, 0, 'S', '110.27838088451', '40.67829939834', 150200, 3, 'tr_0 tr_150000 tr_150200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150206, '白云鄂博矿区', '', 0, 0, 'B', '109.97962576174', '41.774995234182', 150200, 3, 'tr_0 tr_150000 tr_150200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150207, '九原区', '', 0, 0, 'J', '109.96958800614', '40.613396589444', 150200, 3, 'tr_0 tr_150000 tr_150200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150221, '土默特右旗', '', 0, 0, 'T', '110.53038926652', '40.575127429108', 150200, 3, 'tr_0 tr_150000 tr_150200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150222, '固阳县', '', 0, 0, 'G', '110.06643261639', '41.040162852726', 150200, 3, 'tr_0 tr_150000 tr_150200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150223, '达尔罕茂明安联合旗', '', 0, 0, 'D', '110.43952090317', '41.704548551002', 150200, 3, 'tr_0 tr_150000 tr_150200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150271, '包头稀土高新技术产业开发区', '', 0, 0, 'B', '109.84664914794', '40.637085021364', 150200, 3, 'tr_0 tr_150000 tr_150200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150302, '海勃湾区', '', 0, 0, 'H', '106.82943856714', '39.696907993535', 150300, 3, 'tr_0 tr_150000 tr_150300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150303, '海南区', '', 0, 0, 'H', '106.89847100998', '39.446827515087', 150300, 3, 'tr_0 tr_150000 tr_150300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150304, '乌达区', '', 0, 0, 'W', '106.7326063535', '39.511468916129', 150300, 3, 'tr_0 tr_150000 tr_150300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150402, '红山区', '', 0, 0, 'H', '118.96356353651', '42.27047843525', 150400, 3, 'tr_0 tr_150000 tr_150400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150403, '元宝山区', '', 0, 0, 'Y', '119.29540450885', '42.045124715638', 150400, 3, 'tr_0 tr_150000 tr_150400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150404, '松山区', '', 0, 0, 'S', '118.9394138505', '42.292481572694', 150400, 3, 'tr_0 tr_150000 tr_150400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150421, '阿鲁科尔沁旗', '', 0, 0, 'A', '120.07261385472', '43.877953412182', 150400, 3, 'tr_0 tr_150000 tr_150400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150422, '巴林左旗', '', 0, 0, 'B', '119.38644328076', '43.97638259461', 150400, 3, 'tr_0 tr_150000 tr_150400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150423, '巴林右旗', '', 0, 0, 'B', '118.67039425705', '43.540131553108', 150400, 3, 'tr_0 tr_150000 tr_150400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150424, '林西县', '', 0, 0, 'L', '118.06246142182', '43.624210259291', 150400, 3, 'tr_0 tr_150000 tr_150400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150425, '克什克腾旗', '', 0, 0, 'K', '117.55162041051', '43.270757591896', 150400, 3, 'tr_0 tr_150000 tr_150400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150426, '翁牛特旗', '', 0, 0, 'W', '119.01250888002', '42.942019262236', 150400, 3, 'tr_0 tr_150000 tr_150400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150428, '喀喇沁旗', '', 0, 0, 'K', '118.7104736845', '41.932214335643', 150400, 3, 'tr_0 tr_150000 tr_150400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150429, '宁城县', '', 0, 0, 'N', '119.35060897566', '41.600245148269', 150400, 3, 'tr_0 tr_150000 tr_150400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150430, '敖汉旗', '', 0, 0, 'A', '119.92757793861', '42.296507085243', 150400, 3, 'tr_0 tr_150000 tr_150400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150502, '科尔沁区', '', 0, 0, 'K', '122.2624570337', '43.628712488829', 150500, 3, 'tr_0 tr_150000 tr_150500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150521, '科尔沁左翼中旗', '', 0, 0, 'K', '123.31858853365', '44.132294228308', 150500, 3, 'tr_0 tr_150000 tr_150500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150522, '科尔沁左翼后旗', '', 0, 0, 'K', '122.36356257648', '42.93956249402', 150500, 3, 'tr_0 tr_150000 tr_150500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150523, '开鲁县', '', 0, 0, 'K', '121.32538568843', '43.606369431362', 150500, 3, 'tr_0 tr_150000 tr_150500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150524, '库伦旗', '', 0, 0, 'K', '121.81740576201', '42.741211100235', 150500, 3, 'tr_0 tr_150000 tr_150500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150525, '奈曼旗', '', 0, 0, 'N', '120.66464641294', '42.87184654666', 150500, 3, 'tr_0 tr_150000 tr_150500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150526, '扎鲁特旗', '', 0, 0, 'Z', '120.91862585689', '44.562213133099', 150500, 3, 'tr_0 tr_150000 tr_150500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150571, '通辽经济技术开发区', '', 0, 0, 'T', '122.22276854881', '43.676026521565', 150500, 3, 'tr_0 tr_150000 tr_150500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150581, '霍林郭勒市', '', 0, 0, 'H', '119.67046591394', '45.53751332061', 150500, 3, 'tr_0 tr_150000 tr_150500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130100, '石家庄市', '', 0, 0, 'S', '114.52153190157', '38.048311926873', 130000, 2, 'tr_0 tr_130000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130200, '唐山市', '', 0, 0, 'T', '118.18645947204', '39.636583724147', 130000, 2, 'tr_0 tr_130000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130300, '秦皇岛市', '', 0, 0, 'Q', '119.60853063334', '39.941748102378', 130000, 2, 'tr_0 tr_130000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130400, '邯郸市', '', 0, 0, 'H', '114.54562822824', '36.631262731204', 130000, 2, 'tr_0 tr_130000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130500, '邢台市', '', 0, 0, 'X', '114.51146225613', '37.076685950966', 130000, 2, 'tr_0 tr_130000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130600, '保定市', '', 0, 0, 'B', '115.47146383769', '38.879987768455', 130000, 2, 'tr_0 tr_130000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130700, '张家口市', '', 0, 0, 'Z', '114.89257223145', '40.773237202691', 130000, 2, 'tr_0 tr_130000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130800, '承德市', '', 0, 0, 'C', '117.96939750997', '40.957856012338', 130000, 2, 'tr_0 tr_130000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130900, '沧州市', '', 0, 0, 'C', '116.84558075595', '38.310215141107', 130000, 2, 'tr_0 tr_130000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(131000, '廊坊市', '', 0, 0, 'L', '116.69058173343', '39.543366662759', 130000, 2, 'tr_0 tr_130000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(131100, '衡水市', '', 0, 0, 'H', '115.67540613762', '37.745191408077', 130000, 2, 'tr_0 tr_130000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150602, '东胜区', '', 0, 0, 'D', '109.96956006883', '39.827986984444', 150600, 3, 'tr_0 tr_150000 tr_150600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150603, '康巴什区', '', 0, 0, 'K', '109.86962735373', '39.616378146766', 150600, 3, 'tr_0 tr_150000 tr_150600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150621, '达拉特旗', '', 0, 0, 'D', '110.04036612608', '40.418907154391', 150600, 3, 'tr_0 tr_150000 tr_150600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150622, '准格尔旗', '', 0, 0, 'Z', '111.24639840546', '39.870540265037', 150600, 3, 'tr_0 tr_150000 tr_150600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150623, '鄂托克前旗', '', 0, 0, 'E', '107.48458472303', '38.188216741284', 150600, 3, 'tr_0 tr_150000 tr_150600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150624, '鄂托克旗', '', 0, 0, 'E', '107.98244495023', '39.095293413608', 150600, 3, 'tr_0 tr_150000 tr_150600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150625, '杭锦旗', '', 0, 0, 'H', '108.74241293879', '39.838815768815', 150600, 3, 'tr_0 tr_150000 tr_150600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150626, '乌审旗', '', 0, 0, 'W', '108.82443496914', '38.610026521177', 150600, 3, 'tr_0 tr_150000 tr_150600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150627, '伊金霍洛旗', '', 0, 0, 'Y', '109.78744317924', '39.614482313949', 150600, 3, 'tr_0 tr_150000 tr_150600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150702, '海拉尔区', '', 0, 0, 'H', '119.74246537006', '49.218215799363', 150700, 3, 'tr_0 tr_150000 tr_150700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150703, '扎赉诺尔区', '', 0, 0, 'Z', '117.69453227349', '49.467770183628', 150700, 3, 'tr_0 tr_150000 tr_150700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150721, '阿荣旗', '', 0, 0, 'A', '123.46544000531', '48.131971245042', 150700, 3, 'tr_0 tr_150000 tr_150700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150722, '莫力达瓦达斡尔族自治旗', '', 0, 0, 'M', '124.52557642071', '48.482896292115', 150700, 3, 'tr_0 tr_150000 tr_150700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150723, '鄂伦春自治旗', '', 0, 0, 'E', '123.73234507742', '50.597947928064', 150700, 3, 'tr_0 tr_150000 tr_150700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150724, '鄂温克族自治旗', '', 0, 0, 'E', '119.76135125527', '49.15304476395', 150700, 3, 'tr_0 tr_150000 tr_150700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150725, '陈巴尔虎旗', '', 0, 0, 'C', '119.43046248677', '49.334914288885', 150700, 3, 'tr_0 tr_150000 tr_150700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150726, '新巴尔虎左旗', '', 0, 0, 'X', '118.27660837276', '48.223786760037', 150700, 3, 'tr_0 tr_150000 tr_150700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150727, '新巴尔虎右旗', '', 0, 0, 'X', '116.83063240352', '48.677053599089', 150700, 3, 'tr_0 tr_150000 tr_150700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150781, '满洲里市', '', 0, 0, 'M', '117.38543585768', '49.604098854866', 150700, 3, 'tr_0 tr_150000 tr_150700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150782, '牙克石市', '', 0, 0, 'Y', '120.7183468371', '49.292023693206', 150700, 3, 'tr_0 tr_150000 tr_150700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150783, '扎兰屯市', '', 0, 0, 'Z', '122.74445371486', '48.01995552011', 150700, 3, 'tr_0 tr_150000 tr_150700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150784, '额尔古纳市', '', 0, 0, 'E', '120.18663369726', '50.248131758636', 150700, 3, 'tr_0 tr_150000 tr_150700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150785, '根河市', '', 0, 0, 'G', '121.52758526594', '50.786140434318', 150700, 3, 'tr_0 tr_150000 tr_150700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150802, '临河区', '', 0, 0, 'L', '107.36953379568', '40.75668072584', 150800, 3, 'tr_0 tr_150000 tr_150800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150821, '五原县', '', 0, 0, 'W', '108.2734913541', '41.094454821479', 150800, 3, 'tr_0 tr_150000 tr_150800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150822, '磴口县', '', 0, 0, 'D', '107.01452247', '40.336470177103', 150800, 3, 'tr_0 tr_150000 tr_150800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150823, '乌拉特前旗', '', 0, 0, 'W', '108.6586151381', '40.742103512928', 150800, 3, 'tr_0 tr_150000 tr_150800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150824, '乌拉特中旗', '', 0, 0, 'W', '108.51951244005', '41.593346263746', 150800, 3, 'tr_0 tr_150000 tr_150800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150825, '乌拉特后旗', '', 0, 0, 'W', '107.08154612207', '41.089422269258', 150800, 3, 'tr_0 tr_150000 tr_150800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150826, '杭锦后旗', '', 0, 0, 'H', '107.15737244949', '40.892179419823', 150800, 3, 'tr_0 tr_150000 tr_150800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150902, '集宁区', '', 0, 0, 'J', '113.12058699942', '41.041146171787', 150900, 3, 'tr_0 tr_150000 tr_150900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150921, '卓资县', '', 0, 0, 'Z', '112.5844095507', '40.900291837834', 150900, 3, 'tr_0 tr_150000 tr_150900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150922, '化德县', '', 0, 0, 'H', '114.0164087845', '41.909602587109', 150900, 3, 'tr_0 tr_150000 tr_150900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150923, '商都县', '', 0, 0, 'S', '113.58463922926', '41.567566637224', 150900, 3, 'tr_0 tr_150000 tr_150900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150924, '兴和县', '', 0, 0, 'X', '113.84057886567', '40.879341798933', 150900, 3, 'tr_0 tr_150000 tr_150900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150925, '凉城县', '', 0, 0, 'L', '112.51060018864', '40.5371631252', 150900, 3, 'tr_0 tr_150000 tr_150900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150926, '察哈尔右翼前旗', '', 0, 0, 'C', '113.22160531673', '40.791267302593', 150900, 3, 'tr_0 tr_150000 tr_150900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150927, '察哈尔右翼中旗', '', 0, 0, 'C', '112.64258040196', '41.283272943291', 150900, 3, 'tr_0 tr_150000 tr_150900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150928, '察哈尔右翼后旗', '', 0, 0, 'C', '113.19853090242', '41.441770999655', 150900, 3, 'tr_0 tr_150000 tr_150900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150929, '四子王旗', '', 0, 0, 'S', '111.71241927182', '41.539353349915', 150900, 3, 'tr_0 tr_150000 tr_150900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(150981, '丰镇市', '', 0, 0, 'F', '113.11660121788', '40.441804808844', 150900, 3, 'tr_0 tr_150000 tr_150900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(152201, '乌兰浩特市', '', 0, 0, 'W', '122.09962235198', '46.078654343582', 152200, 3, 'tr_0 tr_150000 tr_152200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(152202, '阿尔山市', '', 0, 0, 'A', '119.95065315166', '47.18305415375', 152200, 3, 'tr_0 tr_150000 tr_152200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(152221, '科尔沁右翼前旗', '', 0, 0, 'K', '121.9645531355', '46.082648853819', 152200, 3, 'tr_0 tr_150000 tr_152200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(152222, '科尔沁右翼中旗', '', 0, 0, 'K', '121.48354781458', '45.066470993428', 152200, 3, 'tr_0 tr_150000 tr_152200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(152223, '扎赉特旗', '', 0, 0, 'Z', '122.90644442883', '46.729189539358', 152200, 3, 'tr_0 tr_150000 tr_152200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(152224, '突泉县', '', 0, 0, 'T', '121.60054536997', '45.387830342585', 152200, 3, 'tr_0 tr_150000 tr_152200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(152501, '二连浩特市', '', 0, 0, 'E', '111.95836319333', '43.648800184052', 152500, 3, 'tr_0 tr_150000 tr_152500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(152502, '锡林浩特市', '', 0, 0, 'X', '116.09361388474', '43.93833380136', 152500, 3, 'tr_0 tr_150000 tr_152500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(152522, '阿巴嘎旗', '', 0, 0, 'A', '114.95736709772', '44.028101587023', 152500, 3, 'tr_0 tr_150000 tr_152500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(152523, '苏尼特左旗', '', 0, 0, 'S', '113.67347993742', '43.865553657792', 152500, 3, 'tr_0 tr_150000 tr_152500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(152524, '苏尼特右旗', '', 0, 0, 'S', '112.64856904548', '42.747368922463', 152500, 3, 'tr_0 tr_150000 tr_152500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(152525, '东乌珠穆沁旗', '', 0, 0, 'D', '116.97850435996', '45.515743305312', 152500, 3, 'tr_0 tr_150000 tr_152500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(152526, '西乌珠穆沁旗', '', 0, 0, 'X', '117.61637700896', '44.593802912007', 152500, 3, 'tr_0 tr_150000 tr_152500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(152527, '太仆寺旗', '', 0, 0, 'T', '115.29053531645', '41.882291746043', 152500, 3, 'tr_0 tr_150000 tr_152500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(152528, '镶黄旗', '', 0, 0, 'X', '113.85450538582', '42.237661285279', 152500, 3, 'tr_0 tr_150000 tr_152500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(152529, '正镶白旗', '', 0, 0, 'Z', '115.03662171828', '42.292605429249', 152500, 3, 'tr_0 tr_150000 tr_152500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(152530, '正蓝旗', '', 0, 0, 'Z', '115.99860388383', '42.247118844188', 152500, 3, 'tr_0 tr_150000 tr_152500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(152531, '多伦县', '', 0, 0, 'D', '116.49250878204', '42.208920864211', 152500, 3, 'tr_0 tr_150000 tr_152500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(152571, '乌拉盖管委会', '', 0, 0, 'W', '114.09790153324', '42.80523252057', 152500, 3, 'tr_0 tr_150000 tr_152500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(152921, '阿拉善左旗', '', 0, 0, 'A', '105.67259866528', '38.839094137436', 152900, 3, 'tr_0 tr_150000 tr_152900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(152922, '阿拉善右旗', '', 0, 0, 'A', '101.67346389594', '39.222240969855', 152900, 3, 'tr_0 tr_150000 tr_152900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(152923, '额济纳旗', '', 0, 0, 'E', '101.06240334058', '41.960297611813', 152900, 3, 'tr_0 tr_150000 tr_152900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(152971, '内蒙古阿拉善经济开发区', '', 0, 0, 'N', '105.77197191571', '40.314622117574', 152900, 3, 'tr_0 tr_150000 tr_152900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210102, '和平区', '', 0, 0, 'H', '123.42664426615', '41.795236052902', 210100, 3, 'tr_0 tr_210000 tr_210100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210103, '沈河区', '', 0, 0, 'S', '123.46546103538', '41.802274138805', 210100, 3, 'tr_0 tr_210000 tr_210100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210104, '大东区', '', 0, 0, 'D', '123.47640473208', '41.811425174494', 210100, 3, 'tr_0 tr_210000 tr_210100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210105, '皇姑区', '', 0, 0, 'H', '123.43162078885', '41.826042120277', 210100, 3, 'tr_0 tr_210000 tr_210100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210106, '铁西区', '', 0, 0, 'T', '123.38343595078', '41.809037832217', 210100, 3, 'tr_0 tr_210000 tr_210100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210111, '苏家屯区', '', 0, 0, 'S', '123.35043463177', '41.671253644959', 210100, 3, 'tr_0 tr_210000 tr_210100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210112, '浑南区', '', 0, 0, 'H', '123.45598993089', '41.720915668889', 210100, 3, 'tr_0 tr_210000 tr_210100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210113, '沈北新区', '', 0, 0, 'S', '123.53360460492', '42.058914115763', 210100, 3, 'tr_0 tr_210000 tr_210100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210114, '于洪区', '', 0, 0, 'Y', '123.31463302499', '41.799668255615', 210100, 3, 'tr_0 tr_210000 tr_210100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210115, '辽中区', '', 0, 0, 'L', '122.77237835983', '41.523149081842', 210100, 3, 'tr_0 tr_210000 tr_210100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210123, '康平县', '', 0, 0, 'K', '123.33751124938', '42.749925495719', 210100, 3, 'tr_0 tr_210000 tr_210100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210124, '法库县', '', 0, 0, 'F', '123.41462107572', '42.509606549903', 210100, 3, 'tr_0 tr_210000 tr_210100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210181, '新民市', '', 0, 0, 'X', '122.87539513741', '42.007109320665', 210100, 3, 'tr_0 tr_210000 tr_210100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210202, '中山区', '', 0, 0, 'Z', '121.65154739367', '38.924511115496', 210200, 3, 'tr_0 tr_210000 tr_210200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210203, '西岗区', '', 0, 0, 'X', '121.61862512554', '38.920472689273', 210200, 3, 'tr_0 tr_210000 tr_210200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210204, '沙河口区', '', 0, 0, 'S', '121.59450670057', '38.913544290956', 210200, 3, 'tr_0 tr_210000 tr_210200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210211, '甘井子区', '', 0, 0, 'G', '121.5315189555', '38.958002162932', 210200, 3, 'tr_0 tr_210000 tr_210200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210212, '旅顺口区', '', 0, 0, 'L', '121.26859688019', '38.856832222859', 210200, 3, 'tr_0 tr_210000 tr_210200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210213, '金州区', '', 0, 0, 'J', '121.78943558267', '39.056432991661', 210200, 3, 'tr_0 tr_210000 tr_210200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210214, '普兰店区', '', 0, 0, 'P', '121.94645983497', '39.398089145183', 210200, 3, 'tr_0 tr_210000 tr_210200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210224, '长海县', '', 0, 0, 'Z', '122.59462651637', '39.278270217167', 210200, 3, 'tr_0 tr_210000 tr_210200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210281, '瓦房店市', '', 0, 0, 'W', '121.98563754334', '39.632740747388', 210200, 3, 'tr_0 tr_210000 tr_210200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210283, '庄河市', '', 0, 0, 'Z', '122.97449548263', '39.686956078878', 210200, 3, 'tr_0 tr_210000 tr_210200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210302, '铁东区', '', 0, 0, 'T', '122.99739966805', '41.096331870506', 210300, 3, 'tr_0 tr_210000 tr_210300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210303, '铁西区', '', 0, 0, 'T', '122.97549026615', '41.125475259583', 210300, 3, 'tr_0 tr_210000 tr_210300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210304, '立山区', '', 0, 0, 'L', '123.03548413862', '41.156116121102', 210300, 3, 'tr_0 tr_210000 tr_210300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210311, '千山区', '', 0, 0, 'Q', '122.96757421833', '41.080938608935', 210300, 3, 'tr_0 tr_210000 tr_210300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210321, '台安县', '', 0, 0, 'T', '122.44255004099', '41.418590371099', 210300, 3, 'tr_0 tr_210000 tr_210300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210323, '岫岩满族自治县', '', 0, 0, 'X', '123.28754677827', '40.295892396362', 210300, 3, 'tr_0 tr_210000 tr_210300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210381, '海城市', '', 0, 0, 'H', '122.69156940124', '40.887633947097', 210300, 3, 'tr_0 tr_210000 tr_210300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210402, '新抚区', '', 0, 0, 'X', '123.91958231814', '41.867805858593', 210400, 3, 'tr_0 tr_210000 tr_210400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210403, '东洲区', '', 0, 0, 'D', '124.04554972353', '41.859190936634', 210400, 3, 'tr_0 tr_210000 tr_210400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210404, '望花区', '', 0, 0, 'W', '123.790604152', '41.859030362749', 210400, 3, 'tr_0 tr_210000 tr_210400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210411, '顺城区', '', 0, 0, 'S', '123.95141404338', '41.889163788467', 210400, 3, 'tr_0 tr_210000 tr_210400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210421, '抚顺县', '', 0, 0, 'F', '123.92159012079', '41.887037475382', 210400, 3, 'tr_0 tr_210000 tr_210400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210422, '新宾满族自治县', '', 0, 0, 'X', '125.04635620406', '41.739968775071', 210400, 3, 'tr_0 tr_210000 tr_210400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210423, '清原满族自治县', '', 0, 0, 'Q', '124.93036025933', '42.106760992634', 210400, 3, 'tr_0 tr_210000 tr_210400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210502, '平山区', '', 0, 0, 'P', '123.77461422409', '41.301604181774', 210500, 3, 'tr_0 tr_210000 tr_210500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210503, '溪湖区', '', 0, 0, 'X', '123.77461054104', '41.334802931364', 210500, 3, 'tr_0 tr_210000 tr_210500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210504, '明山区', '', 0, 0, 'M', '123.82347449807', '41.314939368877', 210500, 3, 'tr_0 tr_210000 tr_210500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210505, '南芬区', '', 0, 0, 'N', '123.75146713686', '41.10709572322', 210500, 3, 'tr_0 tr_210000 tr_210500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210521, '本溪满族自治县', '', 0, 0, 'B', '124.12758486914', '41.307902881353', 210500, 3, 'tr_0 tr_210000 tr_210500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210522, '桓仁满族自治县', '', 0, 0, 'H', '125.36754435102', '41.27292530103', 210500, 3, 'tr_0 tr_210000 tr_210500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210602, '元宝区', '', 0, 0, 'Y', '124.40258403322', '40.142251463139', 210600, 3, 'tr_0 tr_210000 tr_210600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210603, '振兴区', '', 0, 0, 'Z', '124.36657851109', '40.110719472216', 210600, 3, 'tr_0 tr_210000 tr_210600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210604, '振安区', '', 0, 0, 'Z', '124.43438692285', '40.164697025661', 210600, 3, 'tr_0 tr_210000 tr_210600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210624, '宽甸满族自治县', '', 0, 0, 'K', '124.79042662868', '40.73755320049', 210600, 3, 'tr_0 tr_210000 tr_210600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210681, '东港市', '', 0, 0, 'D', '124.15961035888', '39.867716187286', 210600, 3, 'tr_0 tr_210000 tr_210600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210682, '凤城市', '', 0, 0, 'F', '124.07242172439', '40.459180482456', 210600, 3, 'tr_0 tr_210000 tr_210600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210702, '古塔区', '', 0, 0, 'G', '121.13458496929', '41.122900925898', 210700, 3, 'tr_0 tr_210000 tr_210700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210703, '凌河区', '', 0, 0, 'L', '121.15759003442', '41.120690614472', 210700, 3, 'tr_0 tr_210000 tr_210700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210711, '太和区', '', 0, 0, 'T', '121.1104532494', '41.115109307132', 210700, 3, 'tr_0 tr_210000 tr_210700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210726, '黑山县', '', 0, 0, 'H', '122.13055703906', '41.671592983776', 210700, 3, 'tr_0 tr_210000 tr_210700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210727, '义县', '', 0, 0, 'Y', '121.24556854895', '41.538938862271', 210700, 3, 'tr_0 tr_210000 tr_210700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210781, '凌海市', '', 0, 0, 'L', '121.36253879584', '41.166487628588', 210700, 3, 'tr_0 tr_210000 tr_210700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210782, '北镇市', '', 0, 0, 'B', '121.78344729848', '41.594428096803', 210700, 3, 'tr_0 tr_210000 tr_210700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210802, '站前区', '', 0, 0, 'Z', '122.26543743173', '40.678764125936', 210800, 3, 'tr_0 tr_210000 tr_210800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210803, '西市区', '', 0, 0, 'X', '122.21358238684', '40.672110926311', 210800, 3, 'tr_0 tr_210000 tr_210800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210804, '鲅鱼圈区', '', 0, 0, 'B', '122.12757349697', '40.232339850773', 210800, 3, 'tr_0 tr_210000 tr_210800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210811, '老边区', '', 0, 0, 'L', '122.38643918392', '40.686383619803', 210800, 3, 'tr_0 tr_210000 tr_210800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210881, '盖州市', '', 0, 0, 'G', '122.35559128288', '40.406167457268', 210800, 3, 'tr_0 tr_210000 tr_210800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210882, '大石桥市', '', 0, 0, 'D', '122.5153795314', '40.650802164815', 210800, 3, 'tr_0 tr_210000 tr_210800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210902, '海州区', '', 0, 0, 'H', '121.66943571061', '42.023734789385', 210900, 3, 'tr_0 tr_210000 tr_210900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210903, '新邱区', '', 0, 0, 'X', '121.79936338568', '42.093934514765', 210900, 3, 'tr_0 tr_210000 tr_210900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210904, '太平区', '', 0, 0, 'T', '121.68538413681', '42.016967854141', 210900, 3, 'tr_0 tr_210000 tr_210900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210905, '清河门区', '', 0, 0, 'Q', '121.42247894964', '41.789318551009', 210900, 3, 'tr_0 tr_210000 tr_210900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210911, '细河区', '', 0, 0, 'X', '121.68639230508', '42.03187124588', 210900, 3, 'tr_0 tr_210000 tr_210900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210921, '阜新蒙古族自治县', '', 0, 0, 'F', '121.76357399585', '42.071368153837', 210900, 3, 'tr_0 tr_210000 tr_210900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(210922, '彰武县', '', 0, 0, 'Z', '122.54544932021', '42.392706534364', 210900, 3, 'tr_0 tr_210000 tr_210900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211002, '白塔区', '', 0, 0, 'B', '123.18060844799', '41.275845361792', 211000, 3, 'tr_0 tr_210000 tr_211000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211003, '文圣区', '', 0, 0, 'W', '123.19160469557', '41.268438007815', 211000, 3, 'tr_0 tr_210000 tr_211000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211004, '宏伟区', '', 0, 0, 'H', '123.20358018598', '41.223368108445', 211000, 3, 'tr_0 tr_210000 tr_211000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211005, '弓长岭区', '', 0, 0, 'G', '123.42661543055', '41.157327042722', 211000, 3, 'tr_0 tr_210000 tr_211000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211011, '太子河区', '', 0, 0, 'T', '123.188604445', '41.259226178044', 211000, 3, 'tr_0 tr_210000 tr_211000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211021, '辽阳县', '', 0, 0, 'L', '123.1124212208', '41.211678771808', 211000, 3, 'tr_0 tr_210000 tr_211000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211081, '灯塔市', '', 0, 0, 'D', '123.34546215145', '41.432474125926', 211000, 3, 'tr_0 tr_210000 tr_211000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211102, '双台子区', '', 0, 0, 'S', '122.04639299922', '41.206071617512', 211100, 3, 'tr_0 tr_210000 tr_211100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211103, '兴隆台区', '', 0, 0, 'X', '121.96962911034', '41.155830887559', 211100, 3, 'tr_0 tr_210000 tr_211100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211104, '大洼区', '', 0, 0, 'D', '122.08855478867', '41.00817878896', 211100, 3, 'tr_0 tr_210000 tr_211100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211122, '盘山县', '', 0, 0, 'P', '122.00356035522', '41.248263682582', 211100, 3, 'tr_0 tr_210000 tr_211100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211202, '银州区', '', 0, 0, 'Y', '123.8483863963', '42.292573681442', 211200, 3, 'tr_0 tr_210000 tr_211200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211204, '清河区', '', 0, 0, 'Q', '124.16556298034', '42.552494793453', 211200, 3, 'tr_0 tr_210000 tr_211200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211221, '铁岭县', '', 0, 0, 'T', '123.7353723767', '42.229225608048', 211200, 3, 'tr_0 tr_210000 tr_211200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211223, '西丰县', '', 0, 0, 'X', '124.73361509331', '42.744014442436', 211200, 3, 'tr_0 tr_210000 tr_211200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211224, '昌图县', '', 0, 0, 'C', '124.11750067115', '42.792178371844', 211200, 3, 'tr_0 tr_210000 tr_211200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211281, '调兵山市', '', 0, 0, 'D', '123.57350868313', '42.473738012058', 211200, 3, 'tr_0 tr_210000 tr_211200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211282, '开原市', '', 0, 0, 'K', '124.04456886375', '42.552079074779', 211200, 3, 'tr_0 tr_210000 tr_211200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211302, '双塔区', '', 0, 0, 'S', '120.46048690274', '41.571779500856', 211300, 3, 'tr_0 tr_210000 tr_211300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211303, '龙城区', '', 0, 0, 'L', '120.4435668693', '41.59846852305', 211300, 3, 'tr_0 tr_210000 tr_211300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211321, '朝阳县', '', 0, 0, 'C', '120.25939061432', '41.241075720873', 211300, 3, 'tr_0 tr_210000 tr_211300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211322, '建平县', '', 0, 0, 'J', '119.64938035777', '41.409455511027', 211300, 3, 'tr_0 tr_210000 tr_211300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211324, '喀喇沁左翼蒙古族自治县', '', 0, 0, 'K', '119.74741405502', '41.133689119828', 211300, 3, 'tr_0 tr_210000 tr_211300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211381, '北票市', '', 0, 0, 'B', '120.77762773422', '41.80648256895', 211300, 3, 'tr_0 tr_210000 tr_211300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211382, '凌源市', '', 0, 0, 'L', '119.40735807879', '41.251651297148', 211300, 3, 'tr_0 tr_210000 tr_211300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211402, '连山区', '', 0, 0, 'L', '120.87648167423', '40.780893808442', 211400, 3, 'tr_0 tr_210000 tr_211400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211403, '龙港区', '', 0, 0, 'L', '120.90062076024', '40.741056601241', 211400, 3, 'tr_0 tr_210000 tr_211400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'); +INSERT INTO `hg_sys_provinces` (`id`, `title`, `short_title`, `areacode`, `zipcode`, `pinyin`, `lng`, `lat`, `pid`, `level`, `tree`, `sort`, `status`, `created_at`, `updated_at`) VALUES +(211404, '南票区', '', 0, 0, 'N', '120.75649312082', '41.113097595823', 211400, 3, 'tr_0 tr_210000 tr_211400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211421, '绥中县', '', 0, 0, 'S', '120.35042453538', '40.331843475397', 211400, 3, 'tr_0 tr_210000 tr_211400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211422, '建昌县', '', 0, 0, 'J', '119.84359526665', '40.830379953809', 211400, 3, 'tr_0 tr_210000 tr_211400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(211481, '兴城市', '', 0, 0, 'X', '120.76455846701', '40.616555664044', 211400, 3, 'tr_0 tr_210000 tr_211400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220102, '南关区', '', 0, 0, 'N', '125.35660981703', '43.869873025193', 220100, 3, 'tr_0 tr_220000 tr_220100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220103, '宽城区', '', 0, 0, 'K', '125.33462450832', '43.949502239804', 220100, 3, 'tr_0 tr_220000 tr_220100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220104, '朝阳区', '', 0, 0, 'C', '125.29540125585', '43.840641474962', 220100, 3, 'tr_0 tr_220000 tr_220100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220105, '二道区', '', 0, 0, 'E', '125.38046755375', '43.871276524271', 220100, 3, 'tr_0 tr_220000 tr_220100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220106, '绿园区', '', 0, 0, 'L', '125.26244260635', '43.886810403937', 220100, 3, 'tr_0 tr_220000 tr_220100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220112, '双阳区', '', 0, 0, 'S', '125.67144793217', '43.531091309119', 220100, 3, 'tr_0 tr_220000 tr_220100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220113, '九台区', '', 0, 0, 'J', '125.84556442307', '44.157791853861', 220100, 3, 'tr_0 tr_220000 tr_220100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220122, '农安县', '', 0, 0, 'N', '125.19148410666', '44.438903951261', 220100, 3, 'tr_0 tr_220000 tr_220100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220171, '长春经济技术开发区', '', 0, 0, 'Z', '125.37014719124', '43.866004586928', 220100, 3, 'tr_0 tr_220000 tr_220100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220172, '长春净月高新技术产业开发区', '', 0, 0, 'Z', '125.26127292275', '43.823034492758', 220100, 3, 'tr_0 tr_220000 tr_220100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220173, '长春高新技术产业开发区', '', 0, 0, 'Z', '125.26127292275', '43.823034492758', 220100, 3, 'tr_0 tr_220000 tr_220100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220174, '长春汽车经济技术开发区', '', 0, 0, 'Z', '125.33060207591', '43.821953501043', 220100, 3, 'tr_0 tr_220000 tr_220100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220182, '榆树市', '', 0, 0, 'Y', '126.53960936347', '44.845439727693', 220100, 3, 'tr_0 tr_220000 tr_220100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220183, '德惠市', '', 0, 0, 'D', '125.73451517728', '44.527161066608', 220100, 3, 'tr_0 tr_220000 tr_220100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220202, '昌邑区', '', 0, 0, 'C', '126.58144866124', '43.887992474736', 220200, 3, 'tr_0 tr_220000 tr_220200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220203, '龙潭区', '', 0, 0, 'L', '126.56854459242', '43.91634255363', 220200, 3, 'tr_0 tr_220000 tr_220200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220204, '船营区', '', 0, 0, 'C', '126.54764973677', '43.83992740229', 220200, 3, 'tr_0 tr_220000 tr_220200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220211, '丰满区', '', 0, 0, 'F', '126.56857046362', '43.827151576836', 220200, 3, 'tr_0 tr_220000 tr_220200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220221, '永吉县', '', 0, 0, 'Y', '126.50441572986', '43.678720676989', 220200, 3, 'tr_0 tr_220000 tr_220200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220271, '吉林经济开发区', '', 0, 0, 'J', '126.55563450495', '43.843567834579', 220200, 3, 'tr_0 tr_220000 tr_220200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220272, '吉林高新技术产业开发区', '', 0, 0, 'J', '126.55091570611', '43.822448990547', 220200, 3, 'tr_0 tr_220000 tr_220200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220273, '吉林中国新加坡食品区', '', 0, 0, 'J', '126.55563450495', '43.843567834579', 220200, 3, 'tr_0 tr_220000 tr_220200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220281, '蛟河市', '', 0, 0, 'J', '127.35148018677', '43.730003870507', 220200, 3, 'tr_0 tr_220000 tr_220200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220282, '桦甸市', '', 0, 0, 'H', '126.75248423373', '42.977982779881', 220200, 3, 'tr_0 tr_220000 tr_220200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220283, '舒兰市', '', 0, 0, 'S', '126.97137703226', '44.412270028324', 220200, 3, 'tr_0 tr_220000 tr_220200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220284, '磐石市', '', 0, 0, 'P', '126.06661629889', '42.951817500114', 220200, 3, 'tr_0 tr_220000 tr_220200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220302, '铁西区', '', 0, 0, 'T', '124.35246676034', '43.152575391803', 220300, 3, 'tr_0 tr_220000 tr_220300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220303, '铁东区', '', 0, 0, 'T', '124.4164827059', '43.167993993185', 220300, 3, 'tr_0 tr_220000 tr_220300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220322, '梨树县', '', 0, 0, 'L', '124.3424012471', '43.313345515553', 220300, 3, 'tr_0 tr_220000 tr_220300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220323, '伊通满族自治县', '', 0, 0, 'Y', '125.31148460754', '43.351103666821', 220300, 3, 'tr_0 tr_220000 tr_220300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220381, '公主岭市', '', 0, 0, 'G', '124.82944866071', '43.510832663153', 220300, 3, 'tr_0 tr_220000 tr_220300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220382, '双辽市', '', 0, 0, 'S', '123.50943776128', '43.524527382171', 220300, 3, 'tr_0 tr_220000 tr_220300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220402, '龙山区', '', 0, 0, 'L', '125.14345242969', '42.907634012133', 220400, 3, 'tr_0 tr_220000 tr_220400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220403, '西安区', '', 0, 0, 'X', '125.15537330313', '42.933308420625', 220400, 3, 'tr_0 tr_220000 tr_220400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220421, '东丰县', '', 0, 0, 'D', '125.53737790091', '42.683310778553', 220400, 3, 'tr_0 tr_220000 tr_220400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220422, '东辽县', '', 0, 0, 'D', '124.99758944369', '42.931879101776', 220400, 3, 'tr_0 tr_220000 tr_220400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220502, '东昌区', '', 0, 0, 'D', '125.93359459016', '41.70840538484', 220500, 3, 'tr_0 tr_220000 tr_220500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220503, '二道江区', '', 0, 0, 'E', '126.0495917027', '41.779966174493', 220500, 3, 'tr_0 tr_220000 tr_220500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220521, '通化县', '', 0, 0, 'T', '125.76539191393', '41.685682238068', 220500, 3, 'tr_0 tr_220000 tr_220500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220523, '辉南县', '', 0, 0, 'H', '126.05358125713', '42.690699881882', 220500, 3, 'tr_0 tr_220000 tr_220500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220524, '柳河县', '', 0, 0, 'L', '125.75142398189', '42.290871215056', 220500, 3, 'tr_0 tr_220000 tr_220500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220581, '梅河口市', '', 0, 0, 'M', '125.71760780995', '42.544883890284', 220500, 3, 'tr_0 tr_220000 tr_220500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220582, '集安市', '', 0, 0, 'J', '126.199577372', '41.131299724033', 220500, 3, 'tr_0 tr_220000 tr_220500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220602, '浑江区', '', 0, 0, 'H', '126.42361952721', '41.95042372822', 220600, 3, 'tr_0 tr_220000 tr_220600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220605, '江源区', '', 0, 0, 'J', '126.59739097896', '42.062939372081', 220600, 3, 'tr_0 tr_220000 tr_220600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220621, '抚松县', '', 0, 0, 'F', '127.45537119527', '42.227335272553', 220600, 3, 'tr_0 tr_220000 tr_220600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220622, '靖宇县', '', 0, 0, 'J', '126.81949899257', '42.394765734578', 220600, 3, 'tr_0 tr_220000 tr_220600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220623, '长白朝鲜族自治县', '', 0, 0, 'Z', '128.20758420219', '41.425895812594', 220600, 3, 'tr_0 tr_220000 tr_220600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220681, '临江市', '', 0, 0, 'L', '126.9245815135', '41.817678643992', 220600, 3, 'tr_0 tr_220000 tr_220600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220702, '宁江区', '', 0, 0, 'N', '124.82342254815', '45.178039438667', 220700, 3, 'tr_0 tr_220000 tr_220700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220721, '前郭尔罗斯蒙古族自治县', '', 0, 0, 'Q', '124.83045556165', '45.123416092926', 220700, 3, 'tr_0 tr_220000 tr_220700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220722, '长岭县', '', 0, 0, 'Z', '123.9743741034', '44.281638280052', 220700, 3, 'tr_0 tr_220000 tr_220700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220723, '乾安县', '', 0, 0, 'G', '124.0475638046', '45.008434321605', 220700, 3, 'tr_0 tr_220000 tr_220700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220771, '吉林松原经济开发区', '', 0, 0, 'J', '124.83148187569', '45.147404193414', 220700, 3, 'tr_0 tr_220000 tr_220700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220781, '扶余市', '', 0, 0, 'F', '126.0566062111', '44.994168421151', 220700, 3, 'tr_0 tr_220000 tr_220700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220802, '洮北区', '', 0, 0, 'T', '122.85750977516', '45.627524686514', 220800, 3, 'tr_0 tr_220000 tr_220800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220821, '镇赉县', '', 0, 0, 'Z', '123.20657575565', '45.853116635389', 220800, 3, 'tr_0 tr_220000 tr_220800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220822, '通榆县', '', 0, 0, 'T', '123.09452077673', '44.818963735882', 220800, 3, 'tr_0 tr_220000 tr_220800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220871, '吉林白城经济开发区', '', 0, 0, 'J', '122.81641245977', '45.642168989302', 220800, 3, 'tr_0 tr_220000 tr_220800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220881, '洮南市', '', 0, 0, 'T', '122.7944676826', '45.341131872567', 220800, 3, 'tr_0 tr_220000 tr_220800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(220882, '大安市', '', 0, 0, 'D', '124.29850428102', '45.513045149628', 220800, 3, 'tr_0 tr_220000 tr_220800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(222401, '延吉市', '', 0, 0, 'Y', '129.52052013726', '42.91271700988', 222400, 3, 'tr_0 tr_220000 tr_222400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(222402, '图们市', '', 0, 0, 'T', '129.85038151375', '42.974283499075', 222400, 3, 'tr_0 tr_220000 tr_222400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(222403, '敦化市', '', 0, 0, 'D', '128.23861239315', '43.378291274517', 222400, 3, 'tr_0 tr_220000 tr_222400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(222404, '珲春市', '', 0, 0, 'H', '130.37261321858', '42.868515115192', 222400, 3, 'tr_0 tr_220000 tr_222400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(222405, '龙井市', '', 0, 0, 'L', '129.43263477701', '42.771534868349', 222400, 3, 'tr_0 tr_220000 tr_222400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(222406, '和龙市', '', 0, 0, 'H', '129.01738712621', '42.552322568432', 222400, 3, 'tr_0 tr_220000 tr_222400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(222424, '汪清县', '', 0, 0, 'W', '129.77760879625', '43.318450833865', 222400, 3, 'tr_0 tr_220000 tr_222400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(222426, '安图县', '', 0, 0, 'A', '128.90544846814', '43.117916954912', 222400, 3, 'tr_0 tr_220000 tr_222400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230102, '道里区', '', 0, 0, 'D', '126.62343158837', '45.761844478815', 230100, 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230103, '南岗区', '', 0, 0, 'N', '126.67563849952', '45.765866163758', 230100, 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230104, '道外区', '', 0, 0, 'D', '126.65560404089', '45.797776220434', 230100, 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230108, '平房区', '', 0, 0, 'P', '126.54161509032', '45.808825827952', 230100, 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230109, '松北区', '', 0, 0, 'S', '126.51648256825', '45.808592561429', 230100, 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230110, '香坊区', '', 0, 0, 'X', '126.66962434413', '45.713619645389', 230100, 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230111, '呼兰区', '', 0, 0, 'H', '126.5943989831', '45.895209780863', 230100, 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230112, '阿城区', '', 0, 0, 'A', '126.96435649552', '45.554275304352', 230100, 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230113, '双城区', '', 0, 0, 'S', '126.31962313777', '45.388111522394', 230100, 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230123, '依兰县', '', 0, 0, 'Y', '129.57451969721', '46.331260289052', 230100, 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230124, '方正县', '', 0, 0, 'F', '128.83563368134', '45.857758440062', 230100, 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230125, '宾县', '', 0, 0, 'B', '127.4734970145', '45.752465386742', 230100, 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230126, '巴彦县', '', 0, 0, 'B', '127.4105479864', '46.091282657815', 230100, 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230127, '木兰县', '', 0, 0, 'M', '128.05035620452', '45.956871319448', 230100, 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230128, '通河县', '', 0, 0, 'T', '128.75241627584', '45.996392590921', 230100, 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230129, '延寿县', '', 0, 0, 'Y', '128.33860582402', '45.457641195714', 230100, 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230183, '尚志市', '', 0, 0, 'S', '128.01548820666', '45.215473941867', 230100, 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230184, '五常市', '', 0, 0, 'W', '127.17352882965', '44.937842855774', 230100, 3, 'tr_0 tr_230000 tr_230100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230202, '龙沙区', '', 0, 0, 'L', '123.96437622285', '47.323576977429', 230200, 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230203, '建华区', '', 0, 0, 'J', '123.96135010108', '47.360554871046', 230200, 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230204, '铁锋区', '', 0, 0, 'T', '123.984415712', '47.347018863772', 230200, 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230205, '昂昂溪区', '', 0, 0, 'A', '123.82940626913', '47.161332243626', 230200, 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230206, '富拉尔基区', '', 0, 0, 'F', '123.63650980324', '47.215504082791', 230200, 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230207, '碾子山区', '', 0, 0, 'N', '122.89436680108', '47.523236298133', 230200, 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230208, '梅里斯达斡尔族区', '', 0, 0, 'M', '123.75954091741', '47.315549574077', 230200, 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230221, '龙江县', '', 0, 0, 'L', '123.21153898342', '47.343605740151', 230200, 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230223, '依安县', '', 0, 0, 'Y', '125.3124821661', '47.899483651368', 230200, 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230224, '泰来县', '', 0, 0, 'T', '123.42362630925', '46.39782928518', 230200, 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230225, '甘南县', '', 0, 0, 'G', '123.51248588182', '47.92688406951', 230200, 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230227, '富裕县', '', 0, 0, 'F', '124.48054247906', '47.780228063275', 230200, 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230229, '克山县', '', 0, 0, 'K', '125.88137832693', '48.043172360737', 230200, 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230230, '克东县', '', 0, 0, 'K', '126.25538674804', '48.048244160483', 230200, 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230231, '拜泉县', '', 0, 0, 'B', '126.10542147027', '47.601867301959', 230200, 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230281, '讷河市', '', 0, 0, 'N', '124.8905490562', '48.490086593264', 230200, 3, 'tr_0 tr_230000 tr_230200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230302, '鸡冠区', '', 0, 0, 'J', '130.98763160852', '45.309806344312', 230300, 3, 'tr_0 tr_230000 tr_230300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230303, '恒山区', '', 0, 0, 'H', '130.91138523344', '45.216971883154', 230300, 3, 'tr_0 tr_230000 tr_230300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230304, '滴道区', '', 0, 0, 'D', '130.85058046059', '45.354433617216', 230300, 3, 'tr_0 tr_230000 tr_230300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230305, '梨树区', '', 0, 0, 'L', '130.70339606719', '45.098241780981', 230300, 3, 'tr_0 tr_230000 tr_230300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230306, '城子河区', '', 0, 0, 'C', '131.02770429868', '45.379689760283', 230300, 3, 'tr_0 tr_230000 tr_230300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230307, '麻山区', '', 0, 0, 'M', '130.48453641613', '45.217934996767', 230300, 3, 'tr_0 tr_230000 tr_230300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230321, '鸡东县', '', 0, 0, 'J', '131.13055848296', '45.266184560826', 230300, 3, 'tr_0 tr_230000 tr_230300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230381, '虎林市', '', 0, 0, 'H', '132.94346566318', '45.768946912884', 230300, 3, 'tr_0 tr_230000 tr_230300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230382, '密山市', '', 0, 0, 'M', '131.85353110655', '45.535640809748', 230300, 3, 'tr_0 tr_230000 tr_230300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230402, '向阳区', '', 0, 0, 'X', '130.30046804764', '47.348580889067', 230400, 3, 'tr_0 tr_230000 tr_230400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230403, '工农区', '', 0, 0, 'G', '130.28161728617', '47.324430299458', 230400, 3, 'tr_0 tr_230000 tr_230400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230404, '南山区', '', 0, 0, 'N', '130.29354031555', '47.321245938809', 230400, 3, 'tr_0 tr_230000 tr_230400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230405, '兴安区', '', 0, 0, 'X', '130.24554573859', '47.258716269483', 230400, 3, 'tr_0 tr_230000 tr_230400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230406, '东山区', '', 0, 0, 'D', '130.32336109407', '47.344987135573', 230400, 3, 'tr_0 tr_230000 tr_230400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230407, '兴山区', '', 0, 0, 'X', '130.31736364716', '47.396045381282', 230400, 3, 'tr_0 tr_230000 tr_230400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230421, '萝北县', '', 0, 0, 'L', '130.8354950365', '47.583422197029', 230400, 3, 'tr_0 tr_230000 tr_230400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230422, '绥滨县', '', 0, 0, 'S', '131.85948651276', '47.295265458073', 230400, 3, 'tr_0 tr_230000 tr_230400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230502, '尖山区', '', 0, 0, 'J', '131.16534177061', '46.652585923812', 230500, 3, 'tr_0 tr_230000 tr_230500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230503, '岭东区', '', 0, 0, 'L', '131.164376721', '46.464596047853', 230500, 3, 'tr_0 tr_230000 tr_230500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230505, '四方台区', '', 0, 0, 'S', '131.345657378', '46.602012285083', 230500, 3, 'tr_0 tr_230000 tr_230500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230506, '宝山区', '', 0, 0, 'B', '131.40737518857', '46.583598340241', 230500, 3, 'tr_0 tr_230000 tr_230500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230521, '集贤县', '', 0, 0, 'J', '131.14743449942', '46.734517788557', 230500, 3, 'tr_0 tr_230000 tr_230500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230522, '友谊县', '', 0, 0, 'Y', '131.8145948627', '46.772973223022', 230500, 3, 'tr_0 tr_230000 tr_230500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230523, '宝清县', '', 0, 0, 'B', '132.20359411633', '46.332651823572', 230500, 3, 'tr_0 tr_230000 tr_230500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230524, '饶河县', '', 0, 0, 'R', '134.02046893233', '46.804182744162', 230500, 3, 'tr_0 tr_230000 tr_230500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230602, '萨尔图区', '', 0, 0, 'S', '125.13351006443', '46.638936435554', 230600, 3, 'tr_0 tr_230000 tr_230600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230603, '龙凤区', '', 0, 0, 'L', '125.14047256095', '46.567678067125', 230600, 3, 'tr_0 tr_230000 tr_230600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230604, '让胡路区', '', 0, 0, 'R', '124.87759881447', '46.658078458609', 230600, 3, 'tr_0 tr_230000 tr_230600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230605, '红岗区', '', 0, 0, 'H', '124.8974774171', '46.404313108628', 230600, 3, 'tr_0 tr_230000 tr_230600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230606, '大同区', '', 0, 0, 'D', '124.81937675979', '46.045583951311', 230600, 3, 'tr_0 tr_230000 tr_230600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230621, '肇州县', '', 0, 0, 'Z', '125.2753682248', '45.705107986871', 230600, 3, 'tr_0 tr_230000 tr_230600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230622, '肇源县', '', 0, 0, 'Z', '125.08457262601', '45.524152914206', 230600, 3, 'tr_0 tr_230000 tr_230600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230623, '林甸县', '', 0, 0, 'L', '124.86965042766', '47.177234395243', 230600, 3, 'tr_0 tr_230000 tr_230600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230624, '杜尔伯特蒙古族自治县', '', 0, 0, 'D', '124.44935879141', '46.868767758452', 230600, 3, 'tr_0 tr_230000 tr_230600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230671, '大庆高新技术产业开发区', '', 0, 0, 'D', '125.15778147083', '46.581298438495', 230600, 3, 'tr_0 tr_230000 tr_230600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230702, '伊春区', '', 0, 0, 'Y', '128.91345891818', '47.733954439001', 230700, 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230703, '南岔区', '', 0, 0, 'N', '129.28957179961', '47.143749913595', 230700, 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230704, '友好区', '', 0, 0, 'Y', '128.84257946937', '47.846436100332', 230700, 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230705, '西林区', '', 0, 0, 'X', '129.31959406806', '47.486393100686', 230700, 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230706, '翠峦区', '', 0, 0, 'C', '128.67648152295', '47.732893980201', 230700, 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230707, '新青区', '', 0, 0, 'X', '129.54064675236', '48.296134660851', 230700, 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230708, '美溪区', '', 0, 0, 'M', '129.13536777746', '47.64134415168', 230700, 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230709, '金山屯区', '', 0, 0, 'J', '129.43563861113', '47.418759014597', 230700, 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230710, '五营区', '', 0, 0, 'W', '129.25134952898', '48.11427128362', 230700, 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230711, '乌马河区', '', 0, 0, 'W', '128.80554637557', '47.73361851021', 230700, 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230712, '汤旺河区', '', 0, 0, 'T', '129.57747422403', '48.460614389845', 230700, 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230713, '带岭区', '', 0, 0, 'D', '129.02742523145', '47.034571951137', 230700, 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230714, '乌伊岭区', '', 0, 0, 'W', '129.44457666112', '48.596169129772', 230700, 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230715, '红星区', '', 0, 0, 'H', '129.39750706935', '48.245480405275', 230700, 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230716, '上甘岭区', '', 0, 0, 'S', '129.03043733966', '47.980913793769', 230700, 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230722, '嘉荫县', '', 0, 0, 'J', '130.41055547772', '48.894983469564', 230700, 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230781, '铁力市', '', 0, 0, 'T', '128.03836490393', '46.992948620259', 230700, 3, 'tr_0 tr_230000 tr_230700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230803, '向阳区', '', 0, 0, 'X', '130.37261186145', '46.813511816781', 230800, 3, 'tr_0 tr_230000 tr_230800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230804, '前进区', '', 0, 0, 'Q', '130.3816482759', '46.819626508482', 230800, 3, 'tr_0 tr_230000 tr_230800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230805, '东风区', '', 0, 0, 'D', '130.41056077772', '46.828385151991', 230800, 3, 'tr_0 tr_230000 tr_230800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230811, '郊区', '', 0, 0, 'J', '130.32735909257', '46.805689990858', 230800, 3, 'tr_0 tr_230000 tr_230800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230822, '桦南县', '', 0, 0, 'H', '130.56038502153', '46.24507747688', 230800, 3, 'tr_0 tr_230000 tr_230800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230826, '桦川县', '', 0, 0, 'H', '130.72554944886', '47.028816852926', 230800, 3, 'tr_0 tr_230000 tr_230800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230828, '汤原县', '', 0, 0, 'T', '129.91164504155', '46.735326720461', 230800, 3, 'tr_0 tr_230000 tr_230800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230881, '同江市', '', 0, 0, 'T', '132.51750949205', '47.647980676666', 230800, 3, 'tr_0 tr_230000 tr_230800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230882, '富锦市', '', 0, 0, 'F', '132.04453879528', '47.255932571848', 230800, 3, 'tr_0 tr_230000 tr_230800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230883, '抚远市', '', 0, 0, 'F', '134.31448962575', '48.370944696273', 230800, 3, 'tr_0 tr_230000 tr_230800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230902, '新兴区', '', 0, 0, 'X', '130.93837086995', '45.822310328543', 230900, 3, 'tr_0 tr_230000 tr_230900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230903, '桃山区', '', 0, 0, 'T', '131.02644424554', '45.771799915696', 230900, 3, 'tr_0 tr_230000 tr_230900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230904, '茄子河区', '', 0, 0, 'J', '131.0744805937', '45.791238180152', 230900, 3, 'tr_0 tr_230000 tr_230900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(230921, '勃利县', '', 0, 0, 'B', '130.59853255314', '45.760964313167', 230900, 3, 'tr_0 tr_230000 tr_230900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231002, '东安区', '', 0, 0, 'D', '129.63347765344', '44.587460377571', 231000, 3, 'tr_0 tr_230000 tr_231000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231003, '阳明区', '', 0, 0, 'Y', '129.64252736281', '44.601775026515', 231000, 3, 'tr_0 tr_230000 tr_231000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231004, '爱民区', '', 0, 0, 'A', '129.59836369953', '44.602350339442', 231000, 3, 'tr_0 tr_230000 tr_231000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231005, '西安区', '', 0, 0, 'X', '129.62241286515', '44.583861081842', 231000, 3, 'tr_0 tr_230000 tr_231000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231025, '林口县', '', 0, 0, 'L', '130.28757880086', '45.28412885062', 231000, 3, 'tr_0 tr_230000 tr_231000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231071, '牡丹江经济技术开发区', '', 0, 0, 'M', '129.63953977835', '44.556245708986', 231000, 3, 'tr_0 tr_230000 tr_231000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231081, '绥芬河市', '', 0, 0, 'S', '131.15739222567', '44.418154372388', 231000, 3, 'tr_0 tr_230000 tr_231000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231083, '海林市', '', 0, 0, 'H', '129.38742683358', '44.599871973195', 231000, 3, 'tr_0 tr_230000 tr_231000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231084, '宁安市', '', 0, 0, 'N', '129.48936798014', '44.3469835775', 231000, 3, 'tr_0 tr_230000 tr_231000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231085, '穆棱市', '', 0, 0, 'M', '130.53055850352', '44.924784589588', 231000, 3, 'tr_0 tr_230000 tr_231000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231086, '东宁市', '', 0, 0, 'D', '131.13154357445', '44.096101486248', 231000, 3, 'tr_0 tr_230000 tr_231000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231102, '爱辉区', '', 0, 0, 'A', '127.50663227086', '50.257709616452', 231100, 3, 'tr_0 tr_230000 tr_231100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231121, '嫩江县', '', 0, 0, 'N', '125.22763469543', '49.191320184756', 231100, 3, 'tr_0 tr_230000 tr_231100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231123, '逊克县', '', 0, 0, 'X', '128.48558459529', '49.5694914357', 231100, 3, 'tr_0 tr_230000 tr_231100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231124, '孙吴县', '', 0, 0, 'S', '127.34238770837', '49.431450606859', 231100, 3, 'tr_0 tr_230000 tr_231100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231181, '北安市', '', 0, 0, 'B', '126.49737974226', '48.247419532219', 231100, 3, 'tr_0 tr_230000 tr_231100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231182, '五大连池市', '', 0, 0, 'W', '126.21155518831', '48.522609551763', 231100, 3, 'tr_0 tr_230000 tr_231100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231202, '北林区', '', 0, 0, 'B', '126.99144894055', '46.643492672111', 231200, 3, 'tr_0 tr_230000 tr_231200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231221, '望奎县', '', 0, 0, 'W', '126.49238489413', '46.839167601749', 231200, 3, 'tr_0 tr_230000 tr_231200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231222, '兰西县', '', 0, 0, 'L', '126.29461952255', '46.258095172245', 231200, 3, 'tr_0 tr_230000 tr_231200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231223, '青冈县', '', 0, 0, 'Q', '126.10048887472', '46.71068498305', 231200, 3, 'tr_0 tr_230000 tr_231200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231224, '庆安县', '', 0, 0, 'Q', '127.5146121882', '46.885744465245', 231200, 3, 'tr_0 tr_230000 tr_231200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231225, '明水县', '', 0, 0, 'M', '125.91248269419', '47.179483374941', 231200, 3, 'tr_0 tr_230000 tr_231200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231226, '绥棱县', '', 0, 0, 'S', '127.12051514063', '47.242515793854', 231200, 3, 'tr_0 tr_230000 tr_231200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231281, '安达市', '', 0, 0, 'A', '125.34862234422', '46.425719232144', 231200, 3, 'tr_0 tr_230000 tr_231200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231282, '肇东市', '', 0, 0, 'Z', '125.96853740717', '46.056938289303', 231200, 3, 'tr_0 tr_230000 tr_231200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(231283, '海伦市', '', 0, 0, 'H', '126.93650857556', '47.456903841096', 231200, 3, 'tr_0 tr_230000 tr_231200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(232701, '漠河市', '', 0, 0, 'M', '122.5454208342', '52.978303678377', 232700, 3, 'tr_0 tr_230000 tr_232700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(232721, '呼玛县', '', 0, 0, 'H', '126.65964991907', '51.73094674724', 232700, 3, 'tr_0 tr_230000 tr_232700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(232722, '塔河县', '', 0, 0, 'T', '124.71651251449', '52.340305081113', 232700, 3, 'tr_0 tr_230000 tr_232700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(232761, '加格达奇区', '', 0, 0, 'J', '124.15292785448', '50.420025955028', 232700, 3, 'tr_0 tr_230000 tr_232700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(232762, '松岭区', '', 0, 0, 'S', '124.15292785448', '50.420025955028', 232700, 3, 'tr_0 tr_230000 tr_232700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(232763, '新林区', '', 0, 0, 'X', '124.53914092375', '51.801225110533', 232700, 3, 'tr_0 tr_230000 tr_232700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(232764, '呼中区', '', 0, 0, 'H', '123.58143136869', '52.037468814622', 232700, 3, 'tr_0 tr_230000 tr_232700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(310101, '黄浦区', '', 0, 0, 'H', '121.49158559252', '31.237247152064', 310100, 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(310104, '徐汇区', '', 0, 0, 'X', '121.44339635276', '31.194556772823', 310100, 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(310105, '长宁区', '', 0, 0, 'Z', '121.43045437545', '31.226847968225', 310100, 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(310106, '静安区', '', 0, 0, 'J', '121.45343177277', '31.233844930402', 310100, 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(310107, '普陀区', '', 0, 0, 'P', '112.85530302042', '35.520558754673', 310100, 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(310109, '虹口区', '', 0, 0, 'H', '121.51158645453', '31.269746698931', 310100, 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(310110, '杨浦区', '', 0, 0, 'Y', '121.53251993733', '31.265524144657', 310100, 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(310112, '闵行区', '', 0, 0, 'M', '121.38861193361', '31.118842580087', 310100, 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(310113, '宝山区', '', 0, 0, 'B', '131.40737518857', '46.583598340241', 310100, 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(310114, '嘉定区', '', 0, 0, 'J', '121.27259505835', '31.380155339677', 310100, 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(310115, '浦东新区', '', 0, 0, 'P', '121.55045460683', '31.227348292436', 310100, 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(310116, '金山区', '', 0, 0, 'J', '121.34848004512', '30.74785237657', 310100, 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(310117, '松江区', '', 0, 0, 'S', '121.23447959624', '31.037135176464', 310100, 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(310118, '青浦区', '', 0, 0, 'Q', '121.13055310467', '31.155454317981', 310100, 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(310120, '奉贤区', '', 0, 0, 'F', '121.48050373643', '30.923720110285', 310100, 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(310151, '崇明区', '', 0, 0, 'C', '121.40355686272', '31.628569984404', 310100, 3, 'tr_0 tr_310000 tr_310100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320102, '玄武区', '', 0, 0, 'X', '118.80441263575', '32.054756682949', 320100, 3, 'tr_0 tr_320000 tr_320100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320104, '秦淮区', '', 0, 0, 'Q', '118.80040736097', '32.045138606405', 320100, 3, 'tr_0 tr_320000 tr_320100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320105, '建邺区', '', 0, 0, 'J', '118.73856944695', '32.009369695446', 320100, 3, 'tr_0 tr_320000 tr_320100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320106, '鼓楼区', '', 0, 0, 'G', '118.77651899204', '32.072405160557', 320100, 3, 'tr_0 tr_320000 tr_320100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320111, '浦口区', '', 0, 0, 'P', '118.63460405875', '32.064679277923', 320100, 3, 'tr_0 tr_320000 tr_320100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320113, '栖霞区', '', 0, 0, 'Q', '118.91542298491', '32.10260020783', 320100, 3, 'tr_0 tr_320000 tr_320100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320114, '雨花台区', '', 0, 0, 'Y', '118.78544536406', '31.997858805466', 320100, 3, 'tr_0 tr_320000 tr_320100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320115, '江宁区', '', 0, 0, 'J', '118.84656705909', '31.958526869177', 320100, 3, 'tr_0 tr_320000 tr_320100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320116, '六合区', '', 0, 0, 'L', '118.82747132971', '32.32866604102', 320100, 3, 'tr_0 tr_320000 tr_320100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320117, '溧水区', '', 0, 0, 'L', '119.03440390903', '31.657283696314', 320100, 3, 'tr_0 tr_320000 tr_320100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320118, '高淳区', '', 0, 0, 'G', '118.89849765147', '31.333639123905', 320100, 3, 'tr_0 tr_320000 tr_320100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320205, '锡山区', '', 0, 0, 'X', '120.36342571103', '31.594761632814', 320200, 3, 'tr_0 tr_320000 tr_320200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320206, '惠山区', '', 0, 0, 'H', '120.30459559335', '31.686741337275', 320200, 3, 'tr_0 tr_320000 tr_320200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320211, '滨湖区', '', 0, 0, 'B', '120.29154752616', '31.534639699974', 320200, 3, 'tr_0 tr_320000 tr_320200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320213, '梁溪区', '', 0, 0, 'L', '120.30959951436', '31.571645024135', 320200, 3, 'tr_0 tr_320000 tr_320200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320214, '新吴区', '', 0, 0, 'X', '120.37039647195', '31.554850239842', 320200, 3, 'tr_0 tr_320000 tr_320200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320281, '江阴市', '', 0, 0, 'J', '120.29156800752', '31.926044909769', 320200, 3, 'tr_0 tr_320000 tr_320200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320282, '宜兴市', '', 0, 0, 'Y', '119.83160603216', '31.342956624268', 320200, 3, 'tr_0 tr_320000 tr_320200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320302, '鼓楼区', '', 0, 0, 'G', '117.19257874733', '34.293760084221', 320300, 3, 'tr_0 tr_320000 tr_320300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320303, '云龙区', '', 0, 0, 'Y', '117.2584239124', '34.259086691031', 320300, 3, 'tr_0 tr_320000 tr_320300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320305, '贾汪区', '', 0, 0, 'J', '117.46943039703', '34.441620400617', 320300, 3, 'tr_0 tr_320000 tr_320300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320311, '泉山区', '', 0, 0, 'Q', '117.20059046468', '34.249942871606', 320300, 3, 'tr_0 tr_320000 tr_320300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320312, '铜山区', '', 0, 0, 'T', '117.17556960199', '34.186100449885', 320300, 3, 'tr_0 tr_320000 tr_320300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320321, '丰县', '', 0, 0, 'F', '116.60258246804', '34.699769765634', 320300, 3, 'tr_0 tr_320000 tr_320300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320322, '沛县', '', 0, 0, 'P', '116.9425856239', '34.765151955415', 320300, 3, 'tr_0 tr_320000 tr_320300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320324, '睢宁县', '', 0, 0, 'S', '117.94743277245', '33.918789417818', 320300, 3, 'tr_0 tr_320000 tr_320300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320371, '徐州经济技术开发区', '', 0, 0, 'X', '117.28574962221', '34.272904039312', 320300, 3, 'tr_0 tr_320000 tr_320300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320381, '新沂市', '', 0, 0, 'X', '118.36153652102', '34.375610954637', 320300, 3, 'tr_0 tr_320000 tr_320300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320382, '邳州市', '', 0, 0, 'P', '117.96341066307', '34.339753160807', 320300, 3, 'tr_0 tr_320000 tr_320300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320402, '天宁区', '', 0, 0, 'T', '119.98046316025', '31.785570271253', 320400, 3, 'tr_0 tr_320000 tr_320400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320404, '钟楼区', '', 0, 0, 'Z', '119.908462716', '31.807646657754', 320400, 3, 'tr_0 tr_320000 tr_320400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320411, '新北区', '', 0, 0, 'X', '119.97751429276', '31.836323947624', 320400, 3, 'tr_0 tr_320000 tr_320400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320412, '武进区', '', 0, 0, 'W', '119.94861167229', '31.706446611742', 320400, 3, 'tr_0 tr_320000 tr_320400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320413, '金坛区', '', 0, 0, 'J', '119.60457090266', '31.72889303001', 320400, 3, 'tr_0 tr_320000 tr_320400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320481, '溧阳市', '', 0, 0, 'L', '119.49150603896', '31.422102292159', 320400, 3, 'tr_0 tr_320000 tr_320400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320505, '虎丘区', '', 0, 0, 'H', '120.57847178571', '31.301932876554', 320500, 3, 'tr_0 tr_320000 tr_320500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320506, '吴中区', '', 0, 0, 'W', '120.63850751921', '31.268261445846', 320500, 3, 'tr_0 tr_320000 tr_320500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320507, '相城区', '', 0, 0, 'X', '120.64856593584', '31.374689921493', 320500, 3, 'tr_0 tr_320000 tr_320500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320508, '姑苏区', '', 0, 0, 'G', '120.6234549731', '31.341831300993', 320500, 3, 'tr_0 tr_320000 tr_320500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320509, '吴江区', '', 0, 0, 'W', '120.65156717454', '31.144644190473', 320500, 3, 'tr_0 tr_320000 tr_320500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320571, '苏州工业园区', '', 0, 0, 'S', '120.82848521083', '31.309610913062', 320500, 3, 'tr_0 tr_320000 tr_320500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320581, '常熟市', '', 0, 0, 'C', '120.75949588665', '31.659538276741', 320500, 3, 'tr_0 tr_320000 tr_320500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320582, '张家港市', '', 0, 0, 'Z', '120.56155363871', '31.88114053634', 320500, 3, 'tr_0 tr_320000 tr_320500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320583, '昆山市', '', 0, 0, 'K', '120.98745249795', '31.390863425082', 320500, 3, 'tr_0 tr_320000 tr_320500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320585, '太仓市', '', 0, 0, 'T', '121.1355952935', '31.464599352978', 320500, 3, 'tr_0 tr_320000 tr_320500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320602, '崇川区', '', 0, 0, 'C', '120.86342022229', '32.015923029631', 320600, 3, 'tr_0 tr_320000 tr_320600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320611, '港闸区', '', 0, 0, 'G', '120.82445235808', '32.037345124875', 320600, 3, 'tr_0 tr_320000 tr_320600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320612, '通州区', '', 0, 0, 'T', '121.08142549498', '32.070355739676', 320600, 3, 'tr_0 tr_320000 tr_320600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320623, '如东县', '', 0, 0, 'R', '121.19243791024', '32.335872886155', 320600, 3, 'tr_0 tr_320000 tr_320600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320671, '南通经济技术开发区', '', 0, 0, 'N', '120.90159173866', '31.986549431201', 320600, 3, 'tr_0 tr_320000 tr_320600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320681, '启东市', '', 0, 0, 'Q', '121.66347374677', '31.814232849643', 320600, 3, 'tr_0 tr_320000 tr_320600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320682, '如皋市', '', 0, 0, 'R', '120.57946558109', '32.377851486109', 320600, 3, 'tr_0 tr_320000 tr_320600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320684, '海门市', '', 0, 0, 'H', '121.18843649817', '31.87361172603', 320600, 3, 'tr_0 tr_320000 tr_320600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320685, '海安市', '', 0, 0, 'H', '120.47443309578', '32.53919574424', 320600, 3, 'tr_0 tr_320000 tr_320600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320703, '连云区', '', 0, 0, 'L', '119.46701669742', '34.638921829102', 320700, 3, 'tr_0 tr_320000 tr_320700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320706, '海州区', '', 0, 0, 'H', '119.16940808819', '34.577456118597', 320700, 3, 'tr_0 tr_320000 tr_320700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320707, '赣榆区', '', 0, 0, 'G', '119.17943461497', '34.847682460846', 320700, 3, 'tr_0 tr_320000 tr_320700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320722, '东海县', '', 0, 0, 'D', '118.75956509248', '34.547918627364', 320700, 3, 'tr_0 tr_320000 tr_320700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320723, '灌云县', '', 0, 0, 'G', '119.24653354504', '34.288616060258', 320700, 3, 'tr_0 tr_320000 tr_320700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320724, '灌南县', '', 0, 0, 'G', '119.3225381861', '34.09259130777', 320700, 3, 'tr_0 tr_320000 tr_320700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320771, '连云港经济技术开发区', '', 0, 0, 'L', '119.35457059279', '34.70740063931', 320700, 3, 'tr_0 tr_320000 tr_320700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320772, '连云港高新技术产业开发区', '', 0, 0, 'L', '119.22862133317', '34.602249525267', 320700, 3, 'tr_0 tr_320000 tr_320700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320803, '淮安区', '', 0, 0, 'H', '119.14746320322', '33.508999838208', 320800, 3, 'tr_0 tr_320000 tr_320800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320804, '淮阴区', '', 0, 0, 'H', '119.04142174116', '33.638150424768', 320800, 3, 'tr_0 tr_320000 tr_320800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320812, '清江浦区', '', 0, 0, 'Q', '119.03241362334', '33.558562240066', 320800, 3, 'tr_0 tr_320000 tr_320800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320813, '洪泽区', '', 0, 0, 'H', '118.8795836493', '33.29962468147', 320800, 3, 'tr_0 tr_320000 tr_320800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320826, '涟水县', '', 0, 0, 'L', '119.26644843921', '33.7870787079', 320800, 3, 'tr_0 tr_320000 tr_320800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320830, '盱眙县', '', 0, 0, 'X', '118.55144127024', '33.01825474166', 320800, 3, 'tr_0 tr_320000 tr_320800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320831, '金湖县', '', 0, 0, 'J', '119.02646908663', '33.031283826757', 320800, 3, 'tr_0 tr_320000 tr_320800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320871, '淮安经济技术开发区', '', 0, 0, 'H', '119.13289044209', '33.610236869931', 320800, 3, 'tr_0 tr_320000 tr_320800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320902, '亭湖区', '', 0, 0, 'T', '120.20457816804', '33.395893486907', 320900, 3, 'tr_0 tr_320000 tr_320900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320903, '盐都区', '', 0, 0, 'Y', '120.16050325734', '33.344020315599', 320900, 3, 'tr_0 tr_320000 tr_320900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320904, '大丰区', '', 0, 0, 'D', '120.50743881649', '33.20475984971', 320900, 3, 'tr_0 tr_320000 tr_320900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320921, '响水县', '', 0, 0, 'X', '119.58460112202', '34.20474300276', 320900, 3, 'tr_0 tr_320000 tr_320900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320922, '滨海县', '', 0, 0, 'B', '119.82762105909', '33.995646547467', 320900, 3, 'tr_0 tr_320000 tr_320900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320923, '阜宁县', '', 0, 0, 'F', '119.80958074885', '33.765078727087', 320900, 3, 'tr_0 tr_320000 tr_320900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320924, '射阳县', '', 0, 0, 'S', '120.26444564892', '33.78101359213', 320900, 3, 'tr_0 tr_320000 tr_320900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320925, '建湖县', '', 0, 0, 'J', '119.80553127745', '33.469832978385', 320900, 3, 'tr_0 tr_320000 tr_320900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320971, '盐城经济技术开发区', '', 0, 0, 'Y', '120.16754426576', '33.355100917626', 320900, 3, 'tr_0 tr_320000 tr_320900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(320981, '东台市', '', 0, 0, 'D', '120.32653706475', '32.872716312488', 320900, 3, 'tr_0 tr_320000 tr_320900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321002, '广陵区', '', 0, 0, 'G', '119.43850484608', '32.40066115972', 321000, 3, 'tr_0 tr_320000 tr_321000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321003, '邗江区', '', 0, 0, 'H', '119.40438513671', '32.38275135526', 321000, 3, 'tr_0 tr_320000 tr_321000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321012, '江都区', '', 0, 0, 'J', '119.57660296908', '32.440294506243', 321000, 3, 'tr_0 tr_320000 tr_321000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321023, '宝应县', '', 0, 0, 'B', '119.36555570138', '33.247205461148', 321000, 3, 'tr_0 tr_320000 tr_321000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321071, '扬州经济技术开发区', '', 0, 0, 'Y', '119.41941890823', '32.40067693609', 321000, 3, 'tr_0 tr_320000 tr_321000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321081, '仪征市', '', 0, 0, 'Y', '119.19146705795', '32.278090483161', 321000, 3, 'tr_0 tr_320000 tr_321000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321084, '高邮市', '', 0, 0, 'G', '119.46561561654', '32.787147020528', 321000, 3, 'tr_0 tr_320000 tr_321000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'); +INSERT INTO `hg_sys_provinces` (`id`, `title`, `short_title`, `areacode`, `zipcode`, `pinyin`, `lng`, `lat`, `pid`, `level`, `tree`, `sort`, `status`, `created_at`, `updated_at`) VALUES +(321102, '京口区', '', 0, 0, 'J', '119.47560369584', '32.203785483528', 321100, 3, 'tr_0 tr_320000 tr_321100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321111, '润州区', '', 0, 0, 'R', '119.41844047387', '32.201494843152', 321100, 3, 'tr_0 tr_320000 tr_321100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321112, '丹徒区', '', 0, 0, 'D', '119.44050079109', '32.13792039565', 321100, 3, 'tr_0 tr_320000 tr_321100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321171, '镇江新区', '', 0, 0, 'Z', '119.67618104484', '32.168646770866', 321100, 3, 'tr_0 tr_320000 tr_321100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321181, '丹阳市', '', 0, 0, 'D', '119.61250060471', '32.01592027417', 321100, 3, 'tr_0 tr_320000 tr_321100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321182, '扬中市', '', 0, 0, 'Y', '119.80351961209', '32.242967194122', 321100, 3, 'tr_0 tr_320000 tr_321100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321183, '句容市', '', 0, 0, 'J', '119.1754332029', '31.950923490521', 321100, 3, 'tr_0 tr_320000 tr_321100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321202, '海陵区', '', 0, 0, 'H', '119.9255249512', '32.496731549227', 321200, 3, 'tr_0 tr_320000 tr_321200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321203, '高港区', '', 0, 0, 'G', '119.88842098109', '32.32486247444', 321200, 3, 'tr_0 tr_320000 tr_321200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321204, '姜堰区', '', 0, 0, 'J', '120.13339832587', '32.515233674759', 321200, 3, 'tr_0 tr_320000 tr_321200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321271, '泰州医药高新技术产业开发区', '', 0, 0, 'T', '119.91593203649', '32.502484457877', 321200, 3, 'tr_0 tr_320000 tr_321200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321281, '兴化市', '', 0, 0, 'X', '119.85751406137', '32.917824213889', 321200, 3, 'tr_0 tr_320000 tr_321200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321282, '靖江市', '', 0, 0, 'J', '120.28353203592', '31.988170075211', 321200, 3, 'tr_0 tr_320000 tr_321200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321283, '泰兴市', '', 0, 0, 'T', '120.05859939046', '32.177474023712', 321200, 3, 'tr_0 tr_320000 tr_321200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321302, '宿城区', '', 0, 0, 'S', '118.24956705107', '33.968677630731', 321300, 3, 'tr_0 tr_320000 tr_321300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321311, '宿豫区', '', 0, 0, 'S', '118.33640094471', '33.954804396327', 321300, 3, 'tr_0 tr_320000 tr_321300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321322, '沭阳县', '', 0, 0, 'S', '118.81041906571', '34.117454209479', 321300, 3, 'tr_0 tr_320000 tr_321300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321323, '泗阳县', '', 0, 0, 'S', '118.70946596538', '33.728328313047', 321300, 3, 'tr_0 tr_320000 tr_321300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321324, '泗洪县', '', 0, 0, 'S', '118.22241594669', '33.465732594595', 321300, 3, 'tr_0 tr_320000 tr_321300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(321371, '宿迁经济技术开发区', '', 0, 0, 'S', '118.27387299732', '33.898354594037', 321300, 3, 'tr_0 tr_320000 tr_321300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330102, '上城区', '', 0, 0, 'S', '120.17557880007', '30.248398420426', 330100, 3, 'tr_0 tr_330000 tr_330100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330103, '下城区', '', 0, 0, 'X', '120.18760693119', '30.286744052562', 330100, 3, 'tr_0 tr_330000 tr_330100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330104, '江干区', '', 0, 0, 'J', '120.21153877811', '30.263310567012', 330100, 3, 'tr_0 tr_330000 tr_330100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330105, '拱墅区', '', 0, 0, 'G', '120.14844700926', '30.32464256663', 330100, 3, 'tr_0 tr_330000 tr_330100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330106, '西湖区', '', 0, 0, 'X', '120.13643801205', '30.265916325589', 330100, 3, 'tr_0 tr_330000 tr_330100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330108, '滨江区', '', 0, 0, 'B', '120.21847118139', '30.214332950144', 330100, 3, 'tr_0 tr_330000 tr_330100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330109, '萧山区', '', 0, 0, 'X', '120.27047058397', '30.187511222214', 330100, 3, 'tr_0 tr_330000 tr_330100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330110, '余杭区', '', 0, 0, 'Y', '120.30659216718', '30.424739268745', 330100, 3, 'tr_0 tr_330000 tr_330100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330111, '富阳区', '', 0, 0, 'F', '119.96655568418', '30.054722967304', 330100, 3, 'tr_0 tr_330000 tr_330100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330112, '临安区', '', 0, 0, 'L', '119.73151737122', '30.239805598054', 330100, 3, 'tr_0 tr_330000 tr_330100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330122, '桐庐县', '', 0, 0, 'T', '119.69759877583', '29.798584790143', 330100, 3, 'tr_0 tr_330000 tr_330100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330127, '淳安县', '', 0, 0, 'C', '119.04839230601', '29.614950366034', 330100, 3, 'tr_0 tr_330000 tr_330100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330182, '建德市', '', 0, 0, 'J', '119.28739807501', '29.481154026968', 330100, 3, 'tr_0 tr_330000 tr_330100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330203, '海曙区', '', 0, 0, 'H', '121.55740307254', '29.865720708366', 330200, 3, 'tr_0 tr_330000 tr_330200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330205, '江北区', '', 0, 0, 'J', '121.56042128922', '29.892948379476', 330200, 3, 'tr_0 tr_330000 tr_330200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330206, '北仑区', '', 0, 0, 'B', '121.85057621461', '29.904659359939', 330200, 3, 'tr_0 tr_330000 tr_330200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330211, '镇海区', '', 0, 0, 'Z', '121.72251899132', '29.954884963349', 330200, 3, 'tr_0 tr_330000 tr_330200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330212, '鄞州区', '', 0, 0, 'Y', '121.55542706991', '29.824206349996', 330200, 3, 'tr_0 tr_330000 tr_330200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330213, '奉化区', '', 0, 0, 'F', '121.41352776719', '29.66114641278', 330200, 3, 'tr_0 tr_330000 tr_330200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330225, '象山县', '', 0, 0, 'X', '121.87556392982', '29.482270653805', 330200, 3, 'tr_0 tr_330000 tr_330200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330226, '宁海县', '', 0, 0, 'N', '121.43643177294', '29.294317441106', 330200, 3, 'tr_0 tr_330000 tr_330200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330281, '余姚市', '', 0, 0, 'Y', '121.16058507482', '30.042734639571', 330200, 3, 'tr_0 tr_330000 tr_330200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330282, '慈溪市', '', 0, 0, 'C', '121.27259613632', '30.17525661072', 330200, 3, 'tr_0 tr_330000 tr_330200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330302, '鹿城区', '', 0, 0, 'L', '120.66158649793', '28.020351607763', 330300, 3, 'tr_0 tr_330000 tr_330300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330303, '龙湾区', '', 0, 0, 'L', '120.81946755397', '27.938652244916', 330300, 3, 'tr_0 tr_330000 tr_330300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330304, '瓯海区', '', 0, 0, 'O', '120.62144724335', '27.972857351643', 330300, 3, 'tr_0 tr_330000 tr_330300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330305, '洞头区', '', 0, 0, 'D', '121.16354856759', '27.841870324587', 330300, 3, 'tr_0 tr_330000 tr_330300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330324, '永嘉县', '', 0, 0, 'Y', '120.68852407508', '28.156450332206', 330300, 3, 'tr_0 tr_330000 tr_330300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330326, '平阳县', '', 0, 0, 'P', '120.57251537444', '27.667724401093', 330300, 3, 'tr_0 tr_330000 tr_330300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330327, '苍南县', '', 0, 0, 'C', '120.43359512229', '27.523066788447', 330300, 3, 'tr_0 tr_330000 tr_330300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330328, '文成县', '', 0, 0, 'W', '120.09748845652', '27.79321715229', 330300, 3, 'tr_0 tr_330000 tr_330300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330329, '泰顺县', '', 0, 0, 'T', '119.72353725759', '27.562170559597', 330300, 3, 'tr_0 tr_330000 tr_330300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330371, '温州经济技术开发区', '', 0, 0, 'W', '120.82366240355', '27.878919129203', 330300, 3, 'tr_0 tr_330000 tr_330300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330381, '瑞安市', '', 0, 0, 'R', '120.66158218607', '27.783950736232', 330300, 3, 'tr_0 tr_330000 tr_330300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330382, '乐清市', '', 0, 0, 'L', '120.99250185617', '28.118179995228', 330300, 3, 'tr_0 tr_330000 tr_330300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330402, '南湖区', '', 0, 0, 'N', '120.78961005175', '30.751546813315', 330400, 3, 'tr_0 tr_330000 tr_330400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330411, '秀洲区', '', 0, 0, 'X', '120.71543705563', '30.770207214174', 330400, 3, 'tr_0 tr_330000 tr_330400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330421, '嘉善县', '', 0, 0, 'J', '120.93251060584', '30.83712219382', 330400, 3, 'tr_0 tr_330000 tr_330400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330424, '海盐县', '', 0, 0, 'H', '120.95244526273', '30.531872894538', 330400, 3, 'tr_0 tr_330000 tr_330400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330481, '海宁市', '', 0, 0, 'H', '120.68656506738', '30.517923769776', 330400, 3, 'tr_0 tr_330000 tr_330400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330482, '平湖市', '', 0, 0, 'P', '121.02257525525', '30.682240998058', 330400, 3, 'tr_0 tr_330000 tr_330400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330483, '桐乡市', '', 0, 0, 'T', '120.57154315531', '30.63631118771', 330400, 3, 'tr_0 tr_330000 tr_330400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330502, '吴兴区', '', 0, 0, 'W', '120.1916046602', '30.862955454986', 330500, 3, 'tr_0 tr_330000 tr_330500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330503, '南浔区', '', 0, 0, 'N', '120.42460139422', '30.855242982243', 330500, 3, 'tr_0 tr_330000 tr_330500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330521, '德清县', '', 0, 0, 'D', '119.98346466845', '30.548628239139', 330500, 3, 'tr_0 tr_330000 tr_330500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330522, '长兴县', '', 0, 0, 'Z', '119.91749832197', '31.032579326835', 330500, 3, 'tr_0 tr_330000 tr_330500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330523, '安吉县', '', 0, 0, 'A', '119.68656337876', '30.644424794114', 330500, 3, 'tr_0 tr_330000 tr_330500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330602, '越城区', '', 0, 0, 'Y', '120.58843667181', '29.995309962798', 330600, 3, 'tr_0 tr_330000 tr_330600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330603, '柯桥区', '', 0, 0, 'K', '120.45151103408', '30.07900360495', 330600, 3, 'tr_0 tr_330000 tr_330600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330604, '上虞区', '', 0, 0, 'S', '120.87450989364', '30.038242967062', 330600, 3, 'tr_0 tr_330000 tr_330600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330624, '新昌县', '', 0, 0, 'X', '120.91056965639', '29.50554107531', 330600, 3, 'tr_0 tr_330000 tr_330600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330681, '诸暨市', '', 0, 0, 'Z', '120.25340833197', '29.714934649195', 330600, 3, 'tr_0 tr_330000 tr_330600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330683, '嵊州市', '', 0, 0, 'S', '120.83743725739', '29.567326991294', 330600, 3, 'tr_0 tr_330000 tr_330600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330702, '婺城区', '', 0, 0, 'W', '119.57859260936', '29.091775438186', 330700, 3, 'tr_0 tr_330000 tr_330700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330703, '金东区', '', 0, 0, 'J', '119.69958241405', '29.104765016118', 330700, 3, 'tr_0 tr_330000 tr_330700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330723, '武义县', '', 0, 0, 'W', '119.82256555867', '28.89824378665', 330700, 3, 'tr_0 tr_330000 tr_330700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330726, '浦江县', '', 0, 0, 'P', '119.8984360827', '29.458692851855', 330700, 3, 'tr_0 tr_330000 tr_330700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330727, '磐安县', '', 0, 0, 'P', '120.45651305177', '29.060103175107', 330700, 3, 'tr_0 tr_330000 tr_330700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330781, '兰溪市', '', 0, 0, 'L', '119.46659870554', '29.214044345079', 330700, 3, 'tr_0 tr_330000 tr_330700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330782, '义乌市', '', 0, 0, 'Y', '120.08158099306', '29.31114987541', 330700, 3, 'tr_0 tr_330000 tr_330700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330783, '东阳市', '', 0, 0, 'D', '120.24842192791', '29.295861065151', 330700, 3, 'tr_0 tr_330000 tr_330700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330784, '永康市', '', 0, 0, 'Y', '120.05455071078', '28.894203967255', 330700, 3, 'tr_0 tr_330000 tr_330700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330802, '柯城区', '', 0, 0, 'K', '118.87758391504', '28.974203651128', 330800, 3, 'tr_0 tr_330000 tr_330800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330803, '衢江区', '', 0, 0, 'Q', '118.9655390736', '28.986237907969', 330800, 3, 'tr_0 tr_330000 tr_330800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330822, '常山县', '', 0, 0, 'C', '118.51755663118', '28.906997949113', 330800, 3, 'tr_0 tr_330000 tr_330800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330824, '开化县', '', 0, 0, 'K', '118.42145932131', '29.143187521187', 330800, 3, 'tr_0 tr_330000 tr_330800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330825, '龙游县', '', 0, 0, 'L', '119.17841825566', '29.034486553295', 330800, 3, 'tr_0 tr_330000 tr_330800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330881, '江山市', '', 0, 0, 'J', '118.63358329793', '28.742868480118', 330800, 3, 'tr_0 tr_330000 tr_330800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330902, '定海区', '', 0, 0, 'D', '122.11360080392', '30.025462378363', 330900, 3, 'tr_0 tr_330000 tr_330900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330903, '普陀区', '', 0, 0, 'P', '122.33154416586', '29.976835696536', 330900, 3, 'tr_0 tr_330000 tr_330900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330921, '岱山县', '', 0, 0, 'D', '122.23260481449', '30.269655894035', 330900, 3, 'tr_0 tr_330000 tr_330900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(330922, '嵊泗县', '', 0, 0, 'S', '122.45758776506', '30.731273949024', 330900, 3, 'tr_0 tr_330000 tr_330900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(331002, '椒江区', '', 0, 0, 'J', '121.44940797569', '28.679258224903', 331000, 3, 'tr_0 tr_330000 tr_331000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(331003, '黄岩区', '', 0, 0, 'H', '121.26856605116', '28.655333607551', 331000, 3, 'tr_0 tr_330000 tr_331000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(331004, '路桥区', '', 0, 0, 'L', '121.37157806769', '28.586946666726', 331000, 3, 'tr_0 tr_330000 tr_331000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(331022, '三门县', '', 0, 0, 'S', '121.40255379759', '29.110355206289', 331000, 3, 'tr_0 tr_330000 tr_331000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(331023, '天台县', '', 0, 0, 'T', '121.01355337629', '29.149514378149', 331000, 3, 'tr_0 tr_330000 tr_331000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(331024, '仙居县', '', 0, 0, 'X', '120.73543520575', '28.853225693258', 331000, 3, 'tr_0 tr_330000 tr_331000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(331081, '温岭市', '', 0, 0, 'W', '121.39258889458', '28.37765548985', 331000, 3, 'tr_0 tr_330000 tr_331000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(331082, '临海市', '', 0, 0, 'L', '121.15158529413', '28.864049329083', 331000, 3, 'tr_0 tr_330000 tr_331000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(331083, '玉环市', '', 0, 0, 'Y', '121.23851297084', '28.141862986829', 331000, 3, 'tr_0 tr_330000 tr_331000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(331102, '莲都区', '', 0, 0, 'L', '119.91951913335', '28.451745135046', 331100, 3, 'tr_0 tr_330000 tr_331100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(331121, '青田县', '', 0, 0, 'Q', '120.296573349', '28.14548755633', 331100, 3, 'tr_0 tr_330000 tr_331100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(331122, '缙云县', '', 0, 0, 'J', '120.09747830566', '28.665214747164', 331100, 3, 'tr_0 tr_330000 tr_331100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(331123, '遂昌县', '', 0, 0, 'S', '119.28243538622', '28.59845467671', 331100, 3, 'tr_0 tr_330000 tr_331100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(331124, '松阳县', '', 0, 0, 'S', '119.48854377016', '28.455056404273', 331100, 3, 'tr_0 tr_330000 tr_331100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(331125, '云和县', '', 0, 0, 'Y', '119.57959736407', '28.121469507454', 331100, 3, 'tr_0 tr_330000 tr_331100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(331126, '庆元县', '', 0, 0, 'Q', '119.06948685498', '27.625431778354', 331100, 3, 'tr_0 tr_330000 tr_331100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(331127, '景宁畲族自治县', '', 0, 0, 'J', '119.64243033109', '27.979553966951', 331100, 3, 'tr_0 tr_330000 tr_331100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(331181, '龙泉市', '', 0, 0, 'L', '119.14844476521', '28.080508725251', 331100, 3, 'tr_0 tr_330000 tr_331100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340102, '瑶海区', '', 0, 0, 'Y', '117.31558704454', '31.863786941657', 340100, 3, 'tr_0 tr_340000 tr_340100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340103, '庐阳区', '', 0, 0, 'L', '117.27145913382', '31.884886695554', 340100, 3, 'tr_0 tr_340000 tr_340100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340104, '蜀山区', '', 0, 0, 'S', '117.2664607823', '31.857378217104', 340100, 3, 'tr_0 tr_340000 tr_340100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340111, '包河区', '', 0, 0, 'B', '117.31657625857', '31.799293467782', 340100, 3, 'tr_0 tr_340000 tr_340100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340121, '长丰县', '', 0, 0, 'Z', '117.17356009256', '32.483722623763', 340100, 3, 'tr_0 tr_340000 tr_340100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340122, '肥东县', '', 0, 0, 'F', '117.47540062528', '31.893890354487', 340100, 3, 'tr_0 tr_340000 tr_340100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340123, '肥西县', '', 0, 0, 'F', '117.16455781372', '31.712962132717', 340100, 3, 'tr_0 tr_340000 tr_340100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340124, '庐江县', '', 0, 0, 'L', '117.29357730192', '31.261327637478', 340100, 3, 'tr_0 tr_340000 tr_340100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340171, '合肥高新技术产业开发区', '', 0, 0, 'H', '117.1837943471', '31.838528178293', 340100, 3, 'tr_0 tr_340000 tr_340100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340172, '合肥经济技术开发区', '', 0, 0, 'H', '117.21475703093', '31.784661076762', 340100, 3, 'tr_0 tr_340000 tr_340100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340173, '合肥新站高新技术产业开发区', '', 0, 0, 'H', '117.38386824707', '31.946175260915', 340100, 3, 'tr_0 tr_340000 tr_340100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340181, '巢湖市', '', 0, 0, 'C', '117.89557620045', '31.629002428816', 340100, 3, 'tr_0 tr_340000 tr_340100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340202, '镜湖区', '', 0, 0, 'J', '118.39260630352', '31.345866595569', 340200, 3, 'tr_0 tr_340000 tr_340200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340203, '弋江区', '', 0, 0, 'Y', '118.37957970583', '31.317566272497', 340200, 3, 'tr_0 tr_340000 tr_340200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340207, '鸠江区', '', 0, 0, 'J', '118.39758848554', '31.375804519517', 340200, 3, 'tr_0 tr_340000 tr_340200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340208, '三山区', '', 0, 0, 'S', '118.27460210698', '31.225280124269', 340200, 3, 'tr_0 tr_340000 tr_340200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340221, '芜湖县', '', 0, 0, 'W', '118.58244251203', '31.141239223464', 340200, 3, 'tr_0 tr_340000 tr_340200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340222, '繁昌县', '', 0, 0, 'F', '118.20542431831', '31.107958593586', 340200, 3, 'tr_0 tr_340000 tr_340200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340223, '南陵县', '', 0, 0, 'N', '118.34041816695', '30.920260298683', 340200, 3, 'tr_0 tr_340000 tr_340200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340225, '无为县', '', 0, 0, 'W', '117.90857854389', '31.308844155979', 340200, 3, 'tr_0 tr_340000 tr_340200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340271, '芜湖经济技术开发区', '', 0, 0, 'W', '118.39582758127', '31.478017093937', 340200, 3, 'tr_0 tr_340000 tr_340200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340272, '安徽芜湖长江大桥经济开发区', '', 0, 0, 'A', '118.37946121933', '31.391647770998', 340200, 3, 'tr_0 tr_340000 tr_340200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340302, '龙子湖区', '', 0, 0, 'L', '117.39951276393', '32.948644262929', 340300, 3, 'tr_0 tr_340000 tr_340300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340303, '蚌山区', '', 0, 0, 'B', '117.37944120527', '32.923378770395', 340300, 3, 'tr_0 tr_340000 tr_340300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340304, '禹会区', '', 0, 0, 'Y', '117.3484523601', '32.935309988858', 340300, 3, 'tr_0 tr_340000 tr_340300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340311, '淮上区', '', 0, 0, 'H', '117.36638271774', '32.970547011885', 340300, 3, 'tr_0 tr_340000 tr_340300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340321, '怀远县', '', 0, 0, 'H', '117.21150631391', '32.976003726624', 340300, 3, 'tr_0 tr_340000 tr_340300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340322, '五河县', '', 0, 0, 'W', '117.88756088987', '33.132709462866', 340300, 3, 'tr_0 tr_340000 tr_340300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340323, '固镇县', '', 0, 0, 'G', '117.32354764831', '33.323274297744', 340300, 3, 'tr_0 tr_340000 tr_340300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340371, '蚌埠市高新技术开发区', '', 0, 0, 'B', '117.27641494698', '32.834931868561', 340300, 3, 'tr_0 tr_340000 tr_340300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340372, '蚌埠市经济开发区', '', 0, 0, 'B', '117.20923836199', '32.962369404949', 340300, 3, 'tr_0 tr_340000 tr_340300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340402, '大通区', '', 0, 0, 'D', '117.05958317929', '32.637269959538', 340400, 3, 'tr_0 tr_340000 tr_340400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340403, '田家庵区', '', 0, 0, 'T', '117.02344533676', '32.653323007096', 340400, 3, 'tr_0 tr_340000 tr_340400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340404, '谢家集区', '', 0, 0, 'X', '116.86543887721', '32.606254588196', 340400, 3, 'tr_0 tr_340000 tr_340400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340405, '八公山区', '', 0, 0, 'B', '116.84056434849', '32.637137318437', 340400, 3, 'tr_0 tr_340000 tr_340400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340406, '潘集区', '', 0, 0, 'P', '116.84158096084', '32.777955491108', 340400, 3, 'tr_0 tr_340000 tr_340400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340421, '凤台县', '', 0, 0, 'F', '116.71757320891', '32.715103905085', 340400, 3, 'tr_0 tr_340000 tr_340400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340422, '寿县', '', 0, 0, 'S', '116.8055627726', '32.561546151201', 340400, 3, 'tr_0 tr_340000 tr_340400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340503, '花山区', '', 0, 0, 'H', '118.49960562875', '31.725472572001', 340500, 3, 'tr_0 tr_340000 tr_340500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340504, '雨山区', '', 0, 0, 'Y', '118.50559705701', '31.687745482904', 340500, 3, 'tr_0 tr_340000 tr_340500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340506, '博望区', '', 0, 0, 'B', '118.85155804451', '31.556645467065', 340500, 3, 'tr_0 tr_340000 tr_340500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340521, '当涂县', '', 0, 0, 'D', '118.50460469891', '31.576649154711', 340500, 3, 'tr_0 tr_340000 tr_340500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340522, '含山县', '', 0, 0, 'H', '118.10746203634', '31.740862208736', 340500, 3, 'tr_0 tr_340000 tr_340500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340523, '和县', '', 0, 0, 'H', '118.35951254887', '31.748243815854', 340500, 3, 'tr_0 tr_340000 tr_340500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340602, '杜集区', '', 0, 0, 'D', '116.83461226601', '33.997285436391', 340600, 3, 'tr_0 tr_340000 tr_340600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340603, '相山区', '', 0, 0, 'X', '116.80052112276', '33.96582716177', 340600, 3, 'tr_0 tr_340000 tr_340600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340604, '烈山区', '', 0, 0, 'L', '116.9081817805', '33.84405351094', 340600, 3, 'tr_0 tr_340000 tr_340600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340621, '濉溪县', '', 0, 0, 'S', '116.77238942808', '33.921629194823', 340600, 3, 'tr_0 tr_340000 tr_340600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340705, '铜官区', '', 0, 0, 'T', '117.82145710265', '30.940386340633', 340700, 3, 'tr_0 tr_340000 tr_340700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340706, '义安区', '', 0, 0, 'Y', '117.79856800876', '30.958512099098', 340700, 3, 'tr_0 tr_340000 tr_340700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340711, '郊区', '', 0, 0, 'J', '117.80755007573', '30.897741483658', 340700, 3, 'tr_0 tr_340000 tr_340700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340722, '枞阳县', '', 0, 0, 'C', '117.22643695997', '30.705671267725', 340700, 3, 'tr_0 tr_340000 tr_340700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340802, '迎江区', '', 0, 0, 'Y', '117.09751448877', '30.517523291408', 340800, 3, 'tr_0 tr_340000 tr_340800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340803, '大观区', '', 0, 0, 'D', '117.04053820417', '30.518231924651', 340800, 3, 'tr_0 tr_340000 tr_340800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340811, '宜秀区', '', 0, 0, 'Y', '116.99344112425', '30.619675877796', 340800, 3, 'tr_0 tr_340000 tr_340800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340822, '怀宁县', '', 0, 0, 'H', '116.83659258051', '30.739399674607', 340800, 3, 'tr_0 tr_340000 tr_340800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340825, '太湖县', '', 0, 0, 'T', '116.31547630162', '30.460113290448', 340800, 3, 'tr_0 tr_340000 tr_340800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340826, '宿松县', '', 0, 0, 'S', '116.13552369949', '30.159786861375', 340800, 3, 'tr_0 tr_340000 tr_340800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340827, '望江县', '', 0, 0, 'W', '116.7005902941', '30.129968329229', 340800, 3, 'tr_0 tr_340000 tr_340800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340828, '岳西县', '', 0, 0, 'Y', '116.36655539021', '30.855227714002', 340800, 3, 'tr_0 tr_340000 tr_340800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340871, '安徽安庆经济开发区', '', 0, 0, 'A', '117.06360390492', '30.530956568043', 340800, 3, 'tr_0 tr_340000 tr_340800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340881, '桐城市', '', 0, 0, 'T', '116.98046635878', '31.041969037674', 340800, 3, 'tr_0 tr_340000 tr_340800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(340882, '潜山市', '', 0, 0, 'Q', '116.58761103892', '30.636755682399', 340800, 3, 'tr_0 tr_340000 tr_340800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341002, '屯溪区', '', 0, 0, 'T', '118.32141818077', '29.702143908546', 341000, 3, 'tr_0 tr_340000 tr_341000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341003, '黄山区', '', 0, 0, 'H', '118.14760982484', '30.278650980188', 341000, 3, 'tr_0 tr_340000 tr_341000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341004, '徽州区', '', 0, 0, 'H', '118.34343582847', '29.834221385317', 341000, 3, 'tr_0 tr_340000 tr_341000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341021, '歙县', '', 0, 0, 'S', '118.42146012979', '29.866287675757', 341000, 3, 'tr_0 tr_340000 tr_341000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341022, '休宁县', '', 0, 0, 'X', '118.20543014116', '29.795459004963', 341000, 3, 'tr_0 tr_340000 tr_341000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341023, '黟县', '', 0, 0, 'Y', '117.94447724144', '29.931047330704', 341000, 3, 'tr_0 tr_340000 tr_341000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341024, '祁门县', '', 0, 0, 'Q', '117.72339257754', '29.86034394808', 341000, 3, 'tr_0 tr_340000 tr_341000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341102, '琅琊区', '', 0, 0, 'L', '118.31244134015', '32.300867492599', 341100, 3, 'tr_0 tr_340000 tr_341100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341103, '南谯区', '', 0, 0, 'N', '118.42348205204', '32.206131899264', 341100, 3, 'tr_0 tr_340000 tr_341100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341122, '来安县', '', 0, 0, 'L', '118.4424124932', '32.458449762427', 341100, 3, 'tr_0 tr_340000 tr_341100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341124, '全椒县', '', 0, 0, 'Q', '118.2805842827', '32.091939797603', 341100, 3, 'tr_0 tr_340000 tr_341100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341125, '定远县', '', 0, 0, 'D', '117.70447068625', '32.537046613487', 341100, 3, 'tr_0 tr_340000 tr_341100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341126, '凤阳县', '', 0, 0, 'F', '117.53858536874', '32.880976725258', 341100, 3, 'tr_0 tr_340000 tr_341100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341171, '苏滁现代产业园', '', 0, 0, 'S', '118.42315086566', '32.314484916002', 341100, 3, 'tr_0 tr_340000 tr_341100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341172, '滁州经济技术开发区', '', 0, 0, 'C', '118.37688910117', '32.299081918592', 341100, 3, 'tr_0 tr_340000 tr_341100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341181, '天长市', '', 0, 0, 'T', '119.01138527949', '32.67341003277', 341100, 3, 'tr_0 tr_340000 tr_341100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341182, '明光市', '', 0, 0, 'M', '117.99550981385', '32.783022823418', 341100, 3, 'tr_0 tr_340000 tr_341100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341202, '颍州区', '', 0, 0, 'Y', '115.81341119616', '32.88962541655', 341200, 3, 'tr_0 tr_340000 tr_341200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341203, '颍东区', '', 0, 0, 'Y', '115.86361668264', '32.917362240172', 341200, 3, 'tr_0 tr_340000 tr_341200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341204, '颍泉区', '', 0, 0, 'Y', '115.81542555644', '32.931313576025', 341200, 3, 'tr_0 tr_340000 tr_341200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341221, '临泉县', '', 0, 0, 'L', '115.26761550051', '33.045959528363', 341200, 3, 'tr_0 tr_340000 tr_341200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341222, '太和县', '', 0, 0, 'T', '115.6286154697', '33.165959850096', 341200, 3, 'tr_0 tr_340000 tr_341200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341225, '阜南县', '', 0, 0, 'F', '115.60254592516', '32.664097385125', 341200, 3, 'tr_0 tr_340000 tr_341200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341226, '颍上县', '', 0, 0, 'Y', '116.26347689904', '32.659028468804', 341200, 3, 'tr_0 tr_340000 tr_341200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341271, '阜阳合肥现代产业园区', '', 0, 0, 'F', '115.88456164757', '32.809466011566', 341200, 3, 'tr_0 tr_340000 tr_341200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341272, '阜阳经济技术开发区', '', 0, 0, 'F', '115.86257063732', '32.867285704339', 341200, 3, 'tr_0 tr_340000 tr_341200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341282, '界首市', '', 0, 0, 'J', '115.38060984722', '33.262775236231', 341200, 3, 'tr_0 tr_340000 tr_341200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341302, '埇桥区', '', 0, 0, 'Y', '116.98348044326', '33.646130650445', 341300, 3, 'tr_0 tr_340000 tr_341300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341321, '砀山县', '', 0, 0, 'D', '116.37252400151', '34.448428171397', 341300, 3, 'tr_0 tr_340000 tr_341300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341322, '萧县', '', 0, 0, 'X', '116.95358492572', '34.194269344319', 341300, 3, 'tr_0 tr_340000 tr_341300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341323, '灵璧县', '', 0, 0, 'L', '117.56455699799', '33.547892231948', 341300, 3, 'tr_0 tr_340000 tr_341300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341324, '泗县', '', 0, 0, 'S', '117.91658999175', '33.488694630134', 341300, 3, 'tr_0 tr_340000 tr_341300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341371, '宿州马鞍山现代产业园区', '', 0, 0, 'S', '116.97054394561', '33.652095326452', 341300, 3, 'tr_0 tr_340000 tr_341300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341372, '宿州经济技术开发区', '', 0, 0, 'S', '116.97054394561', '33.652095326452', 341300, 3, 'tr_0 tr_340000 tr_341300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341702, '贵池区', '', 0, 0, 'G', '117.57449037049', '30.693857943819', 341700, 3, 'tr_0 tr_340000 tr_341700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341721, '东至县', '', 0, 0, 'D', '117.03448128944', '30.116534528265', 341700, 3, 'tr_0 tr_340000 tr_341700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341722, '石台县', '', 0, 0, 'S', '117.49239440959', '30.216530337189', 341700, 3, 'tr_0 tr_340000 tr_341700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341723, '青阳县', '', 0, 0, 'Q', '117.85343129914', '30.645634346235', 341700, 3, 'tr_0 tr_340000 tr_341700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341802, '宣州区', '', 0, 0, 'X', '118.76254944305', '30.952158157984', 341800, 3, 'tr_0 tr_340000 tr_341800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341821, '郎溪县', '', 0, 0, 'L', '119.18646592169', '31.132681870443', 341800, 3, 'tr_0 tr_340000 tr_341800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341822, '广德县', '', 0, 0, 'G', '119.42747581035', '30.883667102643', 341800, 3, 'tr_0 tr_340000 tr_341800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341823, '泾县', '', 0, 0, 'J', '118.42643469242', '30.694672488542', 341800, 3, 'tr_0 tr_340000 tr_341800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341824, '绩溪县', '', 0, 0, 'J', '118.58544384057', '30.073292199533', 341800, 3, 'tr_0 tr_340000 tr_341800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341825, '旌德县', '', 0, 0, 'J', '118.54646735263', '30.292481093722', 341800, 3, 'tr_0 tr_340000 tr_341800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341871, '宣城市经济开发区', '', 0, 0, 'X', '118.76553424277', '30.946601545293', 341800, 3, 'tr_0 tr_340000 tr_341800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341881, '宁国市', '', 0, 0, 'N', '118.98960981494', '30.639352229689', 341800, 3, 'tr_0 tr_340000 tr_341800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350102, '鼓楼区', '', 0, 0, 'G', '119.31049162322', '26.088114037555', 350100, 3, 'tr_0 tr_350000 tr_350100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350103, '台江区', '', 0, 0, 'T', '119.32052821102', '26.058528150645', 350100, 3, 'tr_0 tr_350000 tr_350100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350104, '仓山区', '', 0, 0, 'C', '119.28043216493', '26.052841691927', 350100, 3, 'tr_0 tr_350000 tr_350100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350105, '马尾区', '', 0, 0, 'M', '119.44551915828', '26.004533771063', 350100, 3, 'tr_0 tr_350000 tr_350100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350111, '晋安区', '', 0, 0, 'J', '119.33457941597', '26.087213904434', 350100, 3, 'tr_0 tr_350000 tr_350100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350112, '长乐区', '', 0, 0, 'Z', '119.52943832001', '25.969257448077', 350100, 3, 'tr_0 tr_350000 tr_350100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350121, '闽侯县', '', 0, 0, 'M', '119.13848201812', '26.156035214577', 350100, 3, 'tr_0 tr_350000 tr_350100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350122, '连江县', '', 0, 0, 'L', '119.54647881621', '26.203583291029', 350100, 3, 'tr_0 tr_350000 tr_350100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350123, '罗源县', '', 0, 0, 'L', '119.55648045992', '26.495495660324', 350100, 3, 'tr_0 tr_350000 tr_350100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350124, '闽清县', '', 0, 0, 'M', '118.86957650956', '26.226847540202', 350100, 3, 'tr_0 tr_350000 tr_350100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350125, '永泰县', '', 0, 0, 'Y', '118.93843072857', '25.872787263196', 350100, 3, 'tr_0 tr_350000 tr_350100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350128, '平潭县', '', 0, 0, 'P', '119.79650131414', '25.504700273945', 350100, 3, 'tr_0 tr_350000 tr_350100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350181, '福清市', '', 0, 0, 'F', '119.39046524749', '25.726343299035', 350100, 3, 'tr_0 tr_350000 tr_350100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350203, '思明区', '', 0, 0, 'S', '118.08840797224', '24.451948395671', 350200, 3, 'tr_0 tr_350000 tr_350200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350205, '海沧区', '', 0, 0, 'H', '118.03956171185', '24.490325818598', 350200, 3, 'tr_0 tr_350000 tr_350200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350206, '湖里区', '', 0, 0, 'H', '118.15358812172', '24.517573138112', 350200, 3, 'tr_0 tr_350000 tr_350200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350211, '集美区', '', 0, 0, 'J', '118.10343491664', '24.58201906225', 350200, 3, 'tr_0 tr_350000 tr_350200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350212, '同安区', '', 0, 0, 'T', '118.15856347661', '24.729113975347', 350200, 3, 'tr_0 tr_350000 tr_350200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350213, '翔安区', '', 0, 0, 'X', '118.25457589661', '24.624216383593', 350200, 3, 'tr_0 tr_350000 tr_350200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350302, '城厢区', '', 0, 0, 'C', '119.00153633131', '25.424343792482', 350300, 3, 'tr_0 tr_350000 tr_350300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350303, '涵江区', '', 0, 0, 'H', '119.12256736822', '25.464464388124', 350300, 3, 'tr_0 tr_350000 tr_350300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350304, '荔城区', '', 0, 0, 'L', '119.01948169064', '25.439754478806', 350300, 3, 'tr_0 tr_350000 tr_350300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350305, '秀屿区', '', 0, 0, 'X', '119.11157130031', '25.323654397561', 350300, 3, 'tr_0 tr_350000 tr_350300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350322, '仙游县', '', 0, 0, 'X', '118.69845425065', '25.368291498104', 350300, 3, 'tr_0 tr_350000 tr_350300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350402, '梅列区', '', 0, 0, 'M', '117.65255022877', '26.277335878355', 350400, 3, 'tr_0 tr_350000 tr_350400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350403, '三元区', '', 0, 0, 'S', '117.61441509378', '26.240219374574', 350400, 3, 'tr_0 tr_350000 tr_350400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350421, '明溪县', '', 0, 0, 'M', '117.20851763568', '26.361853685277', 350400, 3, 'tr_0 tr_350000 tr_350400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350423, '清流县', '', 0, 0, 'Q', '116.8235931858', '26.18335735321', 350400, 3, 'tr_0 tr_350000 tr_350400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350424, '宁化县', '', 0, 0, 'N', '116.660425512', '26.26795649054', 350400, 3, 'tr_0 tr_350000 tr_350400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350425, '大田县', '', 0, 0, 'D', '117.85343999668', '25.698932641879', 350400, 3, 'tr_0 tr_350000 tr_350400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350426, '尤溪县', '', 0, 0, 'Y', '118.19743971365', '26.17621803946', 350400, 3, 'tr_0 tr_350000 tr_350400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350427, '沙县', '', 0, 0, 'S', '117.79856107581', '26.402813444346', 350400, 3, 'tr_0 tr_350000 tr_350400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350428, '将乐县', '', 0, 0, 'J', '117.47740904084', '26.735209519833', 350400, 3, 'tr_0 tr_350000 tr_350400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350429, '泰宁县', '', 0, 0, 'T', '117.1825958624', '26.905660032285', 350400, 3, 'tr_0 tr_350000 tr_350400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350430, '建宁县', '', 0, 0, 'J', '116.85250622659', '26.836824655349', 350400, 3, 'tr_0 tr_350000 tr_350400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350481, '永安市', '', 0, 0, 'Y', '117.37144258732', '25.948143989824', 350400, 3, 'tr_0 tr_350000 tr_350400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350502, '鲤城区', '', 0, 0, 'L', '118.59348105353', '24.913354167054', 350500, 3, 'tr_0 tr_350000 tr_350500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350503, '丰泽区', '', 0, 0, 'F', '118.61958015232', '24.894969993262', 350500, 3, 'tr_0 tr_350000 tr_350500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350504, '洛江区', '', 0, 0, 'L', '118.67741629493', '24.94621365376', 350500, 3, 'tr_0 tr_350000 tr_350500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350505, '泉港区', '', 0, 0, 'Q', '118.92243298541', '25.139650393954', 350500, 3, 'tr_0 tr_350000 tr_350500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350521, '惠安县', '', 0, 0, 'H', '118.8034155003', '25.036949815039', 350500, 3, 'tr_0 tr_350000 tr_350500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350524, '安溪县', '', 0, 0, 'A', '118.19242537229', '25.061759553382', 350500, 3, 'tr_0 tr_350000 tr_350500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350525, '永春县', '', 0, 0, 'Y', '118.30048613527', '25.327974202083', 350500, 3, 'tr_0 tr_350000 tr_350500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350526, '德化县', '', 0, 0, 'D', '118.24755006956', '25.497308594179', 350500, 3, 'tr_0 tr_350000 tr_350500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350581, '石狮市', '', 0, 0, 'S', '118.65451902647', '24.737665160883', 350500, 3, 'tr_0 tr_350000 tr_350500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350582, '晋江市', '', 0, 0, 'J', '118.55843052', '24.787824575145', 350500, 3, 'tr_0 tr_350000 tr_350500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350583, '南安市', '', 0, 0, 'N', '118.39257197205', '24.966362350468', 350500, 3, 'tr_0 tr_350000 tr_350500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350602, '芗城区', '', 0, 0, 'X', '117.6605895241', '24.516268416111', 350600, 3, 'tr_0 tr_350000 tr_350600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350603, '龙文区', '', 0, 0, 'L', '117.7164546946', '24.509509680945', 350600, 3, 'tr_0 tr_350000 tr_350600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350622, '云霄县', '', 0, 0, 'Y', '117.34644831448', '23.964072828248', 350600, 3, 'tr_0 tr_350000 tr_350600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350623, '漳浦县', '', 0, 0, 'Z', '117.62044335257', '24.123461614812', 350600, 3, 'tr_0 tr_350000 tr_350600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350624, '诏安县', '', 0, 0, 'Z', '117.18255858272', '23.717053963784', 350600, 3, 'tr_0 tr_350000 tr_350600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350625, '长泰县', '', 0, 0, 'Z', '117.76555257036', '24.631243628383', 350600, 3, 'tr_0 tr_350000 tr_350600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350626, '东山县', '', 0, 0, 'D', '117.43656030457', '23.706894688691', 350600, 3, 'tr_0 tr_350000 tr_350600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350627, '南靖县', '', 0, 0, 'N', '117.36344641066', '24.52085173207', 350600, 3, 'tr_0 tr_350000 tr_350600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350628, '平和县', '', 0, 0, 'P', '117.32255159131', '24.368365040126', 350600, 3, 'tr_0 tr_350000 tr_350600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350629, '华安县', '', 0, 0, 'H', '117.54058560971', '25.010067731399', 350600, 3, 'tr_0 tr_350000 tr_350600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350681, '龙海市', '', 0, 0, 'L', '117.82445086941', '24.452939738547', 350600, 3, 'tr_0 tr_350000 tr_350600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350702, '延平区', '', 0, 0, 'Y', '118.18845055007', '26.643807791057', 350700, 3, 'tr_0 tr_350000 tr_350700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350703, '建阳区', '', 0, 0, 'J', '118.12752522464', '27.337502466188', 350700, 3, 'tr_0 tr_350000 tr_350700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350721, '顺昌县', '', 0, 0, 'S', '117.81651928091', '26.799104367214', 350700, 3, 'tr_0 tr_350000 tr_350700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350722, '浦城县', '', 0, 0, 'P', '118.54743912328', '27.923390046145', 350700, 3, 'tr_0 tr_350000 tr_350700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350723, '光泽县', '', 0, 0, 'G', '117.34048158963', '27.547272859205', 350700, 3, 'tr_0 tr_350000 tr_350700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350724, '松溪县', '', 0, 0, 'S', '118.79145438278', '27.532554907167', 350700, 3, 'tr_0 tr_350000 tr_350700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350725, '政和县', '', 0, 0, 'Z', '118.86358723724', '27.371749198234', 350700, 3, 'tr_0 tr_350000 tr_350700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350781, '邵武市', '', 0, 0, 'S', '117.4994195021', '27.346469966261', 350700, 3, 'tr_0 tr_350000 tr_350700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350782, '武夷山市', '', 0, 0, 'W', '118.04157715009', '27.762553910259', 350700, 3, 'tr_0 tr_350000 tr_350700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350783, '建瓯市', '', 0, 0, 'J', '118.31146073369', '27.028955089429', 350700, 3, 'tr_0 tr_350000 tr_350700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350802, '新罗区', '', 0, 0, 'X', '117.04354293052', '25.104077629635', 350800, 3, 'tr_0 tr_350000 tr_350800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350803, '永定区', '', 0, 0, 'Y', '116.89244722515', '24.869137411287', 350800, 3, 'tr_0 tr_350000 tr_350800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350821, '长汀县', '', 0, 0, 'Z', '116.36356796988', '25.83918461828', 350800, 3, 'tr_0 tr_350000 tr_350800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350823, '上杭县', '', 0, 0, 'S', '116.42644288776', '25.055570401525', 350800, 3, 'tr_0 tr_350000 tr_350800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350824, '武平县', '', 0, 0, 'W', '116.10758916743', '25.100855173343', 350800, 3, 'tr_0 tr_350000 tr_350800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350825, '连城县', '', 0, 0, 'L', '116.76044617118', '25.716337381852', 350800, 3, 'tr_0 tr_350000 tr_350800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350881, '漳平市', '', 0, 0, 'Z', '117.42655632526', '25.295743499252', 350800, 3, 'tr_0 tr_350000 tr_350800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341502, '金安区', '', 0, 0, 'J', '116.54543837997', '31.756287719901', 341500, 3, 'tr_0 tr_340000 tr_341500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341503, '裕安区', '', 0, 0, 'Y', '116.48654978261', '31.74362587083', 341500, 3, 'tr_0 tr_340000 tr_341500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341504, '叶集区', '', 0, 0, 'Y', '115.94747592742', '31.83526314225', 341500, 3, 'tr_0 tr_340000 tr_341500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341522, '霍邱县', '', 0, 0, 'H', '116.28439133776', '32.359343590922', 341500, 3, 'tr_0 tr_340000 tr_341500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341523, '舒城县', '', 0, 0, 'S', '116.95560171142', '31.467692010556', 341500, 3, 'tr_0 tr_340000 tr_341500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341524, '金寨县', '', 0, 0, 'J', '115.94044120714', '31.733461734381', 341500, 3, 'tr_0 tr_340000 tr_341500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341525, '霍山县', '', 0, 0, 'H', '116.33957586218', '31.398570812489', 341500, 3, 'tr_0 tr_340000 tr_341500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350902, '蕉城区', '', 0, 0, 'J', '119.53344242699', '26.666738555955', 350900, 3, 'tr_0 tr_350000 tr_350900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350921, '霞浦县', '', 0, 0, 'X', '120.01142710564', '26.891348873767', 350900, 3, 'tr_0 tr_350000 tr_350900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350922, '古田县', '', 0, 0, 'G', '118.75257823557', '26.583261752073', 350900, 3, 'tr_0 tr_350000 tr_350900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350923, '屏南县', '', 0, 0, 'P', '118.99259621521', '26.914264918059', 350900, 3, 'tr_0 tr_350000 tr_350900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350924, '寿宁县', '', 0, 0, 'S', '119.51142504878', '27.466649659969', 350900, 3, 'tr_0 tr_350000 tr_350900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350925, '周宁县', '', 0, 0, 'Z', '119.34556712964', '27.110239280448', 350900, 3, 'tr_0 tr_350000 tr_350900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350926, '柘荣县', '', 0, 0, 'Z', '119.90745668696', '27.239961876352', 350900, 3, 'tr_0 tr_350000 tr_350900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350981, '福安市', '', 0, 0, 'F', '119.65440636048', '27.09432350806', 350900, 3, 'tr_0 tr_350000 tr_350900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(350982, '福鼎市', '', 0, 0, 'F', '120.22345190932', '27.330524972528', 350900, 3, 'tr_0 tr_350000 tr_350900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'); +INSERT INTO `hg_sys_provinces` (`id`, `title`, `short_title`, `areacode`, `zipcode`, `pinyin`, `lng`, `lat`, `pid`, `level`, `tree`, `sort`, `status`, `created_at`, `updated_at`) VALUES +(360102, '东湖区', '', 0, 0, 'D', '115.90546602606', '28.691259179775', 360100, 3, 'tr_0 tr_360000 tr_360100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360103, '西湖区', '', 0, 0, 'X', '115.88353569365', '28.661976709901', 360100, 3, 'tr_0 tr_360000 tr_360100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360104, '青云谱区', '', 0, 0, 'Q', '115.93141618579', '28.627235736484', 360100, 3, 'tr_0 tr_360000 tr_360100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360105, '湾里区', '', 0, 0, 'W', '115.73759563309', '28.720195384308', 360100, 3, 'tr_0 tr_360000 tr_360100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360111, '青山湖区', '', 0, 0, 'Q', '115.96855240505', '28.687596006173', 360100, 3, 'tr_0 tr_360000 tr_360100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360112, '新建区', '', 0, 0, 'X', '115.8214509253', '28.698748625155', 360100, 3, 'tr_0 tr_360000 tr_360100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360121, '南昌县', '', 0, 0, 'N', '115.95046017277', '28.551604186108', 360100, 3, 'tr_0 tr_360000 tr_360100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360123, '安义县', '', 0, 0, 'A', '115.55544146387', '28.850794273751', 360100, 3, 'tr_0 tr_360000 tr_360100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360124, '进贤县', '', 0, 0, 'J', '116.24853779343', '28.382758944474', 360100, 3, 'tr_0 tr_360000 tr_360100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360202, '昌江区', '', 0, 0, 'C', '117.19057910346', '29.27885446447', 360200, 3, 'tr_0 tr_360000 tr_360200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360203, '珠山区', '', 0, 0, 'Z', '117.20954826159', '29.305778220374', 360200, 3, 'tr_0 tr_360000 tr_360200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360222, '浮梁县', '', 0, 0, 'F', '117.22146608079', '29.357788237529', 360200, 3, 'tr_0 tr_360000 tr_360200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360281, '乐平市', '', 0, 0, 'L', '117.15851067473', '28.984363669039', 360200, 3, 'tr_0 tr_360000 tr_360200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360302, '安源区', '', 0, 0, 'A', '113.87743991926', '27.621307703862', 360300, 3, 'tr_0 tr_360000 tr_360300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360313, '湘东区', '', 0, 0, 'X', '113.74049971211', '27.645875074875', 360300, 3, 'tr_0 tr_360000 tr_360300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360321, '莲花县', '', 0, 0, 'L', '113.96854067422', '27.133462711028', 360300, 3, 'tr_0 tr_360000 tr_360300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360322, '上栗县', '', 0, 0, 'S', '113.80153822404', '27.886415692068', 360300, 3, 'tr_0 tr_360000 tr_360300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360323, '芦溪县', '', 0, 0, 'L', '114.03651940468', '27.6366047187', 360300, 3, 'tr_0 tr_360000 tr_360300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360402, '濂溪区', '', 0, 0, 'L', '116.00753491163', '29.711340559079', 360400, 3, 'tr_0 tr_360000 tr_360400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360403, '浔阳区', '', 0, 0, 'X', '115.99655806746', '29.733093751939', 360400, 3, 'tr_0 tr_360000 tr_360400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360404, '柴桑区', '', 0, 0, 'C', '115.91740154188', '29.614804909379', 360400, 3, 'tr_0 tr_360000 tr_360400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360423, '武宁县', '', 0, 0, 'W', '115.10744177399', '29.2623521507', 360400, 3, 'tr_0 tr_360000 tr_360400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360424, '修水县', '', 0, 0, 'X', '114.55356797639', '29.031175867959', 360400, 3, 'tr_0 tr_360000 tr_360400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360425, '永修县', '', 0, 0, 'Y', '115.81540658685', '29.028005616261', 360400, 3, 'tr_0 tr_360000 tr_360400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360426, '德安县', '', 0, 0, 'D', '115.76257795847', '29.319172496312', 360400, 3, 'tr_0 tr_360000 tr_360400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360428, '都昌县', '', 0, 0, 'D', '116.21055204665', '29.278965044767', 360400, 3, 'tr_0 tr_360000 tr_360400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360429, '湖口县', '', 0, 0, 'H', '116.25847134559', '29.737131514562', 360400, 3, 'tr_0 tr_360000 tr_360400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360430, '彭泽县', '', 0, 0, 'P', '116.55550980644', '29.902122004906', 360400, 3, 'tr_0 tr_360000 tr_360400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360481, '瑞昌市', '', 0, 0, 'R', '115.68742967207', '29.681951286531', 360400, 3, 'tr_0 tr_360000 tr_360400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360482, '共青城市', '', 0, 0, 'G', '115.82142002359', '29.248741173716', 360400, 3, 'tr_0 tr_360000 tr_360400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360483, '庐山市', '', 0, 0, 'L', '116.05142593917', '29.454539165717', 360400, 3, 'tr_0 tr_360000 tr_360400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360502, '渝水区', '', 0, 0, 'Y', '114.9514238934', '27.806839650444', 360500, 3, 'tr_0 tr_360000 tr_360500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360521, '分宜县', '', 0, 0, 'F', '114.69847247036', '27.820731344374', 360500, 3, 'tr_0 tr_360000 tr_360500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360602, '月湖区', '', 0, 0, 'Y', '117.04354760171', '28.245078331555', 360600, 3, 'tr_0 tr_360000 tr_360600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360603, '余江区', '', 0, 0, 'Y', '116.82459362864', '28.215353761359', 360600, 3, 'tr_0 tr_360000 tr_360600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360681, '贵溪市', '', 0, 0, 'G', '117.25139869833', '28.298735072105', 360600, 3, 'tr_0 tr_360000 tr_360600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360702, '章贡区', '', 0, 0, 'Z', '114.9275508855', '25.823747013882', 360700, 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360703, '南康区', '', 0, 0, 'N', '114.77153821509', '25.66705293056', 360700, 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360704, '赣县区', '', 0, 0, 'G', '115.01857016415', '25.866384616621', 360700, 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360722, '信丰县', '', 0, 0, 'X', '114.92952113897', '25.391975120014', 360700, 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360723, '大余县', '', 0, 0, 'D', '114.36840663965', '25.407637298367', 360700, 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360724, '上犹县', '', 0, 0, 'S', '114.55854863129', '25.790518799476', 360700, 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360725, '崇义县', '', 0, 0, 'C', '114.31457244808', '25.687687192664', 360700, 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360726, '安远县', '', 0, 0, 'A', '115.40055913129', '25.142743431732', 360700, 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360727, '龙南县', '', 0, 0, 'L', '114.79655413709', '24.916599461157', 360700, 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360728, '定南县', '', 0, 0, 'D', '115.0345637751', '24.789783831846', 360700, 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360729, '全南县', '', 0, 0, 'Q', '114.53658236666', '24.748206354967', 360700, 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360730, '宁都县', '', 0, 0, 'N', '116.01549443743', '26.47597950334', 360700, 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360731, '于都县', '', 0, 0, 'Y', '115.42149926153', '25.957893942751', 360700, 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360732, '兴国县', '', 0, 0, 'X', '115.36955169119', '26.343882588243', 360700, 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360733, '会昌县', '', 0, 0, 'H', '115.79245964209', '25.606661833811', 360700, 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360734, '寻乌县', '', 0, 0, 'X', '115.65351531535', '24.96944654678', 360700, 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360735, '石城县', '', 0, 0, 'S', '116.35259426977', '26.318972346784', 360700, 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360781, '瑞金市', '', 0, 0, 'R', '116.03342066286', '25.891666273953', 360700, 3, 'tr_0 tr_360000 tr_360700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360802, '吉州区', '', 0, 0, 'J', '115.00153936965', '27.149314993877', 360800, 3, 'tr_0 tr_360000 tr_360800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360803, '青原区', '', 0, 0, 'Q', '115.02156071302', '27.087662535191', 360800, 3, 'tr_0 tr_360000 tr_360800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360821, '吉安县', '', 0, 0, 'J', '114.9145913014', '27.044989078994', 360800, 3, 'tr_0 tr_360000 tr_360800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360822, '吉水县', '', 0, 0, 'J', '115.14256983128', '27.235259745039', 360800, 3, 'tr_0 tr_360000 tr_360800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360823, '峡江县', '', 0, 0, 'X', '115.32240322821', '27.588234617615', 360800, 3, 'tr_0 tr_360000 tr_360800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360824, '新干县', '', 0, 0, 'X', '115.39359474833', '27.746080951713', 360800, 3, 'tr_0 tr_360000 tr_360800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360825, '永丰县', '', 0, 0, 'Y', '115.44740243989', '27.324342103714', 360800, 3, 'tr_0 tr_360000 tr_360800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360826, '泰和县', '', 0, 0, 'T', '114.91559111544', '26.795697341165', 360800, 3, 'tr_0 tr_360000 tr_360800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360827, '遂川县', '', 0, 0, 'S', '114.52756212171', '26.319517284146', 360800, 3, 'tr_0 tr_360000 tr_360800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360828, '万安县', '', 0, 0, 'W', '114.79257715894', '26.464072836341', 360800, 3, 'tr_0 tr_360000 tr_360800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360829, '安福县', '', 0, 0, 'A', '114.62647813461', '27.399076477105', 360800, 3, 'tr_0 tr_360000 tr_360800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360830, '永新县', '', 0, 0, 'Y', '114.2494149359', '26.951537256563', 360800, 3, 'tr_0 tr_360000 tr_360800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360881, '井冈山市', '', 0, 0, 'J', '114.29555585942', '26.753709741566', 360800, 3, 'tr_0 tr_360000 tr_360800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360902, '袁州区', '', 0, 0, 'Y', '114.43456118111', '27.802582705304', 360900, 3, 'tr_0 tr_360000 tr_360900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360921, '奉新县', '', 0, 0, 'F', '115.40655109853', '28.694028951458', 360900, 3, 'tr_0 tr_360000 tr_360900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360922, '万载县', '', 0, 0, 'W', '114.45253654385', '28.112133306116', 360900, 3, 'tr_0 tr_360000 tr_360900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360923, '上高县', '', 0, 0, 'S', '114.93154115857', '28.238815490252', 360900, 3, 'tr_0 tr_360000 tr_360900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360924, '宜丰县', '', 0, 0, 'Y', '114.80951713475', '28.400373307265', 360900, 3, 'tr_0 tr_360000 tr_360900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360925, '靖安县', '', 0, 0, 'J', '115.36955312848', '28.867081916186', 360900, 3, 'tr_0 tr_360000 tr_360900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360926, '铜鼓县', '', 0, 0, 'T', '114.37741107441', '28.52708345654', 360900, 3, 'tr_0 tr_360000 tr_360900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360981, '丰城市', '', 0, 0, 'F', '115.77747842145', '28.166614024369', 360900, 3, 'tr_0 tr_360000 tr_360900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360982, '樟树市', '', 0, 0, 'Z', '115.55241893533', '28.062153117648', 360900, 3, 'tr_0 tr_360000 tr_360900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(360983, '高安市', '', 0, 0, 'G', '115.38256535328', '28.422857002119', 360900, 3, 'tr_0 tr_360000 tr_360900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(361002, '临川区', '', 0, 0, 'L', '116.31848983161', '27.940458992864', 361000, 3, 'tr_0 tr_360000 tr_361000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(361003, '东乡区', '', 0, 0, 'D', '116.60954171505', '28.253977397999', 361000, 3, 'tr_0 tr_360000 tr_361000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(361021, '南城县', '', 0, 0, 'N', '116.64339884971', '27.57624096656', 361000, 3, 'tr_0 tr_360000 tr_361000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(361022, '黎川县', '', 0, 0, 'L', '116.91450700338', '27.288340234831', 361000, 3, 'tr_0 tr_360000 tr_361000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(361023, '南丰县', '', 0, 0, 'N', '116.53140350859', '27.224733524876', 361000, 3, 'tr_0 tr_360000 tr_361000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(361024, '崇仁县', '', 0, 0, 'C', '116.08354898488', '27.759079756014', 361000, 3, 'tr_0 tr_360000 tr_361000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(361025, '乐安县', '', 0, 0, 'L', '115.83749627865', '27.434079864498', 361000, 3, 'tr_0 tr_360000 tr_361000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(361026, '宜黄县', '', 0, 0, 'Y', '116.24254169398', '27.5605634607', 361000, 3, 'tr_0 tr_360000 tr_361000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(361027, '金溪县', '', 0, 0, 'J', '116.76040404065', '27.925329188976', 361000, 3, 'tr_0 tr_360000 tr_361000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(361028, '资溪县', '', 0, 0, 'Z', '117.06657027361', '27.711845785732', 361000, 3, 'tr_0 tr_360000 tr_361000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(361030, '广昌县', '', 0, 0, 'G', '116.34256064638', '26.848454446681', 361000, 3, 'tr_0 tr_360000 tr_361000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(361102, '信州区', '', 0, 0, 'X', '117.97341184157', '28.437628311', 361100, 3, 'tr_0 tr_360000 tr_361100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(361103, '广丰区', '', 0, 0, 'G', '118.19742022042', '28.442615061205', 361100, 3, 'tr_0 tr_360000 tr_361100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(361121, '上饶县', '', 0, 0, 'S', '117.91558441252', '28.45418687477', 361100, 3, 'tr_0 tr_360000 tr_361100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(361123, '玉山县', '', 0, 0, 'Y', '118.2515628901', '28.687749687317', 361100, 3, 'tr_0 tr_360000 tr_361100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(361124, '铅山县', '', 0, 0, 'Q', '117.71642163695', '28.321504694791', 361100, 3, 'tr_0 tr_360000 tr_361100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(361125, '横峰县', '', 0, 0, 'H', '117.60239738302', '28.413440462384', 361100, 3, 'tr_0 tr_360000 tr_361100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(361126, '弋阳县', '', 0, 0, 'Y', '117.45550637624', '28.384082001231', 361100, 3, 'tr_0 tr_360000 tr_361100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(361127, '余干县', '', 0, 0, 'Y', '116.70160096199', '28.707866244419', 361100, 3, 'tr_0 tr_360000 tr_361100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(361128, '鄱阳县', '', 0, 0, 'P', '116.7105661408', '29.011452830922', 361100, 3, 'tr_0 tr_360000 tr_361100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(361129, '万年县', '', 0, 0, 'W', '117.06459894217', '28.700054054129', 361100, 3, 'tr_0 tr_360000 tr_361100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(361130, '婺源县', '', 0, 0, 'W', '117.86844502243', '29.254039048097', 361100, 3, 'tr_0 tr_360000 tr_361100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(361181, '德兴市', '', 0, 0, 'D', '117.58547968518', '28.952564863028', 361100, 3, 'tr_0 tr_360000 tr_361100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341602, '谯城区', '', 0, 0, 'Q', '115.78547191853', '33.882663087443', 341600, 3, 'tr_0 tr_340000 tr_341600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341621, '涡阳县', '', 0, 0, 'W', '116.22160903516', '33.498566835004', 341600, 3, 'tr_0 tr_340000 tr_341600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341622, '蒙城县', '', 0, 0, 'M', '116.57158940083', '33.271658239674', 341600, 3, 'tr_0 tr_340000 tr_341600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(341623, '利辛县', '', 0, 0, 'L', '116.1914935226', '33.155595841529', 341600, 3, 'tr_0 tr_340000 tr_341600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370102, '历下区', '', 0, 0, 'L', '117.0825673139', '36.672162950043', 370100, 3, 'tr_0 tr_370000 tr_370100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370103, '市中区', '', 0, 0, 'S', '117.00439910401', '36.657551673642', 370100, 3, 'tr_0 tr_370000 tr_370100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370104, '槐荫区', '', 0, 0, 'H', '116.90745837507', '36.657561734426', 370100, 3, 'tr_0 tr_370000 tr_370100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370105, '天桥区', '', 0, 0, 'T', '116.99339917338', '36.684067874353', 370100, 3, 'tr_0 tr_370000 tr_370100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370112, '历城区', '', 0, 0, 'L', '117.07158975107', '36.685655534711', 370100, 3, 'tr_0 tr_370000 tr_370100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370113, '长清区', '', 0, 0, 'Z', '116.75838709095', '36.56021587991', 370100, 3, 'tr_0 tr_370000 tr_370100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370114, '章丘区', '', 0, 0, 'Z', '117.53256537437', '36.68553275142', 370100, 3, 'tr_0 tr_370000 tr_370100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370115, '济阳区', '', 0, 0, 'J', '117.18062113319', '36.983970518315', 370100, 3, 'tr_0 tr_370000 tr_370100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370124, '平阴县', '', 0, 0, 'P', '116.46261667806', '36.294861321066', 370100, 3, 'tr_0 tr_370000 tr_370100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370126, '商河县', '', 0, 0, 'S', '117.1635297929', '37.314970715556', 370100, 3, 'tr_0 tr_370000 tr_370100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370171, '济南高新技术产业开发区', '', 0, 0, 'J', '117.12639941261', '36.656554201787', 370100, 3, 'tr_0 tr_370000 tr_370100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370202, '市南区', '', 0, 0, 'S', '120.41858472358', '36.081465640234', 370200, 3, 'tr_0 tr_370000 tr_370200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370203, '市北区', '', 0, 0, 'S', '120.38140448734', '36.09344959486', 370200, 3, 'tr_0 tr_370000 tr_370200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370211, '黄岛区', '', 0, 0, 'H', '120.20454654768', '35.966382870945', 370200, 3, 'tr_0 tr_370000 tr_370200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370212, '崂山区', '', 0, 0, 'L', '120.47539724708', '36.113499423971', 370200, 3, 'tr_0 tr_370000 tr_370200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370213, '李沧区', '', 0, 0, 'L', '120.43960282675', '36.151024667784', 370200, 3, 'tr_0 tr_370000 tr_370200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370214, '城阳区', '', 0, 0, 'C', '120.40252679394', '36.31288619735', 370200, 3, 'tr_0 tr_370000 tr_370200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370215, '即墨区', '', 0, 0, 'J', '120.45353617402', '36.394749170322', 370200, 3, 'tr_0 tr_370000 tr_370200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370271, '青岛高新技术产业开发区', '', 0, 0, 'Q', '120.44085344768', '36.124685571214', 370200, 3, 'tr_0 tr_370000 tr_370200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370281, '胶州市', '', 0, 0, 'J', '120.03953537127', '36.270349088049', 370200, 3, 'tr_0 tr_370000 tr_370200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370283, '平度市', '', 0, 0, 'P', '119.99441429398', '36.782692254089', 370200, 3, 'tr_0 tr_370000 tr_370200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370285, '莱西市', '', 0, 0, 'L', '120.52455620764', '36.893956298026', 370200, 3, 'tr_0 tr_370000 tr_370200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370302, '淄川区', '', 0, 0, 'Z', '117.97341185763', '36.649834806022', 370300, 3, 'tr_0 tr_370000 tr_370300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370303, '张店区', '', 0, 0, 'Z', '118.02459110728', '36.811941952144', 370300, 3, 'tr_0 tr_370000 tr_370300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370304, '博山区', '', 0, 0, 'B', '117.86846875372', '36.500847855131', 370300, 3, 'tr_0 tr_370000 tr_370300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370305, '临淄区', '', 0, 0, 'L', '118.31539460935', '36.832293635152', 370300, 3, 'tr_0 tr_370000 tr_370300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370306, '周村区', '', 0, 0, 'Z', '117.87648217785', '36.808994352212', 370300, 3, 'tr_0 tr_370000 tr_370300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370321, '桓台县', '', 0, 0, 'H', '118.10443420779', '36.965607980118', 370300, 3, 'tr_0 tr_370000 tr_370300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370322, '高青县', '', 0, 0, 'G', '117.83339432525', '37.177268654333', 370300, 3, 'tr_0 tr_370000 tr_370300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370323, '沂源县', '', 0, 0, 'Y', '118.17748944237', '36.190916985848', 370300, 3, 'tr_0 tr_370000 tr_370300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370402, '市中区', '', 0, 0, 'S', '117.56256581399', '34.86996272507', 370400, 3, 'tr_0 tr_370000 tr_370400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370403, '薛城区', '', 0, 0, 'X', '117.26945761931', '34.801124568639', 370400, 3, 'tr_0 tr_370000 tr_370400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370404, '峄城区', '', 0, 0, 'Y', '117.59639060967', '34.778599873011', 370400, 3, 'tr_0 tr_370000 tr_370400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370405, '台儿庄区', '', 0, 0, 'T', '117.74042545412', '34.568763215633', 370400, 3, 'tr_0 tr_370000 tr_370400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370406, '山亭区', '', 0, 0, 'S', '117.46744316558', '35.105691980765', 370400, 3, 'tr_0 tr_370000 tr_370400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370481, '滕州市', '', 0, 0, 'T', '117.17256521921', '35.120034809574', 370400, 3, 'tr_0 tr_370000 tr_370400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370502, '东营区', '', 0, 0, 'D', '118.58846268607', '37.454847320166', 370500, 3, 'tr_0 tr_370000 tr_370500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370503, '河口区', '', 0, 0, 'H', '118.53250516975', '37.891120201056', 370500, 3, 'tr_0 tr_370000 tr_370500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370505, '垦利区', '', 0, 0, 'K', '118.58143173867', '37.578555133809', 370500, 3, 'tr_0 tr_370000 tr_370500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370522, '利津县', '', 0, 0, 'L', '118.26161799914', '37.495860299031', 370500, 3, 'tr_0 tr_370000 tr_370500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370523, '广饶县', '', 0, 0, 'G', '118.41349864392', '37.059638498906', 370500, 3, 'tr_0 tr_370000 tr_370500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370571, '东营经济技术开发区', '', 0, 0, 'D', '118.58846268607', '37.454847320166', 370500, 3, 'tr_0 tr_370000 tr_370500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370572, '东营港经济开发区', '', 0, 0, 'D', '118.96520739607', '38.098236253355', 370500, 3, 'tr_0 tr_370000 tr_370500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370602, '芝罘区', '', 0, 0, 'Z', '121.40654004549', '37.546312866891', 370600, 3, 'tr_0 tr_370000 tr_370600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370611, '福山区', '', 0, 0, 'F', '121.27460474744', '37.503668228451', 370600, 3, 'tr_0 tr_370000 tr_370600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370612, '牟平区', '', 0, 0, 'M', '121.60654911474', '37.392915451796', 370600, 3, 'tr_0 tr_370000 tr_370600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370613, '莱山区', '', 0, 0, 'L', '121.4513806718', '37.517648584109', 370600, 3, 'tr_0 tr_370000 tr_370600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370634, '长岛县', '', 0, 0, 'Z', '120.74342978244', '37.927628387579', 370600, 3, 'tr_0 tr_370000 tr_370600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370671, '烟台高新技术产业开发区', '', 0, 0, 'Y', '121.4544154173', '37.470038383731', 370600, 3, 'tr_0 tr_370000 tr_370600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370672, '烟台经济技术开发区', '', 0, 0, 'Y', '121.12513892753', '37.636399945094', 370600, 3, 'tr_0 tr_370000 tr_370600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370681, '龙口市', '', 0, 0, 'L', '120.48536852807', '37.652555125496', 370600, 3, 'tr_0 tr_370000 tr_370600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370682, '莱阳市', '', 0, 0, 'L', '120.71841430958', '36.984635568304', 370600, 3, 'tr_0 tr_370000 tr_370600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370683, '莱州市', '', 0, 0, 'L', '119.94859307737', '37.182636609074', 370600, 3, 'tr_0 tr_370000 tr_370600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370684, '蓬莱市', '', 0, 0, 'P', '120.76556151495', '37.816438725969', 370600, 3, 'tr_0 tr_370000 tr_370600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370685, '招远市', '', 0, 0, 'Z', '120.44060165265', '37.361137142566', 370600, 3, 'tr_0 tr_370000 tr_370600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370686, '栖霞市', '', 0, 0, 'Q', '120.85641658338', '37.3414181648', 370600, 3, 'tr_0 tr_370000 tr_370600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370687, '海阳市', '', 0, 0, 'H', '121.18045819779', '36.693269738228', 370600, 3, 'tr_0 tr_370000 tr_370600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370702, '潍城区', '', 0, 0, 'W', '119.03142854152', '36.73285441557', 370700, 3, 'tr_0 tr_370000 tr_370700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370703, '寒亭区', '', 0, 0, 'H', '119.22661514747', '36.780743786201', 370700, 3, 'tr_0 tr_370000 tr_370700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370704, '坊子区', '', 0, 0, 'F', '119.17240097265', '36.660741599701', 370700, 3, 'tr_0 tr_370000 tr_370700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370705, '奎文区', '', 0, 0, 'K', '119.13947052995', '36.712752014046', 370700, 3, 'tr_0 tr_370000 tr_370700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370724, '临朐县', '', 0, 0, 'L', '118.54944999641', '36.519129501828', 370700, 3, 'tr_0 tr_370000 tr_370700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370725, '昌乐县', '', 0, 0, 'C', '118.83648798144', '36.712996190845', 370700, 3, 'tr_0 tr_370000 tr_370700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370772, '潍坊滨海经济技术开发区', '', 0, 0, 'W', '119.16837791143', '36.712651551268', 370700, 3, 'tr_0 tr_370000 tr_370700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370781, '青州市', '', 0, 0, 'Q', '118.48653672087', '36.690416508705', 370700, 3, 'tr_0 tr_370000 tr_370700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370782, '诸城市', '', 0, 0, 'Z', '119.41640221867', '36.002008858076', 370700, 3, 'tr_0 tr_370000 tr_370700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370783, '寿光市', '', 0, 0, 'S', '118.79741537481', '36.861921746471', 370700, 3, 'tr_0 tr_370000 tr_370700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370784, '安丘市', '', 0, 0, 'A', '119.22560751818', '36.483842195596', 370700, 3, 'tr_0 tr_370000 tr_370700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370785, '高密市', '', 0, 0, 'G', '119.76241099602', '36.388956706465', 370700, 3, 'tr_0 tr_370000 tr_370700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370786, '昌邑市', '', 0, 0, 'C', '119.40440597739', '36.865161072622', 370700, 3, 'tr_0 tr_370000 tr_370700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370811, '任城区', '', 0, 0, 'R', '116.55446985374', '35.49373064026', 370800, 3, 'tr_0 tr_370000 tr_370800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370812, '兖州区', '', 0, 0, 'Y', '116.79011515173', '35.557952373283', 370800, 3, 'tr_0 tr_370000 tr_370800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370826, '微山县', '', 0, 0, 'W', '117.13541381857', '34.813315104239', 370800, 3, 'tr_0 tr_370000 tr_370800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370827, '鱼台县', '', 0, 0, 'Y', '116.65739284822', '35.017887717823', 370800, 3, 'tr_0 tr_370000 tr_370800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370828, '金乡县', '', 0, 0, 'J', '116.31852982171', '35.072569118665', 370800, 3, 'tr_0 tr_370000 tr_370800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370829, '嘉祥县', '', 0, 0, 'J', '116.34861308511', '35.413255044102', 370800, 3, 'tr_0 tr_370000 tr_370800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370830, '汶上县', '', 0, 0, 'W', '116.50544105765', '35.717055392628', 370800, 3, 'tr_0 tr_370000 tr_370800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370831, '泗水县', '', 0, 0, 'S', '117.25742858989', '35.670600481228', 370800, 3, 'tr_0 tr_370000 tr_370800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370832, '梁山县', '', 0, 0, 'L', '116.10262029578', '35.808063886611', 370800, 3, 'tr_0 tr_370000 tr_370800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370871, '济宁高新技术产业开发区', '', 0, 0, 'J', '116.59361234854', '35.42017739453', 370800, 3, 'tr_0 tr_370000 tr_370800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370881, '曲阜市', '', 0, 0, 'Q', '116.99341597169', '35.587372286488', 370800, 3, 'tr_0 tr_370000 tr_370800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370883, '邹城市', '', 0, 0, 'Z', '117.01440416129', '35.40752093245', 370800, 3, 'tr_0 tr_370000 tr_370800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370902, '泰山区', '', 0, 0, 'T', '117.14141108582', '36.199444601195', 370900, 3, 'tr_0 tr_370000 tr_370900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370911, '岱岳区', '', 0, 0, 'D', '117.04855647915', '36.193291242291', 370900, 3, 'tr_0 tr_370000 tr_370900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370921, '宁阳县', '', 0, 0, 'N', '116.81257853863', '35.764539097344', 370900, 3, 'tr_0 tr_370000 tr_370900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370923, '东平县', '', 0, 0, 'D', '116.47759421565', '35.941908015019', 370900, 3, 'tr_0 tr_370000 tr_370900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370982, '新泰市', '', 0, 0, 'X', '117.77460624827', '35.914619866588', 370900, 3, 'tr_0 tr_370000 tr_370900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(370983, '肥城市', '', 0, 0, 'F', '116.77540081764', '36.188811224315', 370900, 3, 'tr_0 tr_370000 tr_370900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371002, '环翠区', '', 0, 0, 'H', '122.12953818095', '37.507968071219', 371000, 3, 'tr_0 tr_370000 tr_371000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371003, '文登区', '', 0, 0, 'W', '122.06442836878', '37.200113328316', 371000, 3, 'tr_0 tr_370000 tr_371000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371071, '威海火炬高技术产业开发区', '', 0, 0, 'W', '122.12754097831', '37.516430548015', 371000, 3, 'tr_0 tr_370000 tr_371000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371072, '威海经济技术开发区', '', 0, 0, 'W', '122.18792776961', '37.412757933019', 371000, 3, 'tr_0 tr_370000 tr_371000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371073, '威海临港经济技术开发区', '', 0, 0, 'W', '122.12754097831', '37.516430548015', 371000, 3, 'tr_0 tr_370000 tr_371000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371082, '荣成市', '', 0, 0, 'R', '122.49250463074', '37.171317939253', 371000, 3, 'tr_0 tr_370000 tr_371000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371083, '乳山市', '', 0, 0, 'R', '121.5464285812', '36.925177357878', 371000, 3, 'tr_0 tr_370000 tr_371000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371102, '东港区', '', 0, 0, 'D', '119.46862431118', '35.431049003942', 371100, 3, 'tr_0 tr_370000 tr_371100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371103, '岚山区', '', 0, 0, 'L', '119.32553044175', '35.127432330052', 371100, 3, 'tr_0 tr_370000 tr_371100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371121, '五莲县', '', 0, 0, 'W', '119.21558036259', '35.755697104104', 371100, 3, 'tr_0 tr_370000 tr_371100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371122, '莒县', '', 0, 0, 'J', '118.8435382424', '35.585872122989', 371100, 3, 'tr_0 tr_370000 tr_371100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371171, '日照经济技术开发区', '', 0, 0, 'R', '119.53341540457', '35.422838998438', 371100, 3, 'tr_0 tr_370000 tr_371100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371202, '莱城区', '', 0, 0, 'L', '117.6459130158', '36.313394584932', 371200, 3, 'tr_0 tr_370000 tr_371200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371203, '钢城区', '', 0, 0, 'G', '117.8275371813', '36.092835887233', 371200, 3, 'tr_0 tr_370000 tr_371200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371302, '兰山区', '', 0, 0, 'L', '118.35449973464', '35.057340229806', 371300, 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371311, '罗庄区', '', 0, 0, 'L', '118.29151252855', '35.002503733433', 371300, 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371312, '河东区', '', 0, 0, 'H', '118.40954744713', '35.095675536824', 371300, 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371321, '沂南县', '', 0, 0, 'Y', '118.47149154086', '35.55609766695', 371300, 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371322, '郯城县', '', 0, 0, 'T', '118.37358710977', '34.619225932471', 371300, 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371323, '沂水县', '', 0, 0, 'Y', '118.63461726385', '35.796180584718', 371300, 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371324, '兰陵县', '', 0, 0, 'L', '118.07740949499', '34.86361638544', 371300, 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371325, '费县', '', 0, 0, 'F', '117.98442508318', '35.272304128517', 371300, 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371326, '平邑县', '', 0, 0, 'P', '117.64654058086', '35.51201963664', 371300, 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371327, '莒南县', '', 0, 0, 'J', '118.84154077027', '35.180811631788', 371300, 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371328, '蒙阴县', '', 0, 0, 'M', '117.95141460145', '35.716347166232', 371300, 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371329, '临沭县', '', 0, 0, 'L', '118.6574945001', '34.926018591491', 371300, 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371371, '临沂高新技术产业开发区', '', 0, 0, 'L', '118.27105074598', '34.991223857705', 371300, 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371372, '临沂经济技术开发区', '', 0, 0, 'L', '118.41614315832', '35.028440855401', 371300, 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371373, '临沂临港经济开发区', '', 0, 0, 'L', '119.09098821173', '35.192676079483', 371300, 3, 'tr_0 tr_370000 tr_371300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371402, '德城区', '', 0, 0, 'D', '116.30544896637', '37.456993283021', 371400, 3, 'tr_0 tr_370000 tr_371400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371403, '陵城区', '', 0, 0, 'L', '116.58940001434', '37.347132434581', 371400, 3, 'tr_0 tr_370000 tr_371400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371422, '宁津县', '', 0, 0, 'N', '116.80653761374', '37.658018745855', 371400, 3, 'tr_0 tr_370000 tr_371400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371423, '庆云县', '', 0, 0, 'Q', '117.39145244825', '37.781585318857', 371400, 3, 'tr_0 tr_370000 tr_371400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371424, '临邑县', '', 0, 0, 'L', '116.87340370302', '37.196169366727', 371400, 3, 'tr_0 tr_370000 tr_371400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371425, '齐河县', '', 0, 0, 'Q', '116.76938747073', '36.78994480667', 371400, 3, 'tr_0 tr_370000 tr_371400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371426, '平原县', '', 0, 0, 'P', '116.44050470827', '37.171221463312', 371400, 3, 'tr_0 tr_370000 tr_371400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371427, '夏津县', '', 0, 0, 'X', '116.00853411226', '36.954154863323', 371400, 3, 'tr_0 tr_370000 tr_371400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371428, '武城县', '', 0, 0, 'W', '116.07550629142', '37.219222080288', 371400, 3, 'tr_0 tr_370000 tr_371400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371471, '德州经济技术开发区', '', 0, 0, 'D', '116.36555674397', '37.441308454576', 371400, 3, 'tr_0 tr_370000 tr_371400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371472, '德州运河经济开发区', '', 0, 0, 'D', '116.36555674397', '37.441308454576', 371400, 3, 'tr_0 tr_370000 tr_371400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371481, '乐陵市', '', 0, 0, 'L', '117.23840643173', '37.73592450081', 371400, 3, 'tr_0 tr_370000 tr_371400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371482, '禹城市', '', 0, 0, 'Y', '116.64437110138', '36.940242008766', 371400, 3, 'tr_0 tr_370000 tr_371400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371502, '东昌府区', '', 0, 0, 'D', '115.99458657176', '36.440377840732', 371500, 3, 'tr_0 tr_370000 tr_371500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371521, '阳谷县', '', 0, 0, 'Y', '115.79839557041', '36.120815514687', 371500, 3, 'tr_0 tr_370000 tr_371500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371522, '莘县', '', 0, 0, 'S', '115.67739687246', '36.239907120546', 371500, 3, 'tr_0 tr_370000 tr_371500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371523, '茌平县', '', 0, 0, 'C', '116.26145544215', '36.586785068842', 371500, 3, 'tr_0 tr_370000 tr_371500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371524, '东阿县', '', 0, 0, 'D', '116.25449294564', '36.340957707761', 371500, 3, 'tr_0 tr_370000 tr_371500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371525, '冠县', '', 0, 0, 'G', '115.44939579504', '36.490243225394', 371500, 3, 'tr_0 tr_370000 tr_371500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371526, '高唐县', '', 0, 0, 'G', '116.23560427568', '36.851591084095', 371500, 3, 'tr_0 tr_370000 tr_371500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371581, '临清市', '', 0, 0, 'L', '115.71146960045', '36.844289186694', 371500, 3, 'tr_0 tr_370000 tr_371500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371702, '牡丹区', '', 0, 0, 'M', '115.42344303021', '35.257018176069', 371700, 3, 'tr_0 tr_370000 tr_371700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371703, '定陶区', '', 0, 0, 'D', '115.57943737524', '35.077275179757', 371700, 3, 'tr_0 tr_370000 tr_371700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371721, '曹县', '', 0, 0, 'C', '115.54845724362', '34.831809348415', 371700, 3, 'tr_0 tr_370000 tr_371700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371722, '单县', '', 0, 0, 'D', '116.11158367799', '34.784658433692', 371700, 3, 'tr_0 tr_370000 tr_371700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371723, '成武县', '', 0, 0, 'C', '115.89651900839', '34.95860565496', 371700, 3, 'tr_0 tr_370000 tr_371700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371724, '巨野县', '', 0, 0, 'J', '116.10159901224', '35.402062380609', 371700, 3, 'tr_0 tr_370000 tr_371700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371725, '郓城县', '', 0, 0, 'Y', '115.95045057629', '35.605902319687', 371700, 3, 'tr_0 tr_370000 tr_371700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371726, '鄄城县', '', 0, 0, 'J', '115.51660692346', '35.569204259881', 371700, 3, 'tr_0 tr_370000 tr_371700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371728, '东明县', '', 0, 0, 'D', '115.09641733473', '35.295701692411', 371700, 3, 'tr_0 tr_370000 tr_371700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371771, '菏泽经济技术开发区', '', 0, 0, 'H', '115.48754503343', '35.239407424766', 371700, 3, 'tr_0 tr_370000 tr_371700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371772, '菏泽高新技术开发区', '', 0, 0, 'H', '115.48754503343', '35.239407424766', 371700, 3, 'tr_0 tr_370000 tr_371700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410102, '中原区', '', 0, 0, 'Z', '113.61947551694', '34.754450781329', 410100, 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410103, '二七区', '', 0, 0, 'E', '113.63141920734', '34.753438850454', 410100, 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410104, '管城回族区', '', 0, 0, 'G', '113.6835246998', '34.759673874699', 410100, 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410105, '金水区', '', 0, 0, 'J', '113.6664477324', '34.806070445662', 410100, 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410106, '上街区', '', 0, 0, 'S', '113.29818225705', '34.822088918243', 410100, 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410108, '惠济区', '', 0, 0, 'H', '113.62345527984', '34.873519885776', 410100, 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410122, '中牟县', '', 0, 0, 'Z', '113.98248490573', '34.725010848924', 410100, 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410171, '郑州经济技术开发区', '', 0, 0, 'Z', '113.77162403642', '34.724610916832', 410100, 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410172, '郑州高新技术产业开发区', '', 0, 0, 'Z', '113.63793722229', '34.742959870174', 410100, 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410173, '郑州航空港经济综合实验区', '', 0, 0, 'Z', '113.97018898974', '34.719717969385', 410100, 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410181, '巩义市', '', 0, 0, 'G', '113.02843100495', '34.754096888697', 410100, 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410182, '荥阳市', '', 0, 0, 'X', '113.38942279956', '34.793810500346', 410100, 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410183, '新密市', '', 0, 0, 'X', '113.3973909491', '34.545897983445', 410100, 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410184, '新郑市', '', 0, 0, 'X', '113.74643447195', '34.401766379106', 410100, 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410185, '登封市', '', 0, 0, 'D', '113.05642283346', '34.45969746172', 410100, 3, 'tr_0 tr_410000 tr_410100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410202, '龙亭区', '', 0, 0, 'L', '114.36141316646', '34.822035612506', 410200, 3, 'tr_0 tr_410000 tr_410200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410203, '顺河回族区', '', 0, 0, 'S', '114.36739165912', '34.802241355559', 410200, 3, 'tr_0 tr_410000 tr_410200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410204, '鼓楼区', '', 0, 0, 'G', '114.35440485636', '34.794874251914', 410200, 3, 'tr_0 tr_410000 tr_410200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410205, '禹王台区', '', 0, 0, 'Y', '114.35439775975', '34.783472105917', 410200, 3, 'tr_0 tr_410000 tr_410200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410212, '祥符区', '', 0, 0, 'X', '114.4475325479', '34.762739572224', 410200, 3, 'tr_0 tr_410000 tr_410200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410221, '杞县', '', 0, 0, 'Q', '114.78959210474', '34.554856780687', 410200, 3, 'tr_0 tr_410000 tr_410200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410222, '通许县', '', 0, 0, 'T', '114.47343590593', '34.486771802655', 410200, 3, 'tr_0 tr_410000 tr_410200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410223, '尉氏县', '', 0, 0, 'W', '114.19956115086', '34.417228010354', 410200, 3, 'tr_0 tr_410000 tr_410200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410225, '兰考县', '', 0, 0, 'L', '114.82746071249', '34.828492897238', 410200, 3, 'tr_0 tr_410000 tr_410200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410302, '老城区', '', 0, 0, 'L', '112.47650356572', '34.689601063497', 410300, 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410303, '西工区', '', 0, 0, 'X', '112.43439953731', '34.666767847513', 410300, 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410304, '瀍河回族区', '', 0, 0, 'C', '112.50660380709', '34.685462421335', 410300, 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410305, '涧西区', '', 0, 0, 'J', '112.4025520019', '34.663468974309', 410300, 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410306, '吉利区', '', 0, 0, 'J', '112.59547847119', '34.907012657115', 410300, 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410311, '洛龙区', '', 0, 0, 'L', '112.47046928829', '34.624704713024', 410300, 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410322, '孟津县', '', 0, 0, 'M', '112.45141766571', '34.831731570285', 410300, 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410323, '新安县', '', 0, 0, 'X', '112.14060970841', '34.734383327344', 410300, 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410324, '栾川县', '', 0, 0, 'L', '111.62242666651', '33.791822464323', 410300, 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410325, '嵩县', '', 0, 0, 'S', '112.09240816187', '34.140721556406', 410300, 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410326, '汝阳县', '', 0, 0, 'R', '112.47950327731', '34.159843364893', 410300, 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410327, '宜阳县', '', 0, 0, 'Y', '112.17946537426', '34.541046942554', 410300, 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410328, '洛宁县', '', 0, 0, 'L', '111.65958740952', '34.394984560215', 410300, 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410329, '伊川县', '', 0, 0, 'Y', '112.43240745502', '34.427645796427', 410300, 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410371, '洛阳高新技术产业开发区', '', 0, 0, 'L', '112.45942129831', '34.624262779219', 410300, 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410381, '偃师市', '', 0, 0, 'Y', '112.79642141885', '34.733796624013', 410300, 3, 'tr_0 tr_410000 tr_410300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410402, '新华区', '', 0, 0, 'X', '113.30043988965', '33.743657151646', 410400, 3, 'tr_0 tr_410000 tr_410400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410403, '卫东区', '', 0, 0, 'W', '113.34161111761', '33.7403756514', 410400, 3, 'tr_0 tr_410000 tr_410400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410404, '石龙区', '', 0, 0, 'S', '112.9054552264', '33.904754268397', 410400, 3, 'tr_0 tr_410000 tr_410400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410411, '湛河区', '', 0, 0, 'Z', '113.25051467449', '33.685790171047', 410400, 3, 'tr_0 tr_410000 tr_410400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410421, '宝丰县', '', 0, 0, 'B', '113.06144723584', '33.874745598631', 410400, 3, 'tr_0 tr_410000 tr_410400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410422, '叶县', '', 0, 0, 'Y', '113.36358241276', '33.632491674058', 410400, 3, 'tr_0 tr_410000 tr_410400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410423, '鲁山县', '', 0, 0, 'L', '112.91443396963', '33.744878863452', 410400, 3, 'tr_0 tr_410000 tr_410400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410425, '郏县', '', 0, 0, 'J', '113.21960622765', '33.977486289177', 410400, 3, 'tr_0 tr_410000 tr_410400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410471, '平顶山高新技术产业开发区', '', 0, 0, 'P', '113.40808986384', '33.737612151054', 410400, 3, 'tr_0 tr_410000 tr_410400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410472, '平顶山市新城区', '', 0, 0, 'P', '113.19952856052', '33.772050748691', 410400, 3, 'tr_0 tr_410000 tr_410400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410481, '舞钢市', '', 0, 0, 'W', '113.53141031593', '33.299431105301', 410400, 3, 'tr_0 tr_410000 tr_410400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410482, '汝州市', '', 0, 0, 'R', '112.85054971566', '34.172767788551', 410400, 3, 'tr_0 tr_410000 tr_410400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410502, '文峰区', '', 0, 0, 'W', '114.36337398772', '36.096832748136', 410500, 3, 'tr_0 tr_410000 tr_410500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410503, '北关区', '', 0, 0, 'B', '114.36238189912', '36.113131607765', 410500, 3, 'tr_0 tr_410000 tr_410500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410505, '殷都区', '', 0, 0, 'Y', '114.29712997501', '36.135573231517', 410500, 3, 'tr_0 tr_410000 tr_410500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410506, '龙安区', '', 0, 0, 'L', '114.3075931681', '36.08275278362', 410500, 3, 'tr_0 tr_410000 tr_410500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410522, '安阳县', '', 0, 0, 'A', '114.23838187262', '36.218906964196', 410500, 3, 'tr_0 tr_410000 tr_410500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'); +INSERT INTO `hg_sys_provinces` (`id`, `title`, `short_title`, `areacode`, `zipcode`, `pinyin`, `lng`, `lat`, `pid`, `level`, `tree`, `sort`, `status`, `created_at`, `updated_at`) VALUES +(410523, '汤阴县', '', 0, 0, 'T', '114.36340938096', '35.927643740225', 410500, 3, 'tr_0 tr_410000 tr_410500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410526, '滑县', '', 0, 0, 'H', '114.52555316619', '35.581045400558', 410500, 3, 'tr_0 tr_410000 tr_410500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410527, '内黄县', '', 0, 0, 'N', '114.90758875551', '35.976949668061', 410500, 3, 'tr_0 tr_410000 tr_410500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410571, '安阳高新技术产业开发区', '', 0, 0, 'A', '114.39950042177', '36.105940984015', 410500, 3, 'tr_0 tr_410000 tr_410500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410581, '林州市', '', 0, 0, 'L', '113.82559018908', '36.088853208448', 410500, 3, 'tr_0 tr_410000 tr_410500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410602, '鹤山区', '', 0, 0, 'H', '114.16955478242', '35.960280248227', 410600, 3, 'tr_0 tr_410000 tr_410600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410603, '山城区', '', 0, 0, 'S', '114.19062058561', '35.903369613292', 410600, 3, 'tr_0 tr_410000 tr_410600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410611, '淇滨区', '', 0, 0, 'Q', '114.30559120444', '35.746952546289', 410600, 3, 'tr_0 tr_410000 tr_410600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410621, '浚县', '', 0, 0, 'J', '114.55760785086', '35.681917305913', 410600, 3, 'tr_0 tr_410000 tr_410600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410622, '淇县', '', 0, 0, 'Q', '114.2154897245', '35.627277020336', 410600, 3, 'tr_0 tr_410000 tr_410600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410671, '鹤壁经济技术开发区', '', 0, 0, 'H', '114.30359364248', '35.7523574114', 410600, 3, 'tr_0 tr_410000 tr_410600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410702, '红旗区', '', 0, 0, 'H', '113.88141583415', '35.310135512691', 410700, 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410703, '卫滨区', '', 0, 0, 'W', '113.8724387977', '35.308459209602', 410700, 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410704, '凤泉区', '', 0, 0, 'F', '113.91245884715', '35.375665060578', 410700, 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410711, '牧野区', '', 0, 0, 'M', '113.91551290623', '35.321023486499', 410700, 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410721, '新乡县', '', 0, 0, 'X', '113.81159378076', '35.196564408993', 410700, 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410724, '获嘉县', '', 0, 0, 'H', '113.66341666994', '35.265809284161', 410700, 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410725, '原阳县', '', 0, 0, 'Y', '113.94662374129', '35.071163864469', 410700, 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410726, '延津县', '', 0, 0, 'Y', '114.21151175821', '35.147806510509', 410700, 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410727, '封丘县', '', 0, 0, 'F', '114.42560616803', '35.046857531651', 410700, 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410728, '长垣县', '', 0, 0, 'Z', '114.67560989146', '35.207198224565', 410700, 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410771, '新乡高新技术产业开发区', '', 0, 0, 'X', '113.89511589149', '35.288196248852', 410700, 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410772, '新乡经济技术开发区', '', 0, 0, 'X', '113.93360046733', '35.309639930337', 410700, 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410773, '新乡市平原城乡一体化示范区', '', 0, 0, 'X', '113.93360046733', '35.309639930337', 410700, 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410781, '卫辉市', '', 0, 0, 'W', '114.07160094452', '35.404068882145', 410700, 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410782, '辉县市', '', 0, 0, 'H', '113.81157302991', '35.467957818376', 410700, 3, 'tr_0 tr_410000 tr_410700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410802, '解放区', '', 0, 0, 'J', '113.23757179887', '35.246309807633', 410800, 3, 'tr_0 tr_410000 tr_410800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410803, '中站区', '', 0, 0, 'Z', '113.18944759643', '35.242617103591', 410800, 3, 'tr_0 tr_410000 tr_410800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410804, '马村区', '', 0, 0, 'M', '113.32854400634', '35.261894441723', 410800, 3, 'tr_0 tr_410000 tr_410800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410811, '山阳区', '', 0, 0, 'S', '113.26048370971', '35.220272352977', 410800, 3, 'tr_0 tr_410000 tr_410800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410821, '修武县', '', 0, 0, 'X', '113.45458192871', '35.229323482594', 410800, 3, 'tr_0 tr_410000 tr_410800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410822, '博爱县', '', 0, 0, 'B', '113.07047799096', '35.177308063756', 410800, 3, 'tr_0 tr_410000 tr_410800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410823, '武陟县', '', 0, 0, 'W', '113.40839582041', '35.105838449217', 410800, 3, 'tr_0 tr_410000 tr_410800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410825, '温县', '', 0, 0, 'W', '113.08656906807', '34.946135492247', 410800, 3, 'tr_0 tr_410000 tr_410800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410871, '焦作城乡一体化示范区', '', 0, 0, 'J', '113.24854783457', '35.220963254039', 410800, 3, 'tr_0 tr_410000 tr_410800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410882, '沁阳市', '', 0, 0, 'Q', '112.95751688155', '35.093785732346', 410800, 3, 'tr_0 tr_410000 tr_410800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410883, '孟州市', '', 0, 0, 'M', '112.79739491254', '34.913597817886', 410800, 3, 'tr_0 tr_410000 tr_410800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410902, '华龙区', '', 0, 0, 'H', '115.0804129441', '35.783632884536', 410900, 3, 'tr_0 tr_410000 tr_410900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410922, '清丰县', '', 0, 0, 'Q', '115.11047186341', '35.891308168277', 410900, 3, 'tr_0 tr_410000 tr_410900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410923, '南乐县', '', 0, 0, 'N', '115.21138615695', '36.076030832875', 410900, 3, 'tr_0 tr_410000 tr_410900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410926, '范县', '', 0, 0, 'F', '115.51058621044', '35.857655087719', 410900, 3, 'tr_0 tr_410000 tr_410900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410927, '台前县', '', 0, 0, 'T', '115.87856816938', '35.975012712521', 410900, 3, 'tr_0 tr_410000 tr_410900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410928, '濮阳县', '', 0, 0, 'P', '115.03558408559', '35.717888889375', 410900, 3, 'tr_0 tr_410000 tr_410900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410971, '河南濮阳工业园区', '', 0, 0, 'H', '115.03559747034', '35.767593028906', 410900, 3, 'tr_0 tr_410000 tr_410900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(410972, '濮阳经济技术开发区', '', 0, 0, 'P', '115.03559747034', '35.767593028906', 410900, 3, 'tr_0 tr_410000 tr_410900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411002, '魏都区', '', 0, 0, 'W', '113.82959564352', '34.030861228003', 411000, 3, 'tr_0 tr_410000 tr_411000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411003, '建安区', '', 0, 0, 'J', '113.82961513675', '34.129966976383', 411000, 3, 'tr_0 tr_410000 tr_411000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411024, '鄢陵县', '', 0, 0, 'Y', '114.18561980866', '34.107963250311', 411000, 3, 'tr_0 tr_410000 tr_411000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411025, '襄城县', '', 0, 0, 'X', '113.51343127013', '33.856967773678', 411000, 3, 'tr_0 tr_410000 tr_411000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411071, '许昌经济技术开发区', '', 0, 0, 'X', '113.81237629469', '34.009184251036', 411000, 3, 'tr_0 tr_410000 tr_411000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411081, '禹州市', '', 0, 0, 'Y', '113.49550522436', '34.146082195029', 411000, 3, 'tr_0 tr_410000 tr_411000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411082, '长葛市', '', 0, 0, 'Z', '113.77442091063', '34.223016266284', 411000, 3, 'tr_0 tr_410000 tr_411000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411102, '源汇区', '', 0, 0, 'Y', '113.99041352982', '33.578423262447', 411100, 3, 'tr_0 tr_410000 tr_411100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411103, '郾城区', '', 0, 0, 'Y', '114.01339389154', '33.593415880865', 411100, 3, 'tr_0 tr_410000 tr_411100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411104, '召陵区', '', 0, 0, 'Z', '114.1004665548', '33.592467538561', 411100, 3, 'tr_0 tr_410000 tr_411100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411121, '舞阳县', '', 0, 0, 'W', '113.61549000488', '33.443577799934', 411100, 3, 'tr_0 tr_410000 tr_411100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411122, '临颍县', '', 0, 0, 'L', '113.93757834379', '33.83269194793', 411100, 3, 'tr_0 tr_410000 tr_411100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411171, '漯河经济技术开发区', '', 0, 0, 'L', '114.02342077765', '33.587710707102', 411100, 3, 'tr_0 tr_410000 tr_411100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411202, '湖滨区', '', 0, 0, 'H', '111.19557389665', '34.775996792444', 411200, 3, 'tr_0 tr_410000 tr_411200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411203, '陕州区', '', 0, 0, 'S', '111.10945065249', '34.726914801527', 411200, 3, 'tr_0 tr_410000 tr_411200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411221, '渑池县', '', 0, 0, 'M', '111.76854234585', '34.773197042986', 411200, 3, 'tr_0 tr_410000 tr_411200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411224, '卢氏县', '', 0, 0, 'L', '111.05456400617', '34.059924845299', 411200, 3, 'tr_0 tr_410000 tr_411200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411271, '河南三门峡经济开发区', '', 0, 0, 'H', '111.16756986287', '34.791595599754', 411200, 3, 'tr_0 tr_410000 tr_411200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411281, '义马市', '', 0, 0, 'Y', '111.88051478021', '34.753028009473', 411200, 3, 'tr_0 tr_410000 tr_411200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411282, '灵宝市', '', 0, 0, 'L', '110.90040831286', '34.523142624164', 411200, 3, 'tr_0 tr_410000 tr_411200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411302, '宛城区', '', 0, 0, 'W', '112.54645416663', '33.009870040626', 411300, 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411303, '卧龙区', '', 0, 0, 'W', '112.54146183376', '32.992483797527', 411300, 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411321, '南召县', '', 0, 0, 'N', '112.43542522255', '33.496185804625', 411300, 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411322, '方城县', '', 0, 0, 'F', '113.0185027528', '33.260539455832', 411300, 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411323, '西峡县', '', 0, 0, 'X', '111.48039809758', '33.313316115292', 411300, 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411324, '镇平县', '', 0, 0, 'Z', '112.24154448331', '33.039718529225', 411300, 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411325, '内乡县', '', 0, 0, 'N', '111.85542528697', '33.051203105476', 411300, 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411326, '淅川县', '', 0, 0, 'X', '111.49743203615', '33.144185260027', 411300, 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411327, '社旗县', '', 0, 0, 'S', '112.9544934547', '33.062236685935', 411300, 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411328, '唐河县', '', 0, 0, 'T', '112.81342436589', '32.687720660005', 411300, 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411329, '新野县', '', 0, 0, 'X', '112.36654962384', '32.526631778818', 411300, 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411330, '桐柏县', '', 0, 0, 'T', '113.43447273106', '32.385130754956', 411300, 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411371, '南阳高新技术产业开发区', '', 0, 0, 'N', '112.53450131351', '32.996562204651', 411300, 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411372, '南阳市城乡一体化示范区', '', 0, 0, 'N', '112.53450131351', '32.996562204651', 411300, 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411381, '邓州市', '', 0, 0, 'D', '112.09342010302', '32.69391743997', 411300, 3, 'tr_0 tr_410000 tr_411300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411402, '梁园区', '', 0, 0, 'L', '115.62060204557', '34.449471246294', 411400, 3, 'tr_0 tr_410000 tr_411400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411403, '睢阳区', '', 0, 0, 'S', '115.65947594702', '34.394151920479', 411400, 3, 'tr_0 tr_410000 tr_411400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411421, '民权县', '', 0, 0, 'M', '115.15457605887', '34.652478726537', 411400, 3, 'tr_0 tr_410000 tr_411400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411422, '睢县', '', 0, 0, 'S', '115.07841089061', '34.451616965409', 411400, 3, 'tr_0 tr_410000 tr_411400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411423, '宁陵县', '', 0, 0, 'N', '115.32041843737', '34.46663402766', 411400, 3, 'tr_0 tr_410000 tr_411400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411424, '柘城县', '', 0, 0, 'Z', '115.31243456749', '34.097360212415', 411400, 3, 'tr_0 tr_410000 tr_411400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411425, '虞城县', '', 0, 0, 'Y', '115.83447295698', '34.405331502097', 411400, 3, 'tr_0 tr_410000 tr_411400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411426, '夏邑县', '', 0, 0, 'X', '116.13751236823', '34.243523472378', 411400, 3, 'tr_0 tr_410000 tr_411400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411471, '豫东综合物流产业聚集区', '', 0, 0, 'Y', '115.66244933826', '34.420201665859', 411400, 3, 'tr_0 tr_410000 tr_411400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411472, '河南商丘经济开发区', '', 0, 0, 'H', '115.69827951116', '34.407726159442', 411400, 3, 'tr_0 tr_410000 tr_411400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411481, '永城市', '', 0, 0, 'Y', '116.4555661476', '33.934801475851', 411400, 3, 'tr_0 tr_410000 tr_411400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411502, '浉河区', '', 0, 0, 'S', '114.06558130947', '32.122554156884', 411500, 3, 'tr_0 tr_410000 tr_411500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411503, '平桥区', '', 0, 0, 'P', '114.13240742415', '32.10732538611', 411500, 3, 'tr_0 tr_410000 tr_411500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411521, '罗山县', '', 0, 0, 'L', '114.51952993791', '32.209150451838', 411500, 3, 'tr_0 tr_410000 tr_411500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411522, '光山县', '', 0, 0, 'G', '114.92553303688', '32.015906879568', 411500, 3, 'tr_0 tr_410000 tr_411500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411523, '新县', '', 0, 0, 'X', '114.88552475523', '31.649738468475', 411500, 3, 'tr_0 tr_410000 tr_411500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411524, '商城县', '', 0, 0, 'S', '115.41351334076', '31.804345366903', 411500, 3, 'tr_0 tr_410000 tr_411500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411525, '固始县', '', 0, 0, 'G', '115.66048788818', '32.174174379622', 411500, 3, 'tr_0 tr_410000 tr_411500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411526, '潢川县', '', 0, 0, 'H', '115.05847075405', '32.137530716414', 411500, 3, 'tr_0 tr_410000 tr_411500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411527, '淮滨县', '', 0, 0, 'H', '115.42643896891', '32.479469756663', 411500, 3, 'tr_0 tr_410000 tr_411500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411528, '息县', '', 0, 0, 'X', '114.74745313225', '32.348955511715', 411500, 3, 'tr_0 tr_410000 tr_411500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411571, '信阳高新技术产业开发区', '', 0, 0, 'X', '114.09748283305', '32.153014547531', 411500, 3, 'tr_0 tr_410000 tr_411500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411602, '川汇区', '', 0, 0, 'C', '114.65760174056', '33.652997102814', 411600, 3, 'tr_0 tr_410000 tr_411600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411621, '扶沟县', '', 0, 0, 'F', '114.40150984137', '34.065906253969', 411600, 3, 'tr_0 tr_410000 tr_411600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411622, '西华县', '', 0, 0, 'X', '114.53559667094', '33.773215334922', 411600, 3, 'tr_0 tr_410000 tr_411600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411623, '商水县', '', 0, 0, 'S', '114.61841594744', '33.548877475353', 411600, 3, 'tr_0 tr_410000 tr_411600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411624, '沈丘县', '', 0, 0, 'S', '115.10545545595', '33.415691094059', 411600, 3, 'tr_0 tr_410000 tr_411600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411625, '郸城县', '', 0, 0, 'D', '115.18347760136', '33.650827955049', 411600, 3, 'tr_0 tr_410000 tr_411600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411626, '淮阳县', '', 0, 0, 'H', '114.89258615519', '33.737347183458', 411600, 3, 'tr_0 tr_410000 tr_411600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411627, '太康县', '', 0, 0, 'T', '114.84438389', '34.070038382248', 411600, 3, 'tr_0 tr_410000 tr_411600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411628, '鹿邑县', '', 0, 0, 'L', '115.4905852586', '33.867173290317', 411600, 3, 'tr_0 tr_410000 tr_411600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411671, '河南周口经济开发区', '', 0, 0, 'H', '114.70348251482', '33.631828875702', 411600, 3, 'tr_0 tr_410000 tr_411600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411681, '项城市', '', 0, 0, 'X', '114.88151400079', '33.47300744143', 411600, 3, 'tr_0 tr_410000 tr_411600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411702, '驿城区', '', 0, 0, 'Y', '114.00038696674', '32.979519871982', 411700, 3, 'tr_0 tr_410000 tr_411700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411721, '西平县', '', 0, 0, 'X', '114.02747357279', '33.393860997525', 411700, 3, 'tr_0 tr_410000 tr_411700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411722, '上蔡县', '', 0, 0, 'S', '114.2704868624', '33.268511215884', 411700, 3, 'tr_0 tr_410000 tr_411700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411723, '平舆县', '', 0, 0, 'P', '114.62542865923', '32.967982400438', 411700, 3, 'tr_0 tr_410000 tr_411700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411724, '正阳县', '', 0, 0, 'Z', '114.39949655906', '32.611641077273', 411700, 3, 'tr_0 tr_410000 tr_411700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411725, '确山县', '', 0, 0, 'Q', '114.03249501076', '32.808175692984', 411700, 3, 'tr_0 tr_410000 tr_411700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411726, '泌阳县', '', 0, 0, 'M', '113.33355798837', '32.729730650435', 411700, 3, 'tr_0 tr_410000 tr_411700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411727, '汝南县', '', 0, 0, 'R', '114.36940889397', '33.013140881992', 411700, 3, 'tr_0 tr_410000 tr_411700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411728, '遂平县', '', 0, 0, 'S', '114.0194414639', '33.151971399579', 411700, 3, 'tr_0 tr_410000 tr_411700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411729, '新蔡县', '', 0, 0, 'X', '114.99246928382', '32.755268867306', 411700, 3, 'tr_0 tr_410000 tr_411700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(411771, '河南驻马店经济开发区', '', 0, 0, 'H', '114.02847078173', '33.017842416744', 411700, 3, 'tr_0 tr_410000 tr_411700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(419001, '济源市', '', 0, 0, 'J', '112.60858070621', '35.072907226847', 419000, 3, 'tr_0 tr_410000 tr_419000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420102, '江岸区', '', 0, 0, 'J', '114.31657918761', '30.605402797562', 420100, 3, 'tr_0 tr_420000 tr_420100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420103, '江汉区', '', 0, 0, 'J', '114.27750613182', '30.607282276827', 420100, 3, 'tr_0 tr_420000 tr_420100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420104, '硚口区', '', 0, 0, 'Q', '114.22146031207', '30.587584340776', 420100, 3, 'tr_0 tr_420000 tr_420100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420105, '汉阳区', '', 0, 0, 'H', '114.22544555464', '30.560052027443', 420100, 3, 'tr_0 tr_420000 tr_420100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420106, '武昌区', '', 0, 0, 'W', '114.35362228468', '30.564860292785', 420100, 3, 'tr_0 tr_420000 tr_420100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420107, '青山区', '', 0, 0, 'Q', '114.39149265697', '30.646593075543', 420100, 3, 'tr_0 tr_420000 tr_420100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420111, '洪山区', '', 0, 0, 'H', '114.35045554602', '30.506333956808', 420100, 3, 'tr_0 tr_420000 tr_420100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420112, '东西湖区', '', 0, 0, 'D', '114.14345873786', '30.625919818109', 420100, 3, 'tr_0 tr_420000 tr_420100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420113, '汉南区', '', 0, 0, 'H', '114.09151485056', '30.314809120145', 420100, 3, 'tr_0 tr_420000 tr_420100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420114, '蔡甸区', '', 0, 0, 'C', '114.03547963081', '30.588113621855', 420100, 3, 'tr_0 tr_420000 tr_420100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420115, '江夏区', '', 0, 0, 'J', '114.32855126446', '30.381564218182', 420100, 3, 'tr_0 tr_420000 tr_420100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420116, '黄陂区', '', 0, 0, 'H', '114.38245399676', '30.887533767835', 420100, 3, 'tr_0 tr_420000 tr_420100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420117, '新洲区', '', 0, 0, 'X', '114.8075433929', '30.847243870523', 420100, 3, 'tr_0 tr_420000 tr_420100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420202, '黄石港区', '', 0, 0, 'H', '115.07241748608', '30.229052639992', 420200, 3, 'tr_0 tr_420000 tr_420200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420203, '西塞山区', '', 0, 0, 'X', '115.11648143744', '30.210695184118', 420200, 3, 'tr_0 tr_420000 tr_420200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420204, '下陆区', '', 0, 0, 'X', '114.96741590247', '30.180046155273', 420200, 3, 'tr_0 tr_420000 tr_420200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420205, '铁山区', '', 0, 0, 'T', '114.90757141821', '30.212250832587', 420200, 3, 'tr_0 tr_420000 tr_420200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420222, '阳新县', '', 0, 0, 'Y', '115.22142677197', '29.836541808086', 420200, 3, 'tr_0 tr_420000 tr_420200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420281, '大冶市', '', 0, 0, 'D', '114.98643626402', '30.101667800103', 420200, 3, 'tr_0 tr_420000 tr_420200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420302, '茅箭区', '', 0, 0, 'M', '110.81958031019', '32.597286519104', 420300, 3, 'tr_0 tr_420000 tr_420300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420303, '张湾区', '', 0, 0, 'Z', '110.77542410285', '32.65839954548', 420300, 3, 'tr_0 tr_420000 tr_420300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420304, '郧阳区', '', 0, 0, 'Y', '110.81857654362', '32.840592413038', 420300, 3, 'tr_0 tr_420000 tr_420300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420322, '郧西县', '', 0, 0, 'Y', '110.43247261847', '32.999167007536', 420300, 3, 'tr_0 tr_420000 tr_420300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420323, '竹山县', '', 0, 0, 'Z', '110.23558156764', '32.230304060376', 420300, 3, 'tr_0 tr_420000 tr_420300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420324, '竹溪县', '', 0, 0, 'Z', '109.72154249889', '32.324120048853', 420300, 3, 'tr_0 tr_420000 tr_420300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420325, '房县', '', 0, 0, 'F', '110.74746155911', '32.061684964544', 420300, 3, 'tr_0 tr_420000 tr_420300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420381, '丹江口市', '', 0, 0, 'D', '111.51953205848', '32.546252688501', 420300, 3, 'tr_0 tr_420000 tr_420300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420502, '西陵区', '', 0, 0, 'X', '111.29255972053', '30.716749346598', 420500, 3, 'tr_0 tr_420000 tr_420500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420503, '伍家岗区', '', 0, 0, 'W', '111.36742225597', '30.65073733526', 420500, 3, 'tr_0 tr_420000 tr_420500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420504, '点军区', '', 0, 0, 'D', '111.27447135095', '30.69932951388', 420500, 3, 'tr_0 tr_420000 tr_420500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420505, '猇亭区', '', 0, 0, 'X', '111.44157378259', '30.536465982707', 420500, 3, 'tr_0 tr_420000 tr_420500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420506, '夷陵区', '', 0, 0, 'Y', '111.33252973436', '30.774833327298', 420500, 3, 'tr_0 tr_420000 tr_420500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420525, '远安县', '', 0, 0, 'Y', '111.64653035927', '31.066627841578', 420500, 3, 'tr_0 tr_420000 tr_420500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420526, '兴山县', '', 0, 0, 'X', '110.75344607041', '31.354463517716', 420500, 3, 'tr_0 tr_420000 tr_420500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420527, '秭归县', '', 0, 0, 'Z', '110.98444937468', '30.831931643216', 420500, 3, 'tr_0 tr_420000 tr_420500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420528, '长阳土家族自治县', '', 0, 0, 'Z', '111.21350712887', '30.478645783056', 420500, 3, 'tr_0 tr_420000 tr_420500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420529, '五峰土家族自治县', '', 0, 0, 'W', '111.05258063744', '30.171156151026', 420500, 3, 'tr_0 tr_420000 tr_420500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420581, '宜都市', '', 0, 0, 'Y', '111.45651583712', '30.384404274314', 420500, 3, 'tr_0 tr_420000 tr_420500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420582, '当阳市', '', 0, 0, 'D', '111.79456850223', '30.826989050281', 420500, 3, 'tr_0 tr_420000 tr_420500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420583, '枝江市', '', 0, 0, 'Z', '111.76653975337', '30.431730676998', 420500, 3, 'tr_0 tr_420000 tr_420500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420602, '襄城区', '', 0, 0, 'X', '112.14057206941', '32.016174618141', 420600, 3, 'tr_0 tr_420000 tr_420600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420606, '樊城区', '', 0, 0, 'F', '112.14259891613', '32.050572374692', 420600, 3, 'tr_0 tr_420000 tr_420600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420607, '襄州区', '', 0, 0, 'X', '112.21843413678', '32.093375783399', 420600, 3, 'tr_0 tr_420000 tr_420600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420624, '南漳县', '', 0, 0, 'N', '111.84538618392', '31.781129706779', 420600, 3, 'tr_0 tr_420000 tr_420600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420625, '谷城县', '', 0, 0, 'G', '111.65957564172', '32.268983068947', 420600, 3, 'tr_0 tr_420000 tr_420600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420626, '保康县', '', 0, 0, 'B', '111.26744121203', '31.883847150262', 420600, 3, 'tr_0 tr_420000 tr_420600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420682, '老河口市', '', 0, 0, 'L', '111.68155636908', '32.392459585271', 420600, 3, 'tr_0 tr_420000 tr_420600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420683, '枣阳市', '', 0, 0, 'Z', '112.77847075951', '32.134729914319', 420600, 3, 'tr_0 tr_420000 tr_420600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420684, '宜城市', '', 0, 0, 'Y', '112.26461144169', '31.725469730972', 420600, 3, 'tr_0 tr_420000 tr_420600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420702, '梁子湖区', '', 0, 0, 'L', '114.69150657526', '30.105906774051', 420700, 3, 'tr_0 tr_420000 tr_420700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420703, '华容区', '', 0, 0, 'H', '114.73642634228', '30.540599527838', 420700, 3, 'tr_0 tr_420000 tr_420700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420704, '鄂城区', '', 0, 0, 'E', '114.89859968176', '30.406389456292', 420700, 3, 'tr_0 tr_420000 tr_420700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420802, '东宝区', '', 0, 0, 'D', '112.2083882066', '31.058429271365', 420800, 3, 'tr_0 tr_420000 tr_420800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420804, '掇刀区', '', 0, 0, 'D', '112.2144276942', '30.979910859804', 420800, 3, 'tr_0 tr_420000 tr_420800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420822, '沙洋县', '', 0, 0, 'S', '112.59548493899', '30.715314748831', 420800, 3, 'tr_0 tr_420000 tr_420800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420881, '钟祥市', '', 0, 0, 'Z', '112.59447102156', '31.174029854963', 420800, 3, 'tr_0 tr_420000 tr_420800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420882, '京山市', '', 0, 0, 'J', '113.12654806496', '31.024330601193', 420800, 3, 'tr_0 tr_420000 tr_420800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420902, '孝南区', '', 0, 0, 'X', '113.91748989699', '30.922977925049', 420900, 3, 'tr_0 tr_420000 tr_420900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420921, '孝昌县', '', 0, 0, 'X', '114.00440859068', '31.264540493062', 420900, 3, 'tr_0 tr_420000 tr_420900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420922, '大悟县', '', 0, 0, 'D', '114.13341253819', '31.567219806641', 420900, 3, 'tr_0 tr_420000 tr_420900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420923, '云梦县', '', 0, 0, 'Y', '113.75941220183', '31.027218220752', 420900, 3, 'tr_0 tr_420000 tr_420900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420981, '应城市', '', 0, 0, 'Y', '113.57956739635', '30.933976509913', 420900, 3, 'tr_0 tr_420000 tr_420900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420982, '安陆市', '', 0, 0, 'A', '113.69558292415', '31.261414994286', 420900, 3, 'tr_0 tr_420000 tr_420900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(420984, '汉川市', '', 0, 0, 'H', '113.8455490104', '30.666913578821', 420900, 3, 'tr_0 tr_420000 tr_420900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421002, '沙市区', '', 0, 0, 'S', '112.26157741483', '30.316571904872', 421000, 3, 'tr_0 tr_420000 tr_421000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421003, '荆州区', '', 0, 0, 'J', '112.19641397381', '30.358989490775', 421000, 3, 'tr_0 tr_420000 tr_421000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421022, '公安县', '', 0, 0, 'G', '112.23650157584', '30.064400686806', 421000, 3, 'tr_0 tr_420000 tr_421000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421023, '监利县', '', 0, 0, 'J', '112.91142023009', '29.845735162836', 421000, 3, 'tr_0 tr_420000 tr_421000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421024, '江陵县', '', 0, 0, 'J', '112.43145201728', '30.048042984592', 421000, 3, 'tr_0 tr_420000 tr_421000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421071, '荆州经济技术开发区', '', 0, 0, 'J', '112.19641397381', '30.358989490775', 421000, 3, 'tr_0 tr_420000 tr_421000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421081, '石首市', '', 0, 0, 'S', '112.43141984371', '29.727033977407', 421000, 3, 'tr_0 tr_420000 tr_421000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421083, '洪湖市', '', 0, 0, 'H', '113.48255290196', '29.83277032976', 421000, 3, 'tr_0 tr_420000 tr_421000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421087, '松滋市', '', 0, 0, 'S', '111.77358031264', '30.175342235143', 421000, 3, 'tr_0 tr_420000 tr_421000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421102, '黄州区', '', 0, 0, 'H', '114.88653238452', '30.440224145146', 421100, 3, 'tr_0 tr_420000 tr_421100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421121, '团风县', '', 0, 0, 'T', '114.87852435023', '30.649367767215', 421100, 3, 'tr_0 tr_420000 tr_421100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421122, '红安县', '', 0, 0, 'H', '114.6244256113', '31.294296714037', 421100, 3, 'tr_0 tr_420000 tr_421100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421123, '罗田县', '', 0, 0, 'L', '115.4055471675', '30.788910495685', 421100, 3, 'tr_0 tr_420000 tr_421100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421124, '英山县', '', 0, 0, 'Y', '115.68742160263', '30.741350084085', 421100, 3, 'tr_0 tr_420000 tr_421100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421125, '浠水县', '', 0, 0, 'X', '115.27156903289', '30.457460842265', 421100, 3, 'tr_0 tr_420000 tr_421100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421126, '蕲春县', '', 0, 0, 'Q', '115.4423985341', '30.232535499734', 421100, 3, 'tr_0 tr_420000 tr_421100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421127, '黄梅县', '', 0, 0, 'H', '115.95046198477', '30.076605056821', 421100, 3, 'tr_0 tr_420000 tr_421100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421171, '龙感湖管理区', '', 0, 0, 'L', '116.01030250647', '29.879697031911', 421100, 3, 'tr_0 tr_420000 tr_421100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421181, '麻城市', '', 0, 0, 'M', '115.01656174777', '31.176995837411', 421100, 3, 'tr_0 tr_420000 tr_421100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421182, '武穴市', '', 0, 0, 'W', '115.56739216105', '29.850441430483', 421100, 3, 'tr_0 tr_420000 tr_421100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421202, '咸安区', '', 0, 0, 'X', '114.30456990606', '29.858153915154', 421200, 3, 'tr_0 tr_420000 tr_421200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421221, '嘉鱼县', '', 0, 0, 'J', '113.94557046336', '29.976353520898', 421200, 3, 'tr_0 tr_420000 tr_421200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421222, '通城县', '', 0, 0, 'T', '113.82356790903', '29.250857930222', 421200, 3, 'tr_0 tr_420000 tr_421200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421223, '崇阳县', '', 0, 0, 'C', '114.04656290943', '29.561333782271', 421200, 3, 'tr_0 tr_420000 tr_421200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421224, '通山县', '', 0, 0, 'T', '114.48939330027', '29.612634338058', 421200, 3, 'tr_0 tr_420000 tr_421200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421281, '赤壁市', '', 0, 0, 'C', '113.90643686179', '29.730665997526', 421200, 3, 'tr_0 tr_420000 tr_421200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421303, '曾都区', '', 0, 0, 'C', '113.3775133346', '31.722122861271', 421300, 3, 'tr_0 tr_420000 tr_421300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421321, '随县', '', 0, 0, 'S', '113.3064583569', '31.859971678258', 421300, 3, 'tr_0 tr_420000 tr_421300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(421381, '广水市', '', 0, 0, 'G', '113.83259337884', '31.622476038007', 421300, 3, 'tr_0 tr_420000 tr_421300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(422801, '恩施市', '', 0, 0, 'E', '109.48655026901', '30.301037143741', 422800, 3, 'tr_0 tr_420000 tr_422800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(422802, '利川市', '', 0, 0, 'L', '108.94248057756', '30.29720344368', 422800, 3, 'tr_0 tr_420000 tr_422800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(422822, '建始县', '', 0, 0, 'J', '109.72855610899', '30.607907026319', 422800, 3, 'tr_0 tr_420000 tr_422800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(422823, '巴东县', '', 0, 0, 'B', '110.34757529184', '31.04806424896', 422800, 3, 'tr_0 tr_420000 tr_422800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(422825, '宣恩县', '', 0, 0, 'X', '109.49756797283', '29.99260392208', 422800, 3, 'tr_0 tr_420000 tr_422800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(422826, '咸丰县', '', 0, 0, 'X', '109.14660773562', '29.671077652358', 422800, 3, 'tr_0 tr_420000 tr_422800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(422827, '来凤县', '', 0, 0, 'L', '109.41349484153', '29.499443572607', 422800, 3, 'tr_0 tr_420000 tr_422800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(422828, '鹤峰县', '', 0, 0, 'H', '110.04042423301', '29.896116483403', 422800, 3, 'tr_0 tr_420000 tr_422800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(429004, '仙桃市', '', 0, 0, 'X', '113.46159059813', '30.368271921725', 429000, 3, 'tr_0 tr_420000 tr_429000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(429005, '潜江市', '', 0, 0, 'Q', '112.90547409082', '30.408357932419', 429000, 3, 'tr_0 tr_420000 tr_429000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(429006, '天门市', '', 0, 0, 'T', '113.17240916633', '30.669621830099', 429000, 3, 'tr_0 tr_420000 tr_429000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(429021, '神农架林区', '', 0, 0, 'S', '110.6825248504', '31.750496011246', 429000, 3, 'tr_0 tr_420000 tr_429000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371602, '滨城区', '', 0, 0, 'B', '118.02660385061', '37.436843207744', 371600, 3, 'tr_0 tr_370000 tr_371600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371603, '沾化区', '', 0, 0, 'Z', '118.10545441336', '37.705298106724', 371600, 3, 'tr_0 tr_370000 tr_371600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371621, '惠民县', '', 0, 0, 'H', '117.5165096905', '37.49580310894', 371600, 3, 'tr_0 tr_370000 tr_371600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371622, '阳信县', '', 0, 0, 'Y', '117.58443703791', '37.647338034957', 371600, 3, 'tr_0 tr_370000 tr_371600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371623, '无棣县', '', 0, 0, 'W', '117.63245748606', '37.777567312086', 371600, 3, 'tr_0 tr_370000 tr_371600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371625, '博兴县', '', 0, 0, 'B', '118.11749269533', '37.160477277651', 371600, 3, 'tr_0 tr_370000 tr_371600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(371681, '邹平市', '', 0, 0, 'Z', '117.74947848722', '36.870032216697', 371600, 3, 'tr_0 tr_370000 tr_371600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430202, '荷塘区', '', 0, 0, 'H', '113.18045222007', '27.862155809141', 430200, 3, 'tr_0 tr_430000 tr_430200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430203, '芦淞区', '', 0, 0, 'L', '113.15841867236', '27.791508825947', 430200, 3, 'tr_0 tr_430000 tr_430200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430204, '石峰区', '', 0, 0, 'S', '113.12456791567', '27.880705165595', 430200, 3, 'tr_0 tr_430000 tr_430200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430211, '天元区', '', 0, 0, 'T', '113.08954055842', '27.833083519485', 430200, 3, 'tr_0 tr_430000 tr_430200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430212, '渌口区', '', 0, 0, 'L', '113.15042671773', '27.704322804857', 430200, 3, 'tr_0 tr_430000 tr_430200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430223, '攸县', '', 0, 0, 'Y', '113.35157834169', '27.005771565213', 430200, 3, 'tr_0 tr_430000 tr_430200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430224, '茶陵县', '', 0, 0, 'C', '113.54547165714', '26.78358911036', 430200, 3, 'tr_0 tr_430000 tr_430200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430225, '炎陵县', '', 0, 0, 'Y', '113.77941879832', '26.496060691599', 430200, 3, 'tr_0 tr_430000 tr_430200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430271, '云龙示范区', '', 0, 0, 'Y', '113.17446420357', '27.934854931886', 430200, 3, 'tr_0 tr_430000 tr_430200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430281, '醴陵市', '', 0, 0, 'L', '113.50348315084', '27.652325149951', 430200, 3, 'tr_0 tr_430000 tr_430200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430302, '雨湖区', '', 0, 0, 'Y', '112.91344959207', '27.862466785111', 430300, 3, 'tr_0 tr_430000 tr_430300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430304, '岳塘区', '', 0, 0, 'Y', '112.97558942655', '27.877720506364', 430300, 3, 'tr_0 tr_430000 tr_430300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430321, '湘潭县', '', 0, 0, 'X', '112.95750536884', '27.784982534656', 430300, 3, 'tr_0 tr_430000 tr_430300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430371, '湖南湘潭高新技术产业园区', '', 0, 0, 'H', '112.95046418076', '27.835702227136', 430300, 3, 'tr_0 tr_430000 tr_430300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430372, '湘潭昭山示范区', '', 0, 0, 'X', '113.01812844052', '27.97161027839', 430300, 3, 'tr_0 tr_430000 tr_430300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430373, '湘潭九华示范区', '', 0, 0, 'X', '112.94707945543', '27.916546191684', 430300, 3, 'tr_0 tr_430000 tr_430300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430381, '湘乡市', '', 0, 0, 'X', '112.54149155341', '27.740190553344', 430300, 3, 'tr_0 tr_430000 tr_430300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430382, '韶山市', '', 0, 0, 'S', '112.53349932929', '27.921043749631', 430300, 3, 'tr_0 tr_430000 tr_430300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430405, '珠晖区', '', 0, 0, 'Z', '112.62659414282', '26.900265361946', 430400, 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430406, '雁峰区', '', 0, 0, 'Y', '112.62358823292', '26.89436829036', 430400, 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430407, '石鼓区', '', 0, 0, 'S', '112.60452969339', '26.948961867165', 430400, 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430408, '蒸湘区', '', 0, 0, 'Z', '112.57344401089', '26.917719877877', 430400, 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430412, '南岳区', '', 0, 0, 'N', '112.74557434825', '27.238360474562', 430400, 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430421, '衡阳县', '', 0, 0, 'H', '112.37755268433', '26.975294950861', 430400, 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430422, '衡南县', '', 0, 0, 'H', '112.68440252779', '26.744531956772', 430400, 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430423, '衡山县', '', 0, 0, 'H', '112.87556328771', '27.235996029656', 430400, 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430424, '衡东县', '', 0, 0, 'H', '112.95949529521', '27.087042820265', 430400, 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430426, '祁东县', '', 0, 0, 'Q', '112.09644737847', '26.805995255191', 430400, 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430471, '衡阳综合保税区', '', 0, 0, 'H', '112.57844721326', '26.899576139189', 430400, 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430472, '湖南衡阳高新技术产业园区', '', 0, 0, 'H', '112.57844721326', '26.899576139189', 430400, 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430473, '湖南衡阳松木经济开发区', '', 0, 0, 'H', '112.57844721326', '26.899576139189', 430400, 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430481, '耒阳市', '', 0, 0, 'L', '112.86659721058', '26.428065593928', 430400, 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430482, '常宁市', '', 0, 0, 'C', '112.40556050266', '26.426720432257', 430400, 3, 'tr_0 tr_430000 tr_430400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430502, '双清区', '', 0, 0, 'S', '111.50344150643', '27.239108783297', 430500, 3, 'tr_0 tr_430000 tr_430500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430503, '大祥区', '', 0, 0, 'D', '111.44552828921', '27.227013968694', 430500, 3, 'tr_0 tr_430000 tr_430500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430511, '北塔区', '', 0, 0, 'B', '111.45849694619', '27.251536276174', 430500, 3, 'tr_0 tr_430000 tr_430500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430521, '邵东县', '', 0, 0, 'S', '111.75049070296', '27.264507471566', 430500, 3, 'tr_0 tr_430000 tr_430500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430522, '新邵县', '', 0, 0, 'X', '111.46444938799', '27.32713173916', 430500, 3, 'tr_0 tr_430000 tr_430500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430523, '邵阳县', '', 0, 0, 'S', '111.28050768064', '26.996528332196', 430500, 3, 'tr_0 tr_430000 tr_430500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430524, '隆回县', '', 0, 0, 'L', '111.03950668528', '27.119946440019', 430500, 3, 'tr_0 tr_430000 tr_430500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430525, '洞口县', '', 0, 0, 'D', '110.58257909625', '27.065975437799', 430500, 3, 'tr_0 tr_430000 tr_430500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430527, '绥宁县', '', 0, 0, 'S', '110.16241987038', '26.588422719333', 430500, 3, 'tr_0 tr_430000 tr_430500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430528, '新宁县', '', 0, 0, 'X', '110.86349072744', '26.439723697954', 430500, 3, 'tr_0 tr_430000 tr_430500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430529, '城步苗族自治县', '', 0, 0, 'C', '110.32853713032', '26.396203220078', 430500, 3, 'tr_0 tr_430000 tr_430500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430581, '武冈市', '', 0, 0, 'W', '110.63840761588', '26.732898572992', 430500, 3, 'tr_0 tr_430000 tr_430500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430602, '岳阳楼区', '', 0, 0, 'Y', '113.13648070435', '29.377995036881', 430600, 3, 'tr_0 tr_430000 tr_430600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430603, '云溪区', '', 0, 0, 'Y', '113.27840659691', '29.479907141133', 430600, 3, 'tr_0 tr_430000 tr_430600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430611, '君山区', '', 0, 0, 'J', '113.0125171491', '29.467129185832', 430600, 3, 'tr_0 tr_430000 tr_430600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430621, '岳阳县', '', 0, 0, 'Y', '113.1225444825', '29.150269316045', 430600, 3, 'tr_0 tr_430000 tr_430600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430623, '华容县', '', 0, 0, 'H', '112.54746151216', '29.536286434382', 430600, 3, 'tr_0 tr_430000 tr_430600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430624, '湘阴县', '', 0, 0, 'X', '112.88952187736', '28.676676377581', 430600, 3, 'tr_0 tr_430000 tr_430600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430626, '平江县', '', 0, 0, 'P', '113.58760362284', '28.707564248115', 430600, 3, 'tr_0 tr_430000 tr_430600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430671, '岳阳市屈原管理区', '', 0, 0, 'Y', '112.92259003029', '28.866288191728', 430600, 3, 'tr_0 tr_430000 tr_430600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430681, '汨罗市', '', 0, 0, 'M', '113.07349286947', '28.812454694812', 430600, 3, 'tr_0 tr_430000 tr_430600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430682, '临湘市', '', 0, 0, 'L', '113.45656151', '29.482801373395', 430600, 3, 'tr_0 tr_430000 tr_430600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430702, '武陵区', '', 0, 0, 'W', '111.68954489616', '29.060783476578', 430700, 3, 'tr_0 tr_430000 tr_430700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430703, '鼎城区', '', 0, 0, 'D', '111.68752209182', '29.024443397066', 430700, 3, 'tr_0 tr_430000 tr_430700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430721, '安乡县', '', 0, 0, 'A', '112.1775061558', '29.41732043222', 430700, 3, 'tr_0 tr_430000 tr_430700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430722, '汉寿县', '', 0, 0, 'H', '111.97641193356', '28.912287603085', 430700, 3, 'tr_0 tr_430000 tr_430700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430723, '澧县', '', 0, 0, 'L', '111.76553354736', '29.638946004609', 430700, 3, 'tr_0 tr_430000 tr_430700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430724, '临澧县', '', 0, 0, 'L', '111.65358500797', '29.446543990119', 430700, 3, 'tr_0 tr_430000 tr_430700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430725, '桃源县', '', 0, 0, 'T', '111.49540733145', '28.908694006999', 430700, 3, 'tr_0 tr_430000 tr_430700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430726, '石门县', '', 0, 0, 'S', '111.38645140702', '29.59036596665', 430700, 3, 'tr_0 tr_430000 tr_430700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430771, '常德市西洞庭管理区', '', 0, 0, 'C', '112.0093067782', '29.197804478833', 430700, 3, 'tr_0 tr_430000 tr_430700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430781, '津市市', '', 0, 0, 'J', '111.88451734602', '29.611258543007', 430700, 3, 'tr_0 tr_430000 tr_430700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430802, '永定区', '', 0, 0, 'Y', '110.54443192397', '29.126190558381', 430800, 3, 'tr_0 tr_430000 tr_430800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430811, '武陵源区', '', 0, 0, 'W', '110.5574989454', '29.351681136671', 430800, 3, 'tr_0 tr_430000 tr_430800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430821, '慈利县', '', 0, 0, 'C', '111.14547125235', '29.435986725969', 430800, 3, 'tr_0 tr_430000 tr_430800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430822, '桑植县', '', 0, 0, 'S', '110.17041335213', '29.405923219415', 430800, 3, 'tr_0 tr_430000 tr_430800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430902, '资阳区', '', 0, 0, 'Z', '112.33043548238', '28.597234549737', 430900, 3, 'tr_0 tr_430000 tr_430900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430903, '赫山区', '', 0, 0, 'H', '112.38059794001', '28.584983567573', 430900, 3, 'tr_0 tr_430000 tr_430900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430921, '南县', '', 0, 0, 'N', '112.40254156734', '29.367069853363', 430900, 3, 'tr_0 tr_430000 tr_430900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430922, '桃江县', '', 0, 0, 'T', '112.16254146398', '28.523870869898', 430900, 3, 'tr_0 tr_430000 tr_430900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'); +INSERT INTO `hg_sys_provinces` (`id`, `title`, `short_title`, `areacode`, `zipcode`, `pinyin`, `lng`, `lat`, `pid`, `level`, `tree`, `sort`, `status`, `created_at`, `updated_at`) VALUES +(430923, '安化县', '', 0, 0, 'A', '111.21949270432', '28.380053748765', 430900, 3, 'tr_0 tr_430000 tr_430900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430971, '益阳市大通湖管理区', '', 0, 0, 'Y', '112.65023278281', '29.193681230112', 430900, 3, 'tr_0 tr_430000 tr_430900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430972, '湖南益阳高新技术产业园区', '', 0, 0, 'H', '112.3715604476', '28.816150235875', 430900, 3, 'tr_0 tr_430000 tr_430900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430981, '沅江市', '', 0, 0, 'Y', '112.36053222035', '28.850233588583', 430900, 3, 'tr_0 tr_430000 tr_430900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431002, '北湖区', '', 0, 0, 'B', '113.01748199382', '25.79081459434', 431000, 3, 'tr_0 tr_430000 tr_431000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431003, '苏仙区', '', 0, 0, 'S', '113.04842340846', '25.806737374104', 431000, 3, 'tr_0 tr_430000 tr_431000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431021, '桂阳县', '', 0, 0, 'G', '112.74056036622', '25.759775327893', 431000, 3, 'tr_0 tr_430000 tr_431000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431022, '宜章县', '', 0, 0, 'Y', '112.95547924076', '25.405713969356', 431000, 3, 'tr_0 tr_430000 tr_431000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431023, '永兴县', '', 0, 0, 'Y', '113.12253316386', '26.132968478533', 431000, 3, 'tr_0 tr_430000 tr_431000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431024, '嘉禾县', '', 0, 0, 'J', '112.37558377831', '25.593421718268', 431000, 3, 'tr_0 tr_430000 tr_431000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431025, '临武县', '', 0, 0, 'L', '112.57041115183', '25.282527010969', 431000, 3, 'tr_0 tr_430000 tr_431000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431026, '汝城县', '', 0, 0, 'R', '113.69154466692', '25.556056733978', 431000, 3, 'tr_0 tr_430000 tr_431000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431027, '桂东县', '', 0, 0, 'G', '113.9515936018', '26.083173927327', 431000, 3, 'tr_0 tr_430000 tr_431000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431028, '安仁县', '', 0, 0, 'A', '113.27542359381', '26.715682788508', 431000, 3, 'tr_0 tr_430000 tr_431000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431081, '资兴市', '', 0, 0, 'Z', '113.24255612233', '25.981873602722', 431000, 3, 'tr_0 tr_430000 tr_431000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431102, '零陵区', '', 0, 0, 'L', '111.63750237493', '26.227682089779', 431100, 3, 'tr_0 tr_430000 tr_431100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431103, '冷水滩区', '', 0, 0, 'L', '111.59842608526', '26.467705510832', 431100, 3, 'tr_0 tr_430000 tr_431100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431121, '祁阳县', '', 0, 0, 'Q', '111.84742029288', '26.586434994948', 431100, 3, 'tr_0 tr_430000 tr_431100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431122, '东安县', '', 0, 0, 'D', '111.32354235354', '26.398288039365', 431100, 3, 'tr_0 tr_430000 tr_431100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431123, '双牌县', '', 0, 0, 'S', '111.6675938129', '25.967169239803', 431100, 3, 'tr_0 tr_430000 tr_431100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431124, '道县', '', 0, 0, 'D', '111.60740437934', '25.53252996283', 431100, 3, 'tr_0 tr_430000 tr_431100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431125, '江永县', '', 0, 0, 'J', '111.35043663236', '25.279720667918', 431100, 3, 'tr_0 tr_430000 tr_431100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431126, '宁远县', '', 0, 0, 'N', '111.95245340697', '25.57705193746', 431100, 3, 'tr_0 tr_430000 tr_431100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431127, '蓝山县', '', 0, 0, 'L', '112.20343493586', '25.37593472464', 431100, 3, 'tr_0 tr_430000 tr_431100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431128, '新田县', '', 0, 0, 'X', '112.21040920018', '25.909825802754', 431100, 3, 'tr_0 tr_430000 tr_431100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431129, '江华瑶族自治县', '', 0, 0, 'J', '111.58545203845', '25.191348924015', 431100, 3, 'tr_0 tr_430000 tr_431100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431171, '永州经济技术开发区', '', 0, 0, 'Y', '111.61945505792', '26.4258641179', 431100, 3, 'tr_0 tr_430000 tr_431100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431172, '永州市金洞管理区', '', 0, 0, 'Y', '112.09909809837', '26.297256941493', 431100, 3, 'tr_0 tr_430000 tr_431100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431173, '永州市回龙圩管理区', '', 0, 0, 'Y', '111.35307783022', '25.173038319623', 431100, 3, 'tr_0 tr_430000 tr_431100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431202, '鹤城区', '', 0, 0, 'H', '110.04639994092', '27.585225763164', 431200, 3, 'tr_0 tr_430000 tr_431200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431221, '中方县', '', 0, 0, 'Z', '109.95146189432', '27.44608117406', 431200, 3, 'tr_0 tr_430000 tr_431200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431222, '沅陵县', '', 0, 0, 'Y', '110.40043076602', '28.459018102626', 431200, 3, 'tr_0 tr_430000 tr_431200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431223, '辰溪县', '', 0, 0, 'C', '110.19048661755', '28.012605313813', 431200, 3, 'tr_0 tr_430000 tr_431200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431224, '溆浦县', '', 0, 0, 'X', '110.60155112895', '27.913963373886', 431200, 3, 'tr_0 tr_430000 tr_431200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431225, '会同县', '', 0, 0, 'H', '109.74158556792', '26.893383817274', 431200, 3, 'tr_0 tr_430000 tr_431200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431226, '麻阳苗族自治县', '', 0, 0, 'M', '109.80943628984', '27.87193016295', 431200, 3, 'tr_0 tr_430000 tr_431200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431227, '新晃侗族自治县', '', 0, 0, 'X', '109.18147151144', '27.358782968573', 431200, 3, 'tr_0 tr_430000 tr_431200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431228, '芷江侗族自治县', '', 0, 0, 'Z', '109.6914022696', '27.449513277765', 431200, 3, 'tr_0 tr_430000 tr_431200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431229, '靖州苗族侗族自治县', '', 0, 0, 'J', '109.70245160703', '26.581321351066', 431200, 3, 'tr_0 tr_430000 tr_431200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431230, '通道侗族自治县', '', 0, 0, 'T', '109.79044548256', '26.164219864712', 431200, 3, 'tr_0 tr_430000 tr_431200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431271, '怀化市洪江管理区', '', 0, 0, 'H', '109.8435098263', '27.215077093932', 431200, 3, 'tr_0 tr_430000 tr_431200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431281, '洪江市', '', 0, 0, 'H', '109.8435098263', '27.215077093932', 431200, 3, 'tr_0 tr_430000 tr_431200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431302, '娄星区', '', 0, 0, 'L', '112.00855842504', '27.735604842109', 431300, 3, 'tr_0 tr_430000 tr_431300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431321, '双峰县', '', 0, 0, 'S', '112.18146049666', '27.462982658573', 431300, 3, 'tr_0 tr_430000 tr_431300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431322, '新化县', '', 0, 0, 'X', '111.334515335', '27.732666751066', 431300, 3, 'tr_0 tr_430000 tr_431300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431381, '冷水江市', '', 0, 0, 'L', '111.44153972291', '27.692058848958', 431300, 3, 'tr_0 tr_430000 tr_431300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(431382, '涟源市', '', 0, 0, 'L', '111.67056199396', '27.698167532255', 431300, 3, 'tr_0 tr_430000 tr_431300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(433101, '吉首市', '', 0, 0, 'J', '109.70444880967', '28.267493127593', 433100, 3, 'tr_0 tr_430000 tr_433100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(433122, '泸溪县', '', 0, 0, 'L', '110.22659921769', '28.221873097569', 433100, 3, 'tr_0 tr_430000 tr_433100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(433123, '凤凰县', '', 0, 0, 'F', '109.6055266883', '27.953847809726', 433100, 3, 'tr_0 tr_430000 tr_433100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(433124, '花垣县', '', 0, 0, 'H', '109.48856183128', '28.577909934397', 433100, 3, 'tr_0 tr_430000 tr_433100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(433125, '保靖县', '', 0, 0, 'B', '109.66647357306', '28.705968872486', 433100, 3, 'tr_0 tr_430000 tr_433100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(433126, '古丈县', '', 0, 0, 'G', '109.95750740057', '28.623083527843', 433100, 3, 'tr_0 tr_430000 tr_433100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(433127, '永顺县', '', 0, 0, 'Y', '109.86358578665', '28.985774485682', 433100, 3, 'tr_0 tr_430000 tr_433100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(433130, '龙山县', '', 0, 0, 'L', '109.45041573696', '29.464121765857', 433100, 3, 'tr_0 tr_430000 tr_433100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(433172, '湖南吉首经济开发区', '', 0, 0, 'H', '109.70444880967', '28.267493127593', 433100, 3, 'tr_0 tr_430000 tr_433100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(433173, '湖南永顺经济开发区', '', 0, 0, 'H', '109.86358578665', '28.985774485682', 433100, 3, 'tr_0 tr_430000 tr_433100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440103, '荔湾区', '', 0, 0, 'L', '113.25050226337', '23.131791134975', 440100, 3, 'tr_0 tr_440000 tr_440100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440104, '越秀区', '', 0, 0, 'Y', '113.273426481', '23.135260120148', 440100, 3, 'tr_0 tr_440000 tr_440100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440105, '海珠区', '', 0, 0, 'H', '113.32353998097', '23.088981296648', 440100, 3, 'tr_0 tr_440000 tr_440100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440106, '天河区', '', 0, 0, 'T', '113.36850942428', '23.130357835105', 440100, 3, 'tr_0 tr_440000 tr_440100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440111, '白云区', '', 0, 0, 'B', '113.27943309062', '23.164316834456', 440100, 3, 'tr_0 tr_440000 tr_440100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440112, '黄埔区', '', 0, 0, 'H', '113.48707083969', '23.187491541425', 440100, 3, 'tr_0 tr_440000 tr_440100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440113, '番禺区', '', 0, 0, 'F', '113.39046958043', '22.943830731518', 440100, 3, 'tr_0 tr_440000 tr_440100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440114, '花都区', '', 0, 0, 'H', '113.22657580629', '23.411161504876', 440100, 3, 'tr_0 tr_440000 tr_440100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440115, '南沙区', '', 0, 0, 'N', '113.53143554372', '22.807929296528', 440100, 3, 'tr_0 tr_440000 tr_440100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440117, '从化区', '', 0, 0, 'C', '113.59358543922', '23.553985922578', 440100, 3, 'tr_0 tr_440000 tr_440100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440118, '增城区', '', 0, 0, 'Z', '113.8175456689', '23.266592400631', 440100, 3, 'tr_0 tr_440000 tr_440100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440203, '武江区', '', 0, 0, 'W', '113.59455578884', '24.798486030733', 440200, 3, 'tr_0 tr_440000 tr_440200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440204, '浈江区', '', 0, 0, 'Z', '113.61747740137', '24.810413749784', 440200, 3, 'tr_0 tr_440000 tr_440200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440205, '曲江区', '', 0, 0, 'Q', '113.61150106465', '24.68840784638', 440200, 3, 'tr_0 tr_440000 tr_440200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440222, '始兴县', '', 0, 0, 'S', '114.06856735205', '24.958558154346', 440200, 3, 'tr_0 tr_440000 tr_440200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440224, '仁化县', '', 0, 0, 'R', '113.75544293443', '25.092287524428', 440200, 3, 'tr_0 tr_440000 tr_440200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440229, '翁源县', '', 0, 0, 'W', '114.13642723669', '24.356594490867', 440200, 3, 'tr_0 tr_440000 tr_440200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440232, '乳源瑶族自治县', '', 0, 0, 'R', '113.28243136492', '24.782333322942', 440200, 3, 'tr_0 tr_440000 tr_440200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440233, '新丰县', '', 0, 0, 'X', '114.21351173078', '24.065546505164', 440200, 3, 'tr_0 tr_440000 tr_440200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440281, '乐昌市', '', 0, 0, 'L', '113.3545786821', '25.135591561195', 440200, 3, 'tr_0 tr_440000 tr_440200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440282, '南雄市', '', 0, 0, 'N', '114.31857889065', '25.123526537362', 440200, 3, 'tr_0 tr_440000 tr_440200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440303, '罗湖区', '', 0, 0, 'L', '114.13743190157', '22.554484875856', 440300, 3, 'tr_0 tr_440000 tr_440300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440304, '福田区', '', 0, 0, 'F', '114.06154700466', '22.528465912072', 440300, 3, 'tr_0 tr_440000 tr_440300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440305, '南山区', '', 0, 0, 'N', '113.93653916925', '22.538500195784', 440300, 3, 'tr_0 tr_440000 tr_440300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440306, '宝安区', '', 0, 0, 'B', '113.89042744066', '22.560032908925', 440300, 3, 'tr_0 tr_440000 tr_440300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440307, '龙岗区', '', 0, 0, 'L', '114.25445487896', '22.726016550781', 440300, 3, 'tr_0 tr_440000 tr_440300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440308, '盐田区', '', 0, 0, 'Y', '114.2434301551', '22.563437914836', 440300, 3, 'tr_0 tr_440000 tr_440300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440309, '龙华区', '', 0, 0, 'L', '114.04852876121', '22.757596649222', 440300, 3, 'tr_0 tr_440000 tr_440300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440310, '坪山区', '', 0, 0, 'P', '114.35047403625', '22.716233464749', 440300, 3, 'tr_0 tr_440000 tr_440300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440311, '光明区', '', 0, 0, 'G', '113.94256006193', '22.754465883635', 440300, 3, 'tr_0 tr_440000 tr_440300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440402, '香洲区', '', 0, 0, 'X', '113.55047243408', '22.273003861799', 440400, 3, 'tr_0 tr_440000 tr_440400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440403, '斗门区', '', 0, 0, 'D', '113.30346725453', '22.215515662229', 440400, 3, 'tr_0 tr_440000 tr_440400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440404, '金湾区', '', 0, 0, 'J', '113.36951705357', '22.152576780675', 440400, 3, 'tr_0 tr_440000 tr_440400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440507, '龙湖区', '', 0, 0, 'L', '116.72352464693', '23.377775780628', 440500, 3, 'tr_0 tr_440000 tr_440500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440511, '金平区', '', 0, 0, 'J', '116.70955006744', '23.371750385773', 440500, 3, 'tr_0 tr_440000 tr_440500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440512, '濠江区', '', 0, 0, 'H', '116.73351658895', '23.291546359757', 440500, 3, 'tr_0 tr_440000 tr_440500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440513, '潮阳区', '', 0, 0, 'C', '116.6085145027', '23.270854956943', 440500, 3, 'tr_0 tr_440000 tr_440500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440514, '潮南区', '', 0, 0, 'C', '116.43949131427', '23.256341432673', 440500, 3, 'tr_0 tr_440000 tr_440500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440515, '澄海区', '', 0, 0, 'C', '116.76242504839', '23.472341401523', 440500, 3, 'tr_0 tr_440000 tr_440500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440523, '南澳县', '', 0, 0, 'N', '117.03049603113', '23.427812045946', 440500, 3, 'tr_0 tr_440000 tr_440500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440604, '禅城区', '', 0, 0, 'C', '113.12950518241', '23.015374368816', 440600, 3, 'tr_0 tr_440000 tr_440600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440605, '南海区', '', 0, 0, 'N', '113.14944567828', '23.035011446003', 440600, 3, 'tr_0 tr_440000 tr_440600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440606, '顺德区', '', 0, 0, 'S', '113.30045343954', '22.810453426795', 440600, 3, 'tr_0 tr_440000 tr_440600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440607, '三水区', '', 0, 0, 'S', '112.90347085515', '23.161920493984', 440600, 3, 'tr_0 tr_440000 tr_440600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440608, '高明区', '', 0, 0, 'G', '112.89947240749', '22.90634960163', 440600, 3, 'tr_0 tr_440000 tr_440600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440703, '蓬江区', '', 0, 0, 'P', '113.08454642894', '22.601065786023', 440700, 3, 'tr_0 tr_440000 tr_440700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440704, '江海区', '', 0, 0, 'J', '113.11755718015', '22.566115451824', 440700, 3, 'tr_0 tr_440000 tr_440700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440705, '新会区', '', 0, 0, 'X', '113.03845482239', '22.46511306052', 440700, 3, 'tr_0 tr_440000 tr_440700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440781, '台山市', '', 0, 0, 'T', '112.80044482505', '22.257923470251', 440700, 3, 'tr_0 tr_440000 tr_440700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440783, '开平市', '', 0, 0, 'K', '112.70446429491', '22.382499490201', 440700, 3, 'tr_0 tr_440000 tr_440700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440784, '鹤山市', '', 0, 0, 'H', '112.97052666653', '22.771169431377', 440700, 3, 'tr_0 tr_440000 tr_440700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440785, '恩平市', '', 0, 0, 'E', '112.31143757848', '22.189035201534', 440700, 3, 'tr_0 tr_440000 tr_440700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440802, '赤坎区', '', 0, 0, 'C', '110.37253254096', '21.272134812703', 440800, 3, 'tr_0 tr_440000 tr_440800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440803, '霞山区', '', 0, 0, 'X', '110.40442535096', '21.198227185303', 440800, 3, 'tr_0 tr_440000 tr_440800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440804, '坡头区', '', 0, 0, 'P', '110.46256709711', '21.250376738599', 440800, 3, 'tr_0 tr_440000 tr_440800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440811, '麻章区', '', 0, 0, 'M', '110.34057918516', '21.269188766567', 440800, 3, 'tr_0 tr_440000 tr_440800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440823, '遂溪县', '', 0, 0, 'S', '110.25651530642', '21.383102962029', 440800, 3, 'tr_0 tr_440000 tr_440800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440825, '徐闻县', '', 0, 0, 'X', '110.18247274427', '20.331723686702', 440800, 3, 'tr_0 tr_440000 tr_440800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440881, '廉江市', '', 0, 0, 'L', '110.29244770646', '21.615816495305', 440800, 3, 'tr_0 tr_440000 tr_440800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440882, '雷州市', '', 0, 0, 'L', '110.10258050648', '20.919880592716', 440800, 3, 'tr_0 tr_440000 tr_440800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440883, '吴川市', '', 0, 0, 'W', '110.78645034015', '21.447262768557', 440800, 3, 'tr_0 tr_440000 tr_440800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440902, '茂南区', '', 0, 0, 'M', '110.92554576188', '21.647152082304', 440900, 3, 'tr_0 tr_440000 tr_440900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440904, '电白区', '', 0, 0, 'D', '111.02047123221', '21.520351188198', 440900, 3, 'tr_0 tr_440000 tr_440900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440981, '高州市', '', 0, 0, 'G', '110.85947386452', '21.924048896771', 440900, 3, 'tr_0 tr_440000 tr_440900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440982, '化州市', '', 0, 0, 'H', '110.6464310112', '21.67023109387', 440900, 3, 'tr_0 tr_440000 tr_440900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(440983, '信宜市', '', 0, 0, 'X', '110.95358169717', '22.36009314173', 440900, 3, 'tr_0 tr_440000 tr_440900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441202, '端州区', '', 0, 0, 'D', '112.49156022979', '23.057563726176', 441200, 3, 'tr_0 tr_440000 tr_441200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441203, '鼎湖区', '', 0, 0, 'D', '112.57443448255', '23.164308112716', 441200, 3, 'tr_0 tr_440000 tr_441200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441204, '高要区', '', 0, 0, 'G', '112.46444604577', '23.031895546866', 441200, 3, 'tr_0 tr_440000 tr_441200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441223, '广宁县', '', 0, 0, 'G', '112.44742387501', '23.641035726333', 441200, 3, 'tr_0 tr_440000 tr_441200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441224, '怀集县', '', 0, 0, 'H', '112.19146878783', '23.917842129185', 441200, 3, 'tr_0 tr_440000 tr_441200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441225, '封开县', '', 0, 0, 'F', '111.51852585255', '23.429768921261', 441200, 3, 'tr_0 tr_440000 tr_441200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441226, '德庆县', '', 0, 0, 'D', '111.79155377493', '23.15137330611', 441200, 3, 'tr_0 tr_440000 tr_441200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441284, '四会市', '', 0, 0, 'S', '112.7405791408', '23.332381005175', 441200, 3, 'tr_0 tr_440000 tr_441200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441302, '惠城区', '', 0, 0, 'H', '114.38949004962', '23.089725972544', 441300, 3, 'tr_0 tr_440000 tr_441300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441303, '惠阳区', '', 0, 0, 'H', '114.46346443037', '22.794720878571', 441300, 3, 'tr_0 tr_440000 tr_441300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441322, '博罗县', '', 0, 0, 'B', '114.29657265143', '23.178805592433', 441300, 3, 'tr_0 tr_440000 tr_441300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441323, '惠东县', '', 0, 0, 'H', '114.72642585138', '22.991443112002', 441300, 3, 'tr_0 tr_440000 tr_441300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441324, '龙门县', '', 0, 0, 'L', '114.26143022124', '23.733838340062', 441300, 3, 'tr_0 tr_440000 tr_441300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441402, '梅江区', '', 0, 0, 'M', '116.12353597667', '24.315878769038', 441400, 3, 'tr_0 tr_440000 tr_441400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441403, '梅县区', '', 0, 0, 'M', '116.08856170928', '24.270999314695', 441400, 3, 'tr_0 tr_440000 tr_441400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441422, '大埔县', '', 0, 0, 'D', '116.70155892129', '24.353459468582', 441400, 3, 'tr_0 tr_440000 tr_441400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441423, '丰顺县', '', 0, 0, 'F', '116.18845382094', '23.745738303255', 441400, 3, 'tr_0 tr_440000 tr_441400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441424, '五华县', '', 0, 0, 'W', '115.78248548653', '23.938408899571', 441400, 3, 'tr_0 tr_440000 tr_441400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441426, '平远县', '', 0, 0, 'P', '115.89747694601', '24.572414126137', 441400, 3, 'tr_0 tr_440000 tr_441400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441427, '蕉岭县', '', 0, 0, 'J', '116.17743924793', '24.664992548662', 441400, 3, 'tr_0 tr_440000 tr_441400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441481, '兴宁市', '', 0, 0, 'X', '115.73757946359', '24.142293779322', 441400, 3, 'tr_0 tr_440000 tr_441400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441502, '城区', '', 0, 0, 'C', '115.37153074806', '22.784551839489', 441500, 3, 'tr_0 tr_440000 tr_441500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441521, '海丰县', '', 0, 0, 'H', '115.32944477561', '22.972744260966', 441500, 3, 'tr_0 tr_440000 tr_441500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441523, '陆河县', '', 0, 0, 'L', '115.66648271471', '23.30767707649', 441500, 3, 'tr_0 tr_440000 tr_441500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441581, '陆丰市', '', 0, 0, 'L', '115.78802975191', '22.967876723873', 441500, 3, 'tr_0 tr_440000 tr_441500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441602, '源城区', '', 0, 0, 'Y', '114.70843899033', '23.740298338347', 441600, 3, 'tr_0 tr_440000 tr_441600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441621, '紫金县', '', 0, 0, 'Z', '115.19044771834', '23.641430253189', 441600, 3, 'tr_0 tr_440000 tr_441600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441622, '龙川县', '', 0, 0, 'L', '115.26655548485', '24.105850721955', 441600, 3, 'tr_0 tr_440000 tr_441600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441623, '连平县', '', 0, 0, 'L', '114.49544419635', '24.375808067414', 441600, 3, 'tr_0 tr_440000 tr_441600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441624, '和平县', '', 0, 0, 'H', '114.9454488143', '24.448252767689', 441600, 3, 'tr_0 tr_440000 tr_441600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441625, '东源县', '', 0, 0, 'D', '114.7535083252', '23.794257873114', 441600, 3, 'tr_0 tr_440000 tr_441600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441702, '江城区', '', 0, 0, 'J', '111.96145451801', '21.868127886755', 441700, 3, 'tr_0 tr_440000 tr_441700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441704, '阳东区', '', 0, 0, 'Y', '112.01857947215', '21.873996844319', 441700, 3, 'tr_0 tr_440000 tr_441700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441721, '阳西县', '', 0, 0, 'Y', '111.62448107725', '21.758700627505', 441700, 3, 'tr_0 tr_440000 tr_441700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441781, '阳春市', '', 0, 0, 'Y', '111.7975361303', '22.17601480732', 441700, 3, 'tr_0 tr_440000 tr_441700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441802, '清城区', '', 0, 0, 'Q', '113.06947663537', '23.704022037925', 441800, 3, 'tr_0 tr_440000 tr_441800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441803, '清新区', '', 0, 0, 'Q', '112.99155779512', '23.754270337093', 441800, 3, 'tr_0 tr_440000 tr_441800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441821, '佛冈县', '', 0, 0, 'F', '113.53844124873', '23.885475421111', 441800, 3, 'tr_0 tr_440000 tr_441800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441823, '阳山县', '', 0, 0, 'Y', '112.64751954085', '24.47094363588', 441800, 3, 'tr_0 tr_440000 tr_441800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441825, '连山壮族瑶族自治县', '', 0, 0, 'L', '112.10042570409', '24.576845604093', 441800, 3, 'tr_0 tr_440000 tr_441800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441826, '连南瑶族自治县', '', 0, 0, 'L', '112.29351728187', '24.73154858148', 441800, 3, 'tr_0 tr_440000 tr_441800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441881, '英德市', '', 0, 0, 'Y', '113.42144297474', '24.191939355217', 441800, 3, 'tr_0 tr_440000 tr_441800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441882, '连州市', '', 0, 0, 'L', '112.38357258887', '24.786466855047', 441800, 3, 'tr_0 tr_440000 tr_441800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900003, '东城街道办事处', '', 0, 0, 'D', '113.78961542643', '23.033927867022', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900004, '南城街道办事处', '', 0, 0, 'N', '113.74972154669', '23.02491560037', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900005, '万江街道办事处', '', 0, 0, 'W', '113.70128466119', '23.044382337638', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900006, '莞城街道办事处', '', 0, 0, 'G', '113.7555643548', '23.04532373021', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900101, '石碣镇', '', 0, 0, 'S', '113.81395530616', '23.105172244651', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900102, '石龙镇', '', 0, 0, 'S', '113.84749077289', '23.115219876975', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900103, '茶山镇', '', 0, 0, 'C', '113.89350241139', '23.069002516534', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900104, '石排镇', '', 0, 0, 'S', '113.96394649371', '23.088334509001', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900105, '企石镇', '', 0, 0, 'Q', '114.04851828338', '23.070690716193', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900106, '横沥镇', '', 0, 0, 'H', '113.98801324096', '23.030051448767', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900107, '桥头镇', '', 0, 0, 'Q', '114.10677408198', '23.020458678747', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900108, '谢岗镇', '', 0, 0, 'X', '114.19511437465', '22.946513843008', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900109, '东坑镇', '', 0, 0, 'D', '113.95246820282', '23.002958656049', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900110, '常平镇', '', 0, 0, 'C', '114.02458867145', '22.979369177741', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900111, '寮步镇', '', 0, 0, 'L', '113.88349112257', '22.996428153649', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900112, '樟木头镇', '', 0, 0, 'Z', '114.11559876672', '22.912795269745', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900113, '大朗镇', '', 0, 0, 'D', '113.94820653279', '22.912348752542', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900114, '黄江镇', '', 0, 0, 'H', '114.00621531625', '22.872431801821', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900115, '清溪镇', '', 0, 0, 'Q', '114.18744982903', '22.841601621999', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900116, '塘厦镇', '', 0, 0, 'T', '114.08442795001', '22.811576132112', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900117, '凤岗镇', '', 0, 0, 'F', '114.17560299034', '22.722315801247', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900118, '大岭山镇', '', 0, 0, 'D', '113.83293372133', '22.903546239236', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900119, '长安镇', '', 0, 0, 'Z', '113.76998309965', '22.795308241444', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900121, '虎门镇', '', 0, 0, 'H', '113.68188667267', '22.818449805406', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900122, '厚街镇', '', 0, 0, 'H', '113.7081456375', '22.923357615893', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900123, '沙田镇', '', 0, 0, 'S', '113.60821459687', '22.907479676518', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900124, '道滘镇', '', 0, 0, 'D', '113.66267069882', '22.982801242639', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900125, '洪梅镇', '', 0, 0, 'H', '113.6125183112', '22.978946913376', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900126, '麻涌镇', '', 0, 0, 'M', '113.58837988097', '23.057083015858', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900127, '望牛墩镇', '', 0, 0, 'W', '113.64023583492', '23.047597838769', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900128, '中堂镇', '', 0, 0, 'Z', '113.65890566238', '23.096485679975', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900129, '高埗镇', '', 0, 0, 'G', '113.74213386638', '23.100270479205', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900401, '松山湖管委会', '', 0, 0, 'S', '113.90386183402', '22.928504587758', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900402, '东莞港', '', 0, 0, 'D', '113.75842045788', '23.027308411643', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(441900403, '东莞生态园', '', 0, 0, 'D', '113.93331900631', '23.069150651008', 441900, 3, 'tr_0 tr_440000 tr_441900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(442000001, '石岐区街道办事处', '', 0, 0, 'S', '113.39476330111', '22.543405990677', 442000, 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(442000002, '东区街道办事处', '', 0, 0, 'D', '113.39942236263', '22.522314670791', 442000, 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(442000003, '火炬开发区街道办事处', '', 0, 0, 'H', '113.47638423802', '22.54191612433', 442000, 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(442000004, '西区街道办事处', '', 0, 0, 'X', '113.34742851429', '22.557446683319', 442000, 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(442000005, '南区街道办事处', '', 0, 0, 'N', '113.34166389111', '22.474593624741', 442000, 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(442000006, '五桂山街道办事处', '', 0, 0, 'W', '113.40930659782', '22.451434375841', 442000, 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(442000100, '小榄镇', '', 0, 0, 'X', '113.25710033351', '22.668653898989', 442000, 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(442000101, '黄圃镇', '', 0, 0, 'H', '113.38940119784', '22.732151367196', 442000, 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(442000102, '民众镇', '', 0, 0, 'M', '113.50030740281', '22.624234006676', 442000, 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(442000103, '东凤镇', '', 0, 0, 'D', '113.26337563889', '22.696772350456', 442000, 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(442000104, '东升镇', '', 0, 0, 'D', '113.31347763067', '22.605137527398', 442000, 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(442000105, '古镇镇', '', 0, 0, 'G', '113.18899941194', '22.636034421686', 442000, 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(442000106, '沙溪镇', '', 0, 0, 'S', '113.35710852331', '22.513668030794', 442000, 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(442000107, '坦洲镇', '', 0, 0, 'T', '113.46831862593', '22.283731940242', 442000, 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(442000108, '港口镇', '', 0, 0, 'G', '113.38354521878', '22.577121999043', 442000, 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(442000109, '三角镇', '', 0, 0, 'S', '113.42740190231', '22.685663488493', 442000, 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(442000110, '横栏镇', '', 0, 0, 'H', '113.24834255727', '22.574461443704', 442000, 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(442000111, '南头镇', '', 0, 0, 'N', '113.29481042537', '22.721261074602', 442000, 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(442000112, '阜沙镇', '', 0, 0, 'F', '113.34269477842', '22.666128002352', 442000, 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(442000113, '南朗镇', '', 0, 0, 'N', '113.56057493505', '22.519486447352', 442000, 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(442000114, '三乡镇', '', 0, 0, 'S', '113.42695556574', '22.371470122528', 442000, 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(442000115, '板芙镇', '', 0, 0, 'B', '113.33339573359', '22.395149046719', 442000, 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(442000116, '大涌镇', '', 0, 0, 'D', '113.29404791311', '22.483908949365', 442000, 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(442000117, '神湾镇', '', 0, 0, 'S', '113.35331518036', '22.32576323421', 442000, 3, 'tr_0 tr_440000 tr_442000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(445102, '湘桥区', '', 0, 0, 'X', '116.63446160819', '23.680686981566', 445100, 3, 'tr_0 tr_440000 tr_445100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(445103, '潮安区', '', 0, 0, 'C', '116.68452606069', '23.468357129831', 445100, 3, 'tr_0 tr_440000 tr_445100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(445122, '饶平县', '', 0, 0, 'R', '117.01044917588', '23.670347111195', 445100, 3, 'tr_0 tr_440000 tr_445100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(445202, '榕城区', '', 0, 0, 'R', '116.37351589492', '23.530746417966', 445200, 3, 'tr_0 tr_440000 tr_445200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(445203, '揭东区', '', 0, 0, 'J', '116.41845578398', '23.572485187047', 445200, 3, 'tr_0 tr_440000 tr_445200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(445222, '揭西县', '', 0, 0, 'J', '115.84856088728', '23.437299708209', 445200, 3, 'tr_0 tr_440000 tr_445200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(445224, '惠来县', '', 0, 0, 'H', '116.30144448456', '23.039645374525', 445200, 3, 'tr_0 tr_440000 tr_445200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(445281, '普宁市', '', 0, 0, 'P', '116.17244898117', '23.30363452186', 445200, 3, 'tr_0 tr_440000 tr_445200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430102, '芙蓉区', '', 0, 0, 'F', '113.03940774487', '28.191913247305', 430100, 3, 'tr_0 tr_430000 tr_430100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430103, '天心区', '', 0, 0, 'T', '112.99659225852', '28.118211217441', 430100, 3, 'tr_0 tr_430000 tr_430100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430104, '岳麓区', '', 0, 0, 'Y', '112.9374476441', '28.241488836473', 430100, 3, 'tr_0 tr_430000 tr_430100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430105, '开福区', '', 0, 0, 'K', '112.99258491764', '28.261378687684', 430100, 3, 'tr_0 tr_430000 tr_430100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430111, '雨花区', '', 0, 0, 'Y', '113.04242155986', '28.142232711654', 430100, 3, 'tr_0 tr_430000 tr_430100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430112, '望城区', '', 0, 0, 'W', '112.8244661432', '28.367403020376', 430100, 3, 'tr_0 tr_430000 tr_430100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430121, '长沙县', '', 0, 0, 'Z', '113.08755916596', '28.251818487944', 430100, 3, 'tr_0 tr_430000 tr_430100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430181, '浏阳市', '', 0, 0, 'L', '113.64939823851', '28.169832216071', 430100, 3, 'tr_0 tr_430000 tr_430100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(430182, '宁乡市', '', 0, 0, 'N', '112.55840691564', '28.284104536209', 430100, 3, 'tr_0 tr_430000 tr_430100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(445302, '云城区', '', 0, 0, 'Y', '112.05052923472', '22.933897802971', 445300, 3, 'tr_0 tr_440000 tr_445300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(445303, '云安区', '', 0, 0, 'Y', '112.00956308992', '23.076892611911', 445300, 3, 'tr_0 tr_440000 tr_445300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(445321, '新兴县', '', 0, 0, 'X', '112.23149683219', '22.701890082606', 445300, 3, 'tr_0 tr_440000 tr_445300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(445322, '郁南县', '', 0, 0, 'Y', '111.54155382446', '23.240174042653', 445300, 3, 'tr_0 tr_440000 tr_445300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(445381, '罗定市', '', 0, 0, 'L', '111.57648048166', '22.774296060763', 445300, 3, 'tr_0 tr_440000 tr_445300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450102, '兴宁区', '', 0, 0, 'X', '108.37544497422', '22.860290951255', 450100, 3, 'tr_0 tr_450000 tr_450100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450103, '青秀区', '', 0, 0, 'Q', '108.50143861009', '22.792227439631', 450100, 3, 'tr_0 tr_450000 tr_450100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450105, '江南区', '', 0, 0, 'J', '108.27949435764', '22.787045753588', 450100, 3, 'tr_0 tr_450000 tr_450100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450107, '西乡塘区', '', 0, 0, 'X', '108.31957243762', '22.839651509339', 450100, 3, 'tr_0 tr_450000 tr_450100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450108, '良庆区', '', 0, 0, 'L', '108.32751579392', '22.76284928359', 450100, 3, 'tr_0 tr_450000 tr_450100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450109, '邕宁区', '', 0, 0, 'Y', '108.49342024528', '22.76460044955', 450100, 3, 'tr_0 tr_450000 tr_450100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450110, '武鸣区', '', 0, 0, 'W', '108.28151653318', '23.164515606911', 450100, 3, 'tr_0 tr_450000 tr_450100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450123, '隆安县', '', 0, 0, 'L', '107.70257390338', '23.171585249828', 450100, 3, 'tr_0 tr_450000 tr_450100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450124, '马山县', '', 0, 0, 'M', '108.18356215633', '23.71387772536', 450100, 3, 'tr_0 tr_450000 tr_450100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450125, '上林县', '', 0, 0, 'S', '108.61145148078', '23.438518877663', 450100, 3, 'tr_0 tr_450000 tr_450100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450126, '宾阳县', '', 0, 0, 'B', '108.81650237947', '23.223700543767', 450100, 3, 'tr_0 tr_450000 tr_450100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450127, '横县', '', 0, 0, 'H', '109.2675678064', '22.685572608838', 450100, 3, 'tr_0 tr_450000 tr_450100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450202, '城中区', '', 0, 0, 'C', '109.4174821502', '24.321314069891', 450200, 3, 'tr_0 tr_450000 tr_450200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450203, '鱼峰区', '', 0, 0, 'Y', '109.44941628225', '24.318521699515', 450200, 3, 'tr_0 tr_450000 tr_450200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450204, '柳南区', '', 0, 0, 'L', '109.39155193285', '24.341578870912', 450200, 3, 'tr_0 tr_450000 tr_450200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450205, '柳北区', '', 0, 0, 'L', '109.40853179342', '24.367867017648', 450200, 3, 'tr_0 tr_450000 tr_450200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450206, '柳江区', '', 0, 0, 'L', '109.33244423878', '24.26081496535', 450200, 3, 'tr_0 tr_450000 tr_450200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450222, '柳城县', '', 0, 0, 'L', '109.25156152934', '24.656370391486', 450200, 3, 'tr_0 tr_450000 tr_450200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450223, '鹿寨县', '', 0, 0, 'L', '109.75755447547', '24.478622266898', 450200, 3, 'tr_0 tr_450000 tr_450200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450224, '融安县', '', 0, 0, 'R', '109.40456325934', '25.230511447128', 450200, 3, 'tr_0 tr_450000 tr_450200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450225, '融水苗族自治县', '', 0, 0, 'R', '109.26256083115', '25.072076504109', 450200, 3, 'tr_0 tr_450000 tr_450200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450226, '三江侗族自治县', '', 0, 0, 'S', '109.61454747223', '25.788830387788', 450200, 3, 'tr_0 tr_450000 tr_450200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450302, '秀峰区', '', 0, 0, 'X', '110.27043670622', '25.27961848567', 450300, 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450303, '叠彩区', '', 0, 0, 'D', '110.30846314624', '25.320233274843', 450300, 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450304, '象山区', '', 0, 0, 'X', '110.28742267527', '25.267930010211', 450300, 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450305, '七星区', '', 0, 0, 'Q', '110.32453805385', '25.2585670875', 450300, 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450311, '雁山区', '', 0, 0, 'Y', '110.3154792716', '25.066213543917', 450300, 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450312, '临桂区', '', 0, 0, 'L', '110.21858669186', '25.244301999271', 450300, 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450321, '阳朔县', '', 0, 0, 'Y', '110.50347503171', '24.784519191433', 450300, 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450323, '灵川县', '', 0, 0, 'L', '110.33253719492', '25.41554953076', 450300, 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450324, '全州县', '', 0, 0, 'Q', '111.07956895508', '25.934343027361', 450300, 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450325, '兴安县', '', 0, 0, 'X', '110.67851632807', '25.617567220037', 450300, 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450326, '永福县', '', 0, 0, 'Y', '109.989590831', '24.985577973084', 450300, 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450327, '灌阳县', '', 0, 0, 'G', '111.16755205093', '25.495120752051', 450300, 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450328, '龙胜各族自治县', '', 0, 0, 'L', '110.01749399674', '25.804116784254', 450300, 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450329, '资源县', '', 0, 0, 'Z', '110.6584391101', '26.048569077338', 450300, 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450330, '平乐县', '', 0, 0, 'P', '110.64944626347', '24.63963212806', 450300, 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450332, '恭城瑶族自治县', '', 0, 0, 'G', '110.8345596307', '24.837194365911', 450300, 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450381, '荔浦市', '', 0, 0, 'L', '110.40143677836', '24.494121641923', 450300, 3, 'tr_0 tr_450000 tr_450300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450403, '万秀区', '', 0, 0, 'W', '111.32751969101', '23.478845767296', 450400, 3, 'tr_0 tr_450000 tr_450400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450405, '长洲区', '', 0, 0, 'Z', '111.28149914043', '23.491509584406', 450400, 3, 'tr_0 tr_450000 tr_450400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450406, '龙圩区', '', 0, 0, 'L', '111.25344829326', '23.421414485718', 450400, 3, 'tr_0 tr_450000 tr_450400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450421, '苍梧县', '', 0, 0, 'C', '111.55554663956', '23.845998205466', 450400, 3, 'tr_0 tr_450000 tr_450400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450422, '藤县', '', 0, 0, 'T', '110.92149925488', '23.38100991555', 450400, 3, 'tr_0 tr_450000 tr_450400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450423, '蒙山县', '', 0, 0, 'M', '110.53141700425', '24.200017445935', 450400, 3, 'tr_0 tr_450000 tr_450400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450481, '岑溪市', '', 0, 0, 'C', '111.00143182659', '22.92462127872', 450400, 3, 'tr_0 tr_450000 tr_450400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450502, '海城区', '', 0, 0, 'H', '109.12452136755', '21.481065838236', 450500, 3, 'tr_0 tr_450000 tr_450500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450503, '银海区', '', 0, 0, 'Y', '109.14654476441', '21.454768668895', 450500, 3, 'tr_0 tr_450000 tr_450500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450512, '铁山港区', '', 0, 0, 'T', '109.42847264862', '21.53529504285', 450500, 3, 'tr_0 tr_450000 tr_450500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450521, '合浦县', '', 0, 0, 'H', '109.2134386113', '21.667005735642', 450500, 3, 'tr_0 tr_450000 tr_450500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450602, '港口区', '', 0, 0, 'G', '108.38648254385', '21.649565586624', 450600, 3, 'tr_0 tr_450000 tr_450600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450603, '防城区', '', 0, 0, 'F', '108.36044848238', '21.775411305197', 450600, 3, 'tr_0 tr_450000 tr_450600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450621, '上思县', '', 0, 0, 'S', '107.99044264125', '22.15991408311', 450600, 3, 'tr_0 tr_450000 tr_450600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450681, '东兴市', '', 0, 0, 'D', '107.97748898597', '21.55361543358', 450600, 3, 'tr_0 tr_450000 tr_450600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450802, '港北区', '', 0, 0, 'G', '109.57843298566', '23.117563632764', 450800, 3, 'tr_0 tr_450000 tr_450800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450803, '港南区', '', 0, 0, 'G', '109.6065534515', '23.08123957836', 450800, 3, 'tr_0 tr_450000 tr_450800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450804, '覃塘区', '', 0, 0, 'T', '109.45942672936', '23.133251089213', 450800, 3, 'tr_0 tr_450000 tr_450800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450821, '平南县', '', 0, 0, 'P', '110.39845197864', '23.545506098828', 450800, 3, 'tr_0 tr_450000 tr_450800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450881, '桂平市', '', 0, 0, 'G', '110.08552599672', '23.400048883699', 450800, 3, 'tr_0 tr_450000 tr_450800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450902, '玉州区', '', 0, 0, 'Y', '110.15743140022', '22.634492736172', 450900, 3, 'tr_0 tr_450000 tr_450900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450903, '福绵区', '', 0, 0, 'F', '110.08853765577', '22.563705412249', 450900, 3, 'tr_0 tr_450000 tr_450900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450921, '容县', '', 0, 0, 'R', '110.56453016229', '22.863665599935', 450900, 3, 'tr_0 tr_450000 tr_450900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'); +INSERT INTO `hg_sys_provinces` (`id`, `title`, `short_title`, `areacode`, `zipcode`, `pinyin`, `lng`, `lat`, `pid`, `level`, `tree`, `sort`, `status`, `created_at`, `updated_at`) VALUES +(450922, '陆川县', '', 0, 0, 'L', '110.27045619945', '22.327221527769', 450900, 3, 'tr_0 tr_450000 tr_450900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450923, '博白县', '', 0, 0, 'B', '109.98255305648', '22.278674815493', 450900, 3, 'tr_0 tr_450000 tr_450900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450924, '兴业县', '', 0, 0, 'X', '109.88155180701', '22.742267653423', 450900, 3, 'tr_0 tr_450000 tr_450900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450981, '北流市', '', 0, 0, 'B', '110.36057016581', '22.713958021611', 450900, 3, 'tr_0 tr_450000 tr_450900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451002, '右江区', '', 0, 0, 'Y', '106.62558913969', '23.907084503109', 451000, 3, 'tr_0 tr_450000 tr_451000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451021, '田阳县', '', 0, 0, 'T', '106.9214125525', '23.742005722478', 451000, 3, 'tr_0 tr_450000 tr_451000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451022, '田东县', '', 0, 0, 'T', '107.13249943541', '23.603129804015', 451000, 3, 'tr_0 tr_450000 tr_451000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451023, '平果县', '', 0, 0, 'P', '107.59657106849', '23.334922742592', 451000, 3, 'tr_0 tr_450000 tr_451000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451024, '德保县', '', 0, 0, 'D', '106.62158260728', '23.328994351286', 451000, 3, 'tr_0 tr_450000 tr_451000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451026, '那坡县', '', 0, 0, 'N', '105.83942261017', '23.393793831292', 451000, 3, 'tr_0 tr_450000 tr_451000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451027, '凌云县', '', 0, 0, 'L', '106.56841567705', '24.354015240604', 451000, 3, 'tr_0 tr_450000 tr_451000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451028, '乐业县', '', 0, 0, 'L', '106.56342972215', '24.783216467053', 451000, 3, 'tr_0 tr_450000 tr_451000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451029, '田林县', '', 0, 0, 'T', '106.23449791231', '24.300534611051', 451000, 3, 'tr_0 tr_450000 tr_451000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451030, '西林县', '', 0, 0, 'X', '105.10049410469', '24.495667790362', 451000, 3, 'tr_0 tr_450000 tr_451000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451031, '隆林各族自治县', '', 0, 0, 'L', '105.3504594704', '24.776813610296', 451000, 3, 'tr_0 tr_450000 tr_451000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451081, '靖西市', '', 0, 0, 'J', '106.42445269708', '23.140125669019', 451000, 3, 'tr_0 tr_450000 tr_451000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451102, '八步区', '', 0, 0, 'B', '111.55856737149', '24.417531040919', 451100, 3, 'tr_0 tr_450000 tr_451100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451103, '平桂区', '', 0, 0, 'P', '111.47841426578', '24.462001422773', 451100, 3, 'tr_0 tr_450000 tr_451100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451121, '昭平县', '', 0, 0, 'Z', '110.81757491928', '24.175106050636', 451100, 3, 'tr_0 tr_450000 tr_451100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451122, '钟山县', '', 0, 0, 'Z', '111.30958574015', '24.531673107939', 451100, 3, 'tr_0 tr_450000 tr_451100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451123, '富川瑶族自治县', '', 0, 0, 'F', '111.28451124863', '24.820159951323', 451100, 3, 'tr_0 tr_450000 tr_451100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451202, '金城江区', '', 0, 0, 'J', '108.04350707483', '24.695679382239', 451200, 3, 'tr_0 tr_450000 tr_451200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451203, '宜州区', '', 0, 0, 'Y', '108.64353158748', '24.491084367739', 451200, 3, 'tr_0 tr_450000 tr_451200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451221, '南丹县', '', 0, 0, 'N', '107.54748028934', '24.981849775485', 451200, 3, 'tr_0 tr_450000 tr_451200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451222, '天峨县', '', 0, 0, 'T', '107.17845647579', '25.005664155232', 451200, 3, 'tr_0 tr_450000 tr_451200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451223, '凤山县', '', 0, 0, 'F', '107.04841983631', '24.553217796777', 451200, 3, 'tr_0 tr_450000 tr_451200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451224, '东兰县', '', 0, 0, 'D', '107.3805041595', '24.516871463381', 451200, 3, 'tr_0 tr_450000 tr_451200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451225, '罗城仫佬族自治县', '', 0, 0, 'L', '108.91157445325', '24.783084996429', 451200, 3, 'tr_0 tr_450000 tr_451200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451226, '环江毛南族自治县', '', 0, 0, 'H', '108.26444306917', '24.832087938551', 451200, 3, 'tr_0 tr_450000 tr_451200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451227, '巴马瑶族自治县', '', 0, 0, 'B', '107.26648125302', '24.14726480427', 451200, 3, 'tr_0 tr_450000 tr_451200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451228, '都安瑶族自治县', '', 0, 0, 'D', '108.11145804765', '23.937331261923', 451200, 3, 'tr_0 tr_450000 tr_451200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451229, '大化瑶族自治县', '', 0, 0, 'D', '108.00441075294', '23.742818222963', 451200, 3, 'tr_0 tr_450000 tr_451200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451302, '兴宾区', '', 0, 0, 'X', '109.24149907034', '23.733211038144', 451300, 3, 'tr_0 tr_450000 tr_451300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451321, '忻城县', '', 0, 0, 'X', '108.67256239612', '24.071888636576', 451300, 3, 'tr_0 tr_450000 tr_451300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451322, '象州县', '', 0, 0, 'X', '109.71146215028', '23.979680993271', 451300, 3, 'tr_0 tr_450000 tr_451300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451323, '武宣县', '', 0, 0, 'W', '109.66944220328', '23.600404197633', 451300, 3, 'tr_0 tr_450000 tr_451300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451324, '金秀瑶族自治县', '', 0, 0, 'J', '110.19550625891', '24.136319486486', 451300, 3, 'tr_0 tr_450000 tr_451300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451381, '合山市', '', 0, 0, 'H', '108.89256576969', '23.81226007105', 451300, 3, 'tr_0 tr_450000 tr_451300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451402, '江州区', '', 0, 0, 'J', '107.35953321738', '22.411245728018', 451400, 3, 'tr_0 tr_450000 tr_451400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451421, '扶绥县', '', 0, 0, 'F', '107.91046515426', '22.641097136345', 451400, 3, 'tr_0 tr_450000 tr_451400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451422, '宁明县', '', 0, 0, 'N', '107.08352381902', '22.145884844184', 451400, 3, 'tr_0 tr_450000 tr_451400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451423, '龙州县', '', 0, 0, 'L', '106.86058190847', '22.348298905766', 451400, 3, 'tr_0 tr_450000 tr_451400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451424, '大新县', '', 0, 0, 'D', '107.20755690312', '22.836229044406', 451400, 3, 'tr_0 tr_450000 tr_451400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451425, '天等县', '', 0, 0, 'T', '107.14947264852', '23.08750581209', 451400, 3, 'tr_0 tr_450000 tr_451400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(451481, '凭祥市', '', 0, 0, 'P', '106.77352361814', '22.100152592954', 451400, 3, 'tr_0 tr_450000 tr_451400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460105, '秀英区', '', 0, 0, 'X', '110.30043588821', '20.013642385161', 460100, 3, 'tr_0 tr_460000 tr_460100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460106, '龙华区', '', 0, 0, 'L', '110.33554112854', '20.036320733521', 460100, 3, 'tr_0 tr_460000 tr_460100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460107, '琼山区', '', 0, 0, 'Q', '110.36052605901', '20.009150644491', 460100, 3, 'tr_0 tr_460000 tr_460100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460108, '美兰区', '', 0, 0, 'M', '110.37349839904', '20.034646217625', 460100, 3, 'tr_0 tr_460000 tr_460100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460202, '海棠区', '', 0, 0, 'H', '109.72350007292', '18.33787879371', 460200, 3, 'tr_0 tr_460000 tr_460200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460203, '吉阳区', '', 0, 0, 'J', '109.52055165827', '18.257057667262', 460200, 3, 'tr_0 tr_460000 tr_460200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460204, '天涯区', '', 0, 0, 'T', '109.46246255283', '18.306919633503', 460200, 3, 'tr_0 tr_460000 tr_460200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460205, '崖州区', '', 0, 0, 'Y', '109.22846124383', '18.44463053478', 460200, 3, 'tr_0 tr_460000 tr_460200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460321, '西沙群岛', '', 0, 0, 'X', '111.67308686126', '16.497085431044', 460300, 3, 'tr_0 tr_460000 tr_460300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460322, '南沙群岛', '', 0, 0, 'N', '112.66030170907', '4.9743661921368', 460300, 3, 'tr_0 tr_460000 tr_460300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460323, '中沙群岛的岛礁及其海域', '', 0, 0, 'Z', '112.34048204137', '16.838953334409', 460300, 3, 'tr_0 tr_460000 tr_460300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460400100, '那大镇', '', 0, 0, 'N', '109.552961497', '19.52127763772', 460400, 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460400101, '和庆镇', '', 0, 0, 'H', '109.64738779153', '19.531275426074', 460400, 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460400102, '南丰镇', '', 0, 0, 'N', '109.6054369934', '19.346095790543', 460400, 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460400103, '大成镇', '', 0, 0, 'D', '109.42116531507', '19.548276240672', 460400, 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460400104, '雅星镇', '', 0, 0, 'Y', '109.19716320191', '19.517956948407', 460400, 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460400105, '兰洋镇', '', 0, 0, 'L', '109.67367138789', '19.466430878427', 460400, 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460400106, '光村镇', '', 0, 0, 'G', '109.50795789562', '19.809145677126', 460400, 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460400107, '木棠镇', '', 0, 0, 'M', '109.35673473687', '19.809926770596', 460400, 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460400108, '海头镇', '', 0, 0, 'H', '108.95966166166', '19.509695855917', 460400, 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460400109, '峨蔓镇', '', 0, 0, 'E', '109.30390924357', '19.863144800976', 460400, 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460400111, '王五镇', '', 0, 0, 'W', '109.33806829512', '19.645800769747', 460400, 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460400112, '白马井镇', '', 0, 0, 'B', '109.58745583569', '19.527146110044', 460400, 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460400113, '中和镇', '', 0, 0, 'Z', '109.35613533713', '19.749465537088', 460400, 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460400114, '排浦镇', '', 0, 0, 'P', '109.16975400269', '19.644673698003', 460400, 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460400115, '东成镇', '', 0, 0, 'D', '109.4680333127', '19.709924104042', 460400, 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460400116, '新州镇', '', 0, 0, 'X', '109.32260133284', '19.720234743232', 460400, 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460400499, '洋浦经济开发区', '', 0, 0, 'Y', '109.19229656623', '19.775218244804', 460400, 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(460400500, '华南热作学院', '', 0, 0, 'H', '109.58745583569', '19.527146110044', 460400, 3, 'tr_0 tr_460000 tr_460400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(469001, '五指山市', '', 0, 0, 'W', '109.52354032071', '18.780994100706', 469000, 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(469002, '琼海市', '', 0, 0, 'Q', '110.48054452595', '19.264254019918', 469000, 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(469005, '文昌市', '', 0, 0, 'W', '110.80450870632', '19.549062083121', 469000, 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(469006, '万宁市', '', 0, 0, 'W', '110.39943436555', '18.800106988303', 469000, 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(469007, '东方市', '', 0, 0, 'D', '108.65856652679', '19.101104731289', 469000, 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(469021, '定安县', '', 0, 0, 'D', '104.36878601078', '31.589181642776', 469000, 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(469022, '屯昌县', '', 0, 0, 'T', '110.10857732457', '19.357374924278', 469000, 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(469023, '澄迈县', '', 0, 0, 'C', '110.01351091011', '19.744348671646', 469000, 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(469024, '临高县', '', 0, 0, 'L', '109.69744301483', '19.919474770278', 469000, 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(469025, '白沙黎族自治县', '', 0, 0, 'B', '109.45747066911', '19.231378733013', 469000, 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(469026, '昌江黎族自治县', '', 0, 0, 'C', '109.06246408734', '19.303997876684', 469000, 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(469027, '乐东黎族自治县', '', 0, 0, 'L', '109.18050798895', '18.755871493855', 469000, 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(469028, '陵水黎族自治县', '', 0, 0, 'L', '110.04446409255', '18.512331595699', 469000, 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(469029, '保亭黎族苗族自治县', '', 0, 0, 'B', '109.7034815143', '18.646909955376', 469000, 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(469030, '琼中黎族苗族自治县', '', 0, 0, 'Q', '109.84451062847', '19.039163789181', 469000, 3, 'tr_0 tr_460000 tr_469000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500101, '万州区', '', 0, 0, 'W', '108.4155583705', '30.813621636708', 500100, 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500102, '涪陵区', '', 0, 0, 'F', '107.39641979754', '29.709278197979', 500100, 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500103, '渝中区', '', 0, 0, 'Y', '106.57544006681', '29.559090182994', 500100, 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500104, '大渡口区', '', 0, 0, 'D', '106.48853359011', '29.490107128556', 500100, 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500105, '江北区', '', 0, 0, 'J', '112.85530302042', '35.520558754673', 500100, 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500106, '沙坪坝区', '', 0, 0, 'S', '106.46446511093', '29.547192516541', 500100, 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500107, '九龙坡区', '', 0, 0, 'J', '106.51755873943', '29.507927715553', 500100, 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500108, '南岸区', '', 0, 0, 'N', '106.6684297786', '29.502683098835', 500100, 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500109, '北碚区', '', 0, 0, 'B', '106.40356933975', '29.811602753904', 500100, 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500110, '綦江区', '', 0, 0, 'Q', '106.65748419545', '29.034113748311', 500100, 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500111, '大足区', '', 0, 0, 'D', '105.72840462545', '29.713113506077', 500100, 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500112, '渝北区', '', 0, 0, 'Y', '106.6375590606', '29.723927343007', 500100, 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500113, '巴南区', '', 0, 0, 'B', '106.54745425696', '29.40847473977', 500100, 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500114, '黔江区', '', 0, 0, 'Q', '108.77759119835', '29.53881256766', 500100, 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500115, '长寿区', '', 0, 0, 'Z', '107.08753107007', '29.863520067323', 500100, 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500116, '江津区', '', 0, 0, 'J', '106.26559760838', '29.295884374465', 500100, 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500117, '合川区', '', 0, 0, 'H', '106.28254108758', '29.978181239534', 500100, 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500118, '永川区', '', 0, 0, 'Y', '105.93349936145', '29.362046335949', 500100, 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500119, '南川区', '', 0, 0, 'N', '107.10558512437', '29.163478599606', 500100, 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500120, '璧山区', '', 0, 0, 'B', '106.23347456267', '29.598346607316', 500100, 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500151, '铜梁区', '', 0, 0, 'T', '106.06344949411', '29.850508778722', 500100, 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500152, '潼南区', '', 0, 0, 'T', '105.84739903617', '30.197314239664', 500100, 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500153, '荣昌区', '', 0, 0, 'R', '105.60141979928', '29.41130739669', 500100, 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500154, '开州区', '', 0, 0, 'K', '108.39949765612', '31.166644113193', 500100, 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500155, '梁平区', '', 0, 0, 'L', '107.77609725763', '30.660553255023', 500100, 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500156, '武隆区', '', 0, 0, 'W', '112.85530302042', '35.520558754673', 500100, 3, 'tr_0 tr_500000 tr_500100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500229, '城口县', '', 0, 0, 'C', '108.67161164256', '31.953390746293', 500200, 3, 'tr_0 tr_500000 tr_500200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500230, '丰都县', '', 0, 0, 'F', '107.7374806182', '29.869412789214', 500200, 3, 'tr_0 tr_500000 tr_500200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500231, '垫江县', '', 0, 0, 'D', '107.33956587472', '30.3332939685', 500200, 3, 'tr_0 tr_500000 tr_500200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500233, '忠县', '', 0, 0, 'Z', '', '', 500200, 3, 'tr_0 tr_500000 tr_500200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500235, '云阳县', '', 0, 0, 'Y', '108.7034475', '30.936611271975', 500200, 3, 'tr_0 tr_500000 tr_500200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500236, '奉节县', '', 0, 0, 'F', '109.47047275631', '31.024601766549', 500200, 3, 'tr_0 tr_500000 tr_500200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500237, '巫山县', '', 0, 0, 'W', '109.88554550703', '31.080518811736', 500200, 3, 'tr_0 tr_500000 tr_500200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500238, '巫溪县', '', 0, 0, 'W', '109.576402559', '31.404880009858', 500200, 3, 'tr_0 tr_500000 tr_500200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500240, '石柱土家族自治县', '', 0, 0, 'S', '108.12041416638', '30.006108697869', 500200, 3, 'tr_0 tr_500000 tr_500200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500241, '秀山土家族苗族自治县', '', 0, 0, 'X', '109.01357389981', '28.453447864286', 500200, 3, 'tr_0 tr_500000 tr_500200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500242, '酉阳土家族苗族自治县', '', 0, 0, 'Y', '108.7745860071', '28.847040258674', 500200, 3, 'tr_0 tr_500000 tr_500200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(500243, '彭水苗族土家族自治县', '', 0, 0, 'P', '108.17257803588', '29.299462290443', 500200, 3, 'tr_0 tr_500000 tr_500200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510104, '锦江区', '', 0, 0, 'J', '104.0895617566', '30.661904490317', 510100, 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510105, '青羊区', '', 0, 0, 'Q', '104.06744547494', '30.680037807007', 510100, 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510106, '金牛区', '', 0, 0, 'J', '104.05740358714', '30.697356042874', 510100, 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510107, '武侯区', '', 0, 0, 'W', '104.04942447828', '30.648712685321', 510100, 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510108, '成华区', '', 0, 0, 'C', '104.10859155035', '30.665589283983', 510100, 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510112, '龙泉驿区', '', 0, 0, 'L', '104.28139696436', '30.562697841', 510100, 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510113, '青白江区', '', 0, 0, 'Q', '104.25751245813', '30.884421372736', 510100, 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510114, '新都区', '', 0, 0, 'X', '104.16539284504', '30.829407468191', 510100, 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510115, '温江区', '', 0, 0, 'W', '103.86357306318', '30.688486836627', 510100, 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510116, '双流区', '', 0, 0, 'S', '103.93039154227', '30.580399352821', 510100, 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510117, '郫都区', '', 0, 0, 'P', '103.90544568809', '30.799537653573', 510100, 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510121, '金堂县', '', 0, 0, 'J', '104.41844263262', '30.868358423946', 510100, 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510129, '大邑县', '', 0, 0, 'D', '103.52752981767', '30.593155402402', 510100, 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510131, '蒲江县', '', 0, 0, 'P', '103.51257132415', '30.202500428139', 510100, 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510132, '新津县', '', 0, 0, 'X', '103.81743303795', '30.416363953297', 510100, 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510181, '都江堰市', '', 0, 0, 'D', '103.65353360443', '30.994256893542', 510100, 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510182, '彭州市', '', 0, 0, 'P', '103.96556137078', '30.995564002629', 510100, 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510183, '邛崃市', '', 0, 0, 'Q', '103.47048112964', '30.416398600854', 510100, 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510184, '崇州市', '', 0, 0, 'C', '103.67943336923', '30.636595891379', 510100, 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510185, '简阳市', '', 0, 0, 'J', '104.55349406265', '30.417451491353', 510100, 3, 'tr_0 tr_510000 tr_510100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510302, '自流井区', '', 0, 0, 'Z', '104.7834473259', '29.343498562348', 510300, 3, 'tr_0 tr_510000 tr_510300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510303, '贡井区', '', 0, 0, 'G', '104.72155659154', '29.351476269522', 510300, 3, 'tr_0 tr_510000 tr_510300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510304, '大安区', '', 0, 0, 'D', '104.78041635328', '29.369928541322', 510300, 3, 'tr_0 tr_510000 tr_510300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510311, '沿滩区', '', 0, 0, 'Y', '104.88040907516', '29.278797205251', 510300, 3, 'tr_0 tr_510000 tr_510300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510321, '荣县', '', 0, 0, 'R', '104.42345759121', '29.45180089858', 510300, 3, 'tr_0 tr_510000 tr_510300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510322, '富顺县', '', 0, 0, 'F', '104.98149440603', '29.186886257831', 510300, 3, 'tr_0 tr_510000 tr_510300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510402, '东区', '', 0, 0, 'D', '101.72554117091', '26.588033173333', 510400, 3, 'tr_0 tr_510000 tr_510400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510403, '西区', '', 0, 0, 'X', '101.72554117091', '26.588033173333', 510400, 3, 'tr_0 tr_510000 tr_510400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510411, '仁和区', '', 0, 0, 'R', '101.74444996291', '26.504019493295', 510400, 3, 'tr_0 tr_510000 tr_510400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510421, '米易县', '', 0, 0, 'M', '102.1164404304', '26.89696797612', 510400, 3, 'tr_0 tr_510000 tr_510400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510422, '盐边县', '', 0, 0, 'Y', '101.86049854831', '26.688767481964', 510400, 3, 'tr_0 tr_510000 tr_510400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510502, '江阳区', '', 0, 0, 'J', '105.44154513382', '28.884671972905', 510500, 3, 'tr_0 tr_510000 tr_510500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510503, '纳溪区', '', 0, 0, 'N', '105.37740854586', '28.779359901658', 510500, 3, 'tr_0 tr_510000 tr_510500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510504, '龙马潭区', '', 0, 0, 'L', '105.4445442166', '28.919012274486', 510500, 3, 'tr_0 tr_510000 tr_510500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510521, '泸县', '', 0, 0, 'L', '105.38845608667', '29.157626295708', 510500, 3, 'tr_0 tr_510000 tr_510500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510522, '合江县', '', 0, 0, 'H', '105.83843195885', '28.81779304284', 510500, 3, 'tr_0 tr_510000 tr_510500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510524, '叙永县', '', 0, 0, 'X', '105.45150761142', '28.161714341911', 510500, 3, 'tr_0 tr_510000 tr_510500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510525, '古蔺县', '', 0, 0, 'G', '105.81947079565', '28.044745368759', 510500, 3, 'tr_0 tr_510000 tr_510500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510603, '旌阳区', '', 0, 0, 'J', '104.42343882821', '31.148596291553', 510600, 3, 'tr_0 tr_510000 tr_510600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510604, '罗江区', '', 0, 0, 'L', '104.51741416083', '31.324178639826', 510600, 3, 'tr_0 tr_510000 tr_510600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510623, '中江县', '', 0, 0, 'Z', '104.68553015058', '31.038953695302', 510600, 3, 'tr_0 tr_510000 tr_510600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510681, '广汉市', '', 0, 0, 'G', '104.28842189311', '30.982415239743', 510600, 3, 'tr_0 tr_510000 tr_510600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510682, '什邡市', '', 0, 0, 'S', '104.17442710355', '31.132889048238', 510600, 3, 'tr_0 tr_510000 tr_510600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510683, '绵竹市', '', 0, 0, 'M', '104.227609305', '31.343592258211', 510600, 3, 'tr_0 tr_510000 tr_510600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510703, '涪城区', '', 0, 0, 'F', '104.76342033491', '31.46131438858', 510700, 3, 'tr_0 tr_510000 tr_510700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510704, '游仙区', '', 0, 0, 'Y', '104.77242899171', '31.479904474058', 510700, 3, 'tr_0 tr_510000 tr_510700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510705, '安州区', '', 0, 0, 'A', '104.5735550213', '31.540750527876', 510700, 3, 'tr_0 tr_510000 tr_510700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510722, '三台县', '', 0, 0, 'S', '105.10148979833', '31.101585571238', 510700, 3, 'tr_0 tr_510000 tr_510700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510723, '盐亭县', '', 0, 0, 'Y', '105.39550321547', '31.214318764837', 510700, 3, 'tr_0 tr_510000 tr_510700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510725, '梓潼县', '', 0, 0, 'Z', '105.17756684281', '31.648313467681', 510700, 3, 'tr_0 tr_510000 tr_510700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510726, '北川羌族自治县', '', 0, 0, 'B', '104.36158555316', '31.963084103415', 510700, 3, 'tr_0 tr_510000 tr_510700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510727, '平武县', '', 0, 0, 'P', '104.53542150325', '32.414681977696', 510700, 3, 'tr_0 tr_510000 tr_510700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510781, '江油市', '', 0, 0, 'J', '104.75241160088', '31.784128193388', 510700, 3, 'tr_0 tr_510000 tr_510700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510802, '利州区', '', 0, 0, 'L', '105.85242622329', '32.440207812726', 510800, 3, 'tr_0 tr_510000 tr_510800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510811, '昭化区', '', 0, 0, 'Z', '105.96941892782', '32.329618490159', 510800, 3, 'tr_0 tr_510000 tr_510800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510812, '朝天区', '', 0, 0, 'C', '105.8965888086', '32.649726240308', 510800, 3, 'tr_0 tr_510000 tr_510800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510821, '旺苍县', '', 0, 0, 'W', '106.29649124536', '32.235097383079', 510800, 3, 'tr_0 tr_510000 tr_510800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510822, '青川县', '', 0, 0, 'Q', '105.24540705459', '32.5816168573', 510800, 3, 'tr_0 tr_510000 tr_510800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510823, '剑阁县', '', 0, 0, 'J', '105.53157601887', '32.293478516773', 510800, 3, 'tr_0 tr_510000 tr_510800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510824, '苍溪县', '', 0, 0, 'C', '105.9414826146', '31.738684400617', 510800, 3, 'tr_0 tr_510000 tr_510800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510903, '船山区', '', 0, 0, 'C', '105.5745228375', '30.531470607829', 510900, 3, 'tr_0 tr_510000 tr_510900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510904, '安居区', '', 0, 0, 'A', '105.46246730988', '30.361496469746', 510900, 3, 'tr_0 tr_510000 tr_510900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510921, '蓬溪县', '', 0, 0, 'P', '105.71344605411', '30.763751441791', 510900, 3, 'tr_0 tr_510000 tr_510900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510922, '射洪县', '', 0, 0, 'S', '105.39450950992', '30.877138522337', 510900, 3, 'tr_0 tr_510000 tr_510900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(510923, '大英县', '', 0, 0, 'D', '105.24340392313', '30.600810129921', 510900, 3, 'tr_0 tr_510000 tr_510900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511002, '市中区', '', 0, 0, 'S', '105.07457421786', '29.592710148736', 511000, 3, 'tr_0 tr_510000 tr_511000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511011, '东兴区', '', 0, 0, 'D', '105.08254748773', '29.598485728583', 511000, 3, 'tr_0 tr_510000 tr_511000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511024, '威远县', '', 0, 0, 'W', '104.6744982286', '29.533634931412', 511000, 3, 'tr_0 tr_510000 tr_511000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511025, '资中县', '', 0, 0, 'Z', '104.85849482242', '29.770234032565', 511000, 3, 'tr_0 tr_510000 tr_511000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511071, '内江经济开发区', '', 0, 0, 'N', '105.064588025', '29.58588653832', 511000, 3, 'tr_0 tr_510000 tr_511000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511083, '隆昌市', '', 0, 0, 'L', '105.29457175243', '29.345244662083', 511000, 3, 'tr_0 tr_510000 tr_511000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511102, '市中区', '', 0, 0, 'S', '103.76755865552', '29.561363941633', 511100, 3, 'tr_0 tr_510000 tr_511100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511111, '沙湾区', '', 0, 0, 'S', '103.55643566073', '29.419272499245', 511100, 3, 'tr_0 tr_510000 tr_511100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511112, '五通桥区', '', 0, 0, 'W', '103.82445508074', '29.413185014439', 511100, 3, 'tr_0 tr_510000 tr_511100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511113, '金口河区', '', 0, 0, 'J', '103.08539389554', '29.250803570124', 511100, 3, 'tr_0 tr_510000 tr_511100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511123, '犍为县', '', 0, 0, '', '', '', 511100, 3, 'tr_0 tr_510000 tr_511100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511124, '井研县', '', 0, 0, 'J', '104.07651071353', '29.65730305908', 511100, 3, 'tr_0 tr_510000 tr_511100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511126, '夹江县', '', 0, 0, 'J', '103.57841009994', '29.743846302985', 511100, 3, 'tr_0 tr_510000 tr_511100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511129, '沐川县', '', 0, 0, 'M', '103.90846703743', '28.962888278216', 511100, 3, 'tr_0 tr_510000 tr_511100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511132, '峨边彝族自治县', '', 0, 0, 'E', '103.26857725338', '29.236089109563', 511100, 3, 'tr_0 tr_510000 tr_511100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511133, '马边彝族自治县', '', 0, 0, 'M', '103.55245419105', '28.841736014812', 511100, 3, 'tr_0 tr_510000 tr_511100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511181, '峨眉山市', '', 0, 0, 'E', '103.4915455741', '29.606975527462', 511100, 3, 'tr_0 tr_510000 tr_511100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511302, '顺庆区', '', 0, 0, 'S', '106.09841065838', '30.802753098595', 511300, 3, 'tr_0 tr_510000 tr_511300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511303, '高坪区', '', 0, 0, 'G', '106.12554047291', '30.787254931592', 511300, 3, 'tr_0 tr_510000 tr_511300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511304, '嘉陵区', '', 0, 0, 'J', '106.07843297265', '30.764895560139', 511300, 3, 'tr_0 tr_510000 tr_511300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511321, '南部县', '', 0, 0, 'N', '106.04357826971', '31.353705301526', 511300, 3, 'tr_0 tr_510000 tr_511300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511322, '营山县', '', 0, 0, 'Y', '106.57240802852', '31.083002970199', 511300, 3, 'tr_0 tr_510000 tr_511300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511323, '蓬安县', '', 0, 0, 'P', '106.41848194209', '31.034630778271', 511300, 3, 'tr_0 tr_510000 tr_511300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511324, '仪陇县', '', 0, 0, 'Y', '106.30943016844', '31.277597359981', 511300, 3, 'tr_0 tr_510000 tr_511300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511325, '西充县', '', 0, 0, 'X', '105.90761137653', '31.000688020792', 511300, 3, 'tr_0 tr_510000 tr_511300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511381, '阆中市', '', 0, 0, 'L', '106.01156526642', '31.56407455364', 511300, 3, 'tr_0 tr_510000 tr_511300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511402, '东坡区', '', 0, 0, 'D', '103.83852480217', '30.048272134435', 511400, 3, 'tr_0 tr_510000 tr_511400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511403, '彭山区', '', 0, 0, 'P', '103.87955823007', '30.19885441686', 511400, 3, 'tr_0 tr_510000 tr_511400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511421, '仁寿县', '', 0, 0, 'R', '104.14047690443', '30.001663984301', 511400, 3, 'tr_0 tr_510000 tr_511400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511423, '洪雅县', '', 0, 0, 'H', '103.37960224488', '29.910615837469', 511400, 3, 'tr_0 tr_510000 tr_511400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511424, '丹棱县', '', 0, 0, 'D', '103.51958331729', '30.020362794872', 511400, 3, 'tr_0 tr_510000 tr_511400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511425, '青神县', '', 0, 0, 'Q', '103.85355883179', '29.837054743717', 511400, 3, 'tr_0 tr_510000 tr_511400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511502, '翠屏区', '', 0, 0, 'C', '104.62643798553', '28.772051773027', 511500, 3, 'tr_0 tr_510000 tr_511500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511503, '南溪区', '', 0, 0, 'N', '104.97651330198', '28.851503648027', 511500, 3, 'tr_0 tr_510000 tr_511500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511504, '叙州区', '', 0, 0, 'X', '104.53944275624', '28.696246394752', 511500, 3, 'tr_0 tr_510000 tr_511500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511523, '江安县', '', 0, 0, 'J', '105.07359488519', '28.729609721855', 511500, 3, 'tr_0 tr_510000 tr_511500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511524, '长宁县', '', 0, 0, 'Z', '104.92756445509', '28.588133452699', 511500, 3, 'tr_0 tr_510000 tr_511500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511525, '高县', '', 0, 0, 'G', '104.52441132032', '28.442510804102', 511500, 3, 'tr_0 tr_510000 tr_511500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511526, '珙县', '', 0, 0, 'G', '104.71557459549', '28.444319765248', 511500, 3, 'tr_0 tr_510000 tr_511500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511527, '筠连县', '', 0, 0, 'Y', '104.51740642378', '28.170174457648', 511500, 3, 'tr_0 tr_510000 tr_511500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511528, '兴文县', '', 0, 0, 'X', '105.24240230064', '28.309904884117', 511500, 3, 'tr_0 tr_510000 tr_511500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511529, '屏山县', '', 0, 0, 'P', '104.35267533908', '28.834274966477', 511500, 3, 'tr_0 tr_510000 tr_511500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511602, '广安区', '', 0, 0, 'G', '106.64853115608', '30.479768100142', 511600, 3, 'tr_0 tr_510000 tr_511600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511603, '前锋区', '', 0, 0, 'Q', '106.90447959588', '30.506435157767', 511600, 3, 'tr_0 tr_510000 tr_511600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511621, '岳池县', '', 0, 0, 'Y', '106.44641061972', '30.54411986458', 511600, 3, 'tr_0 tr_510000 tr_511600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511622, '武胜县', '', 0, 0, 'W', '106.3024617431', '30.355495660378', 511600, 3, 'tr_0 tr_510000 tr_511600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511623, '邻水县', '', 0, 0, 'L', '106.93640258896', '30.341072518332', 511600, 3, 'tr_0 tr_510000 tr_511600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511681, '华蓥市', '', 0, 0, 'H', '106.78946181601', '30.396307084289', 511600, 3, 'tr_0 tr_510000 tr_511600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511702, '通川区', '', 0, 0, 'T', '107.51144711201', '31.220931804105', 511700, 3, 'tr_0 tr_510000 tr_511700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511703, '达川区', '', 0, 0, 'D', '107.51841059667', '31.202393360554', 511700, 3, 'tr_0 tr_510000 tr_511700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511722, '宣汉县', '', 0, 0, 'X', '107.7335335663', '31.359754823662', 511700, 3, 'tr_0 tr_510000 tr_511700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511723, '开江县', '', 0, 0, 'K', '107.87542487414', '31.089372149066', 511700, 3, 'tr_0 tr_510000 tr_511700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511724, '大竹县', '', 0, 0, 'D', '107.21157970735', '30.74207661791', 511700, 3, 'tr_0 tr_510000 tr_511700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511725, '渠县', '', 0, 0, 'Q', '106.97958296702', '30.842299283481', 511700, 3, 'tr_0 tr_510000 tr_511700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511771, '达州经济开发区', '', 0, 0, 'D', '107.47459385898', '31.214307723927', 511700, 3, 'tr_0 tr_510000 tr_511700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511781, '万源市', '', 0, 0, 'W', '108.04154069684', '32.087420847789', 511700, 3, 'tr_0 tr_510000 tr_511700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511802, '雨城区', '', 0, 0, 'Y', '103.03957520533', '30.011061644393', 511800, 3, 'tr_0 tr_510000 tr_511800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511803, '名山区', '', 0, 0, 'M', '103.1154857938', '30.075913663382', 511800, 3, 'tr_0 tr_510000 tr_511800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511822, '荥经县', '', 0, 0, 'X', '102.85343551293', '29.799193512656', 511800, 3, 'tr_0 tr_510000 tr_511800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511823, '汉源县', '', 0, 0, 'H', '102.65857589024', '29.350217385987', 511800, 3, 'tr_0 tr_510000 tr_511800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511824, '石棉县', '', 0, 0, 'S', '102.36640453848', '29.23430487759', 511800, 3, 'tr_0 tr_510000 tr_511800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511825, '天全县', '', 0, 0, 'T', '102.76453022767', '30.072472953275', 511800, 3, 'tr_0 tr_510000 tr_511800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511826, '芦山县', '', 0, 0, 'L', '102.93452771831', '30.149873189563', 511800, 3, 'tr_0 tr_510000 tr_511800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511827, '宝兴县', '', 0, 0, 'B', '102.82148423429', '30.374082112445', 511800, 3, 'tr_0 tr_510000 tr_511800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511902, '巴州区', '', 0, 0, 'B', '106.77551310771', '31.857685602645', 511900, 3, 'tr_0 tr_510000 tr_511900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511903, '恩阳区', '', 0, 0, 'E', '106.63558190249', '31.802614044176', 511900, 3, 'tr_0 tr_510000 tr_511900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511921, '通江县', '', 0, 0, 'T', '107.25151684321', '31.917714346881', 511900, 3, 'tr_0 tr_510000 tr_511900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511922, '南江县', '', 0, 0, 'N', '106.83448345088', '32.352531654165', 511900, 3, 'tr_0 tr_510000 tr_511900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511923, '平昌县', '', 0, 0, 'P', '107.11059310023', '31.566185810095', 511900, 3, 'tr_0 tr_510000 tr_511900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(511971, '巴中经济开发区', '', 0, 0, 'B', '106.75158530316', '31.872888585957', 511900, 3, 'tr_0 tr_510000 tr_511900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(512002, '雁江区', '', 0, 0, 'Y', '104.65842441063', '30.123753456785', 512000, 3, 'tr_0 tr_510000 tr_512000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(512021, '安岳县', '', 0, 0, 'A', '105.34245423273', '30.103392734494', 512000, 3, 'tr_0 tr_510000 tr_512000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(512022, '乐至县', '', 0, 0, 'L', '105.02747697007', '30.282348346', 512000, 3, 'tr_0 tr_510000 tr_512000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513201, '马尔康市', '', 0, 0, 'M', '102.21350208208', '31.911747955648', 513200, 3, 'tr_0 tr_510000 tr_513200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513221, '汶川县', '', 0, 0, 'W', '103.59651788422', '31.483005320468', 513200, 3, 'tr_0 tr_510000 tr_513200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513222, '理县', '', 0, 0, 'L', '102.23141546175', '31.905511577267', 513200, 3, 'tr_0 tr_510000 tr_513200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513223, '茂县', '', 0, 0, 'M', '102.23141546175', '31.905511577267', 513200, 3, 'tr_0 tr_510000 tr_513200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513224, '松潘县', '', 0, 0, 'S', '103.61057968918', '32.661796559853', 513200, 3, 'tr_0 tr_510000 tr_513200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513225, '九寨沟县', '', 0, 0, 'J', '104.24954673403', '33.257591509496', 513200, 3, 'tr_0 tr_510000 tr_513200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513226, '金川县', '', 0, 0, 'J', '102.07061042122', '31.482005950337', 513200, 3, 'tr_0 tr_510000 tr_513200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513227, '小金县', '', 0, 0, 'X', '102.36942635928', '31.002208697062', 513200, 3, 'tr_0 tr_510000 tr_513200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513228, '黑水县', '', 0, 0, 'H', '102.99651735613', '32.067805449368', 513200, 3, 'tr_0 tr_510000 tr_513200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513230, '壤塘县', '', 0, 0, 'R', '100.98558348726', '32.271093316269', 513200, 3, 'tr_0 tr_510000 tr_513200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513231, '阿坝县', '', 0, 0, 'A', '101.71360970816', '32.908220918625', 513200, 3, 'tr_0 tr_510000 tr_513200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513232, '若尔盖县', '', 0, 0, 'R', '102.97439065413', '33.584376654702', 513200, 3, 'tr_0 tr_510000 tr_513200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513233, '红原县', '', 0, 0, 'H', '102.55061520946', '32.796605278762', 513200, 3, 'tr_0 tr_510000 tr_513200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513301, '康定市', '', 0, 0, 'K', '101.96355522139', '30.004407384262', 513300, 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513322, '泸定县', '', 0, 0, 'L', '102.24143209631', '29.920401664951', 513300, 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513323, '丹巴县', '', 0, 0, 'D', '101.89643706759', '30.88476979933', 513300, 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513324, '九龙县', '', 0, 0, 'J', '101.51341566718', '29.006431902925', 513300, 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513325, '雅江县', '', 0, 0, 'Y', '101.02050035294', '30.037568967864', 513300, 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513326, '道孚县', '', 0, 0, 'D', '101.13154034619', '30.985326277402', 513300, 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513327, '炉霍县', '', 0, 0, 'L', '100.68239693357', '31.397991882882', 513300, 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513328, '甘孜县', '', 0, 0, 'G', '99.999210350851', '31.628956694034', 513300, 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513329, '新龙县', '', 0, 0, 'X', '100.31839824093', '30.945469525266', 513300, 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513330, '德格县', '', 0, 0, 'D', '98.587401611354', '31.812106494713', 513300, 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513331, '白玉县', '', 0, 0, 'B', '98.83110021824', '31.215314448788', 513300, 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513332, '石渠县', '', 0, 0, 'S', '98.109480622408', '32.984003420478', 513300, 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513333, '色达县', '', 0, 0, 'S', '100.33941364918', '32.274330413227', 513300, 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513334, '理塘县', '', 0, 0, 'L', '100.27557457998', '30.000030621751', 513300, 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513335, '巴塘县', '', 0, 0, 'B', '99.11672669582', '30.011661707376', 513300, 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513336, '乡城县', '', 0, 0, 'X', '99.805059570922', '28.936733475224', 513300, 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513337, '稻城县', '', 0, 0, 'D', '100.3044615597', '29.043121558126', 513300, 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513338, '得荣县', '', 0, 0, 'D', '99.292984198181', '28.718780051461', 513300, 3, 'tr_0 tr_510000 tr_513300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513401, '西昌市', '', 0, 0, 'X', '102.27148382917', '27.900580896264', 513400, 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513422, '木里藏族自治县', '', 0, 0, 'M', '101.28639697674', '27.93459855924', 513400, 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513423, '盐源县', '', 0, 0, 'Y', '101.51542912915', '27.428154867741', 513400, 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513424, '德昌县', '', 0, 0, 'D', '102.18259551085', '27.408504192994', 513400, 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513425, '会理县', '', 0, 0, 'H', '102.25143634511', '26.661199778427', 513400, 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513426, '会东县', '', 0, 0, 'H', '102.5844621823', '26.640823775829', 513400, 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513427, '宁南县', '', 0, 0, 'N', '102.76252636654', '27.064605070116', 513400, 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513428, '普格县', '', 0, 0, 'P', '102.54659671863', '27.381996213807', 513400, 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513429, '布拖县', '', 0, 0, 'B', '102.818478493', '27.7121287338', 513400, 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513430, '金阳县', '', 0, 0, 'J', '103.25454895521', '27.702144511749', 513400, 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513431, '昭觉县', '', 0, 0, 'Z', '102.84942278222', '28.020506268006', 513400, 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513432, '喜德县', '', 0, 0, 'X', '102.41956715684', '28.312709832521', 513400, 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513433, '冕宁县', '', 0, 0, 'M', '102.18357457402', '28.55529444536', 513400, 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513434, '越西县', '', 0, 0, 'Y', '102.5144744814', '28.645827564326', 513400, 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513435, '甘洛县', '', 0, 0, 'G', '102.77859651312', '28.9648231905', 513400, 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'); +INSERT INTO `hg_sys_provinces` (`id`, `title`, `short_title`, `areacode`, `zipcode`, `pinyin`, `lng`, `lat`, `pid`, `level`, `tree`, `sort`, `status`, `created_at`, `updated_at`) VALUES +(513436, '美姑县', '', 0, 0, 'M', '103.13858579866', '28.33401962389', 513400, 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(513437, '雷波县', '', 0, 0, 'L', '103.57842869486', '28.268950617624', 513400, 3, 'tr_0 tr_510000 tr_513400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520102, '南明区', '', 0, 0, 'N', '106.72052763544', '26.574336181539', 520100, 3, 'tr_0 tr_520000 tr_520100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520103, '云岩区', '', 0, 0, 'Y', '106.73053475882', '26.610381076426', 520100, 3, 'tr_0 tr_520000 tr_520100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520111, '花溪区', '', 0, 0, 'H', '106.6764407773', '26.41587945643', 520100, 3, 'tr_0 tr_520000 tr_520100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520112, '乌当区', '', 0, 0, 'W', '106.75755803432', '26.636529135598', 520100, 3, 'tr_0 tr_520000 tr_520100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520113, '白云区', '', 0, 0, 'B', '106.62959683989', '26.683588499124', 520100, 3, 'tr_0 tr_520000 tr_520100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520115, '观山湖区', '', 0, 0, 'G', '106.60953255751', '26.623894296899', 520100, 3, 'tr_0 tr_520000 tr_520100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520121, '开阳县', '', 0, 0, 'K', '106.97155955928', '27.063673573951', 520100, 3, 'tr_0 tr_520000 tr_520100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520122, '息烽县', '', 0, 0, 'X', '106.74756178044', '27.096475267062', 520100, 3, 'tr_0 tr_520000 tr_520100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520123, '修文县', '', 0, 0, 'X', '106.59849220314', '26.844862447594', 520100, 3, 'tr_0 tr_520000 tr_520100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520181, '清镇市', '', 0, 0, 'Q', '106.47752261032', '26.561987898479', 520100, 3, 'tr_0 tr_520000 tr_520100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520201, '钟山区', '', 0, 0, 'Z', '104.85052981696', '26.580704079622', 520200, 3, 'tr_0 tr_520000 tr_520200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520203, '六枝特区', '', 0, 0, 'L', '105.48342934686', '26.219214290638', 520200, 3, 'tr_0 tr_520000 tr_520200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520221, '水城县', '', 0, 0, 'S', '104.96456610819', '26.553719763692', 520200, 3, 'tr_0 tr_520000 tr_520200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520281, '盘州市', '', 0, 0, 'P', '104.47858183932', '25.715651258076', 520200, 3, 'tr_0 tr_520000 tr_520200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520302, '红花岗区', '', 0, 0, 'H', '106.90049658668', '27.650870260732', 520300, 3, 'tr_0 tr_520000 tr_520300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520303, '汇川区', '', 0, 0, 'H', '106.94045752761', '27.756343380087', 520300, 3, 'tr_0 tr_520000 tr_520300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520304, '播州区', '', 0, 0, 'B', '106.83650354793', '27.542500878', 520300, 3, 'tr_0 tr_520000 tr_520300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520322, '桐梓县', '', 0, 0, 'T', '106.83248902061', '28.139468384162', 520300, 3, 'tr_0 tr_520000 tr_520300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520323, '绥阳县', '', 0, 0, 'S', '107.19749228819', '27.953080005876', 520300, 3, 'tr_0 tr_520000 tr_520300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520324, '正安县', '', 0, 0, 'Z', '107.4605748906', '28.55909172878', 520300, 3, 'tr_0 tr_520000 tr_520300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520325, '道真仡佬族苗族自治县', '', 0, 0, 'D', '107.61948378781', '28.86864981438', 520300, 3, 'tr_0 tr_520000 tr_520300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520326, '务川仡佬族苗族自治县', '', 0, 0, 'W', '107.90545629257', '28.569077110562', 520300, 3, 'tr_0 tr_520000 tr_520300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520327, '凤冈县', '', 0, 0, 'F', '107.72354763025', '27.960695338965', 520300, 3, 'tr_0 tr_520000 tr_520300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520328, '湄潭县', '', 0, 0, 'M', '107.47259853019', '27.75449836496', 520300, 3, 'tr_0 tr_520000 tr_520300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520329, '余庆县', '', 0, 0, 'Y', '107.91146020728', '27.221379027997', 520300, 3, 'tr_0 tr_520000 tr_520300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520330, '习水县', '', 0, 0, 'X', '106.20342803999', '28.339117886481', 520300, 3, 'tr_0 tr_520000 tr_520300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520381, '赤水市', '', 0, 0, 'C', '105.70348859502', '28.596118908733', 520300, 3, 'tr_0 tr_520000 tr_520300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520382, '仁怀市', '', 0, 0, 'R', '106.40752655518', '27.797752158543', 520300, 3, 'tr_0 tr_520000 tr_520300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450702, '钦南区', '', 0, 0, 'Q', '108.66454861267', '21.945972440989', 450700, 3, 'tr_0 tr_450000 tr_450700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450703, '钦北区', '', 0, 0, 'Q', '108.63851257493', '22.020367050196', 450700, 3, 'tr_0 tr_450000 tr_450700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450721, '灵山县', '', 0, 0, 'L', '109.29747796631', '22.422413326701', 450700, 3, 'tr_0 tr_450000 tr_450700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(450722, '浦北县', '', 0, 0, 'P', '109.5634229294', '22.277822326937', 450700, 3, 'tr_0 tr_450000 tr_450700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520402, '西秀区', '', 0, 0, 'X', '105.97240632053', '26.251497663244', 520400, 3, 'tr_0 tr_520000 tr_520400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520403, '平坝区', '', 0, 0, 'P', '106.26358378709', '26.411186471257', 520400, 3, 'tr_0 tr_520000 tr_520400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520422, '普定县', '', 0, 0, 'P', '105.74848570614', '26.308233451347', 520400, 3, 'tr_0 tr_520000 tr_520400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520423, '镇宁布依族苗族自治县', '', 0, 0, 'Z', '105.77658344485', '26.063829083032', 520400, 3, 'tr_0 tr_520000 tr_520400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520424, '关岭布依族苗族自治县', '', 0, 0, 'G', '105.62547597168', '25.949877045969', 520400, 3, 'tr_0 tr_520000 tr_520400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520425, '紫云苗族布依族自治县', '', 0, 0, 'Z', '106.09041375093', '25.757408728958', 520400, 3, 'tr_0 tr_520000 tr_520400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520502, '七星关区', '', 0, 0, 'Q', '105.31158071811', '27.304095223427', 520500, 3, 'tr_0 tr_520000 tr_520500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520521, '大方县', '', 0, 0, 'D', '105.61845131242', '27.147060750626', 520500, 3, 'tr_0 tr_520000 tr_520500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520522, '黔西县', '', 0, 0, 'Q', '106.03857397726', '27.014344747084', 520500, 3, 'tr_0 tr_520000 tr_520500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520523, '金沙县', '', 0, 0, 'J', '106.22644163901', '27.465354872614', 520500, 3, 'tr_0 tr_520000 tr_520500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520524, '织金县', '', 0, 0, 'Z', '105.77758954702', '26.669221885659', 520500, 3, 'tr_0 tr_520000 tr_520500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520525, '纳雍县', '', 0, 0, 'N', '105.38948662276', '26.783717229132', 520500, 3, 'tr_0 tr_520000 tr_520500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520526, '威宁彝族回族苗族自治县', '', 0, 0, 'W', '104.25948063398', '26.879247190553', 520500, 3, 'tr_0 tr_520000 tr_520500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520527, '赫章县', '', 0, 0, 'H', '104.73351582262', '27.129051675142', 520500, 3, 'tr_0 tr_520000 tr_520500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520602, '碧江区', '', 0, 0, 'B', '109.18743536171', '27.696773471802', 520600, 3, 'tr_0 tr_520000 tr_520600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520603, '万山区', '', 0, 0, 'W', '109.22045617394', '27.524647851983', 520600, 3, 'tr_0 tr_520000 tr_520600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520621, '江口县', '', 0, 0, 'J', '108.84540005924', '27.705921695043', 520600, 3, 'tr_0 tr_520000 tr_520600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520622, '玉屏侗族自治县', '', 0, 0, 'Y', '108.920563527', '27.248557881456', 520600, 3, 'tr_0 tr_520000 tr_520600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520623, '石阡县', '', 0, 0, 'S', '108.23046385479', '27.519722059758', 520600, 3, 'tr_0 tr_520000 tr_520600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520624, '思南县', '', 0, 0, 'S', '108.25941731933', '27.944547877977', 520600, 3, 'tr_0 tr_520000 tr_520600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520625, '印江土家族苗族自治县', '', 0, 0, 'Y', '108.41659167843', '27.999823251993', 520600, 3, 'tr_0 tr_520000 tr_520600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520626, '德江县', '', 0, 0, 'D', '108.1264110615', '28.270423278494', 520600, 3, 'tr_0 tr_520000 tr_520600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520627, '沿河土家族自治县', '', 0, 0, 'Y', '108.51047753979', '28.570101680095', 520600, 3, 'tr_0 tr_520000 tr_520600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(520628, '松桃苗族自治县', '', 0, 0, 'S', '109.20940351278', '28.160420179011', 520600, 3, 'tr_0 tr_520000 tr_520600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522301, '兴义市', '', 0, 0, 'X', '104.9024609483', '25.098113310297', 522300, 3, 'tr_0 tr_520000 tr_522300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522302, '兴仁市', '', 0, 0, 'X', '105.19256772452', '25.440898753576', 522300, 3, 'tr_0 tr_520000 tr_522300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522323, '普安县', '', 0, 0, 'P', '104.95954583802', '25.789951769129', 522300, 3, 'tr_0 tr_520000 tr_522300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522324, '晴隆县', '', 0, 0, 'Q', '105.22548361467', '25.841047900453', 522300, 3, 'tr_0 tr_520000 tr_522300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522325, '贞丰县', '', 0, 0, 'Z', '105.65655958807', '25.392123965341', 522300, 3, 'tr_0 tr_520000 tr_522300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522326, '望谟县', '', 0, 0, 'W', '106.10644455174', '25.18435492392', 522300, 3, 'tr_0 tr_520000 tr_522300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522327, '册亨县', '', 0, 0, 'C', '105.81851050706', '24.989637494252', 522300, 3, 'tr_0 tr_520000 tr_522300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522328, '安龙县', '', 0, 0, 'A', '105.44954274777', '25.103990431232', 522300, 3, 'tr_0 tr_520000 tr_522300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522601, '凯里市', '', 0, 0, 'K', '107.98944624078', '26.589702969826', 522600, 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522622, '黄平县', '', 0, 0, 'H', '107.92354780622', '26.911288643101', 522600, 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522623, '施秉县', '', 0, 0, 'S', '108.13043978205', '27.039822051733', 522600, 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522624, '三穗县', '', 0, 0, 'S', '108.68154500207', '26.958666465246', 522600, 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522625, '镇远县', '', 0, 0, 'Z', '108.43658077263', '27.054820913901', 522600, 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522626, '岑巩县', '', 0, 0, 'C', '108.82248096196', '27.179902417394', 522600, 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522627, '天柱县', '', 0, 0, 'T', '109.21444570161', '26.915804084012', 522600, 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522628, '锦屏县', '', 0, 0, 'J', '109.20743846948', '26.682631631865', 522600, 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522629, '剑河县', '', 0, 0, 'J', '108.44751710323', '26.734047558881', 522600, 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522630, '台江县', '', 0, 0, 'T', '108.32855163', '26.672372539643', 522600, 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522631, '黎平县', '', 0, 0, 'L', '109.14356697147', '26.236874050192', 522600, 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522632, '榕江县', '', 0, 0, 'R', '108.52755369872', '25.93772537325', 522600, 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522633, '从江县', '', 0, 0, 'C', '108.91156142782', '25.759881327892', 522600, 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522634, '雷山县', '', 0, 0, 'L', '108.08452891457', '26.384205121689', 522600, 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522635, '麻江县', '', 0, 0, 'M', '107.59555140191', '26.496807595584', 522600, 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522636, '丹寨县', '', 0, 0, 'D', '107.79551348972', '26.204421169869', 522600, 3, 'tr_0 tr_520000 tr_522600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522701, '都匀市', '', 0, 0, 'D', '107.52540443144', '26.266117957789', 522700, 3, 'tr_0 tr_520000 tr_522700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522702, '福泉市', '', 0, 0, 'F', '107.52643281158', '26.692525700784', 522700, 3, 'tr_0 tr_520000 tr_522700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522722, '荔波县', '', 0, 0, 'L', '107.89340938687', '25.417097566273', 522700, 3, 'tr_0 tr_520000 tr_522700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522723, '贵定县', '', 0, 0, 'G', '107.2405543594', '26.590659655039', 522700, 3, 'tr_0 tr_520000 tr_522700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522725, '瓮安县', '', 0, 0, 'W', '107.47755223592', '27.084125602602', 522700, 3, 'tr_0 tr_520000 tr_522700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522726, '独山县', '', 0, 0, 'D', '107.55149778107', '25.828287807074', 522700, 3, 'tr_0 tr_520000 tr_522700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522727, '平塘县', '', 0, 0, 'P', '107.32956664388', '25.828201706902', 522700, 3, 'tr_0 tr_520000 tr_522700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522728, '罗甸县', '', 0, 0, 'L', '106.75854805682', '25.430837682972', 522700, 3, 'tr_0 tr_520000 tr_522700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522729, '长顺县', '', 0, 0, 'Z', '106.45842122163', '26.028454545714', 522700, 3, 'tr_0 tr_520000 tr_522700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522730, '龙里县', '', 0, 0, 'L', '106.98658596469', '26.459080630642', 522700, 3, 'tr_0 tr_520000 tr_522700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522731, '惠水县', '', 0, 0, 'H', '106.66345262709', '26.138209889396', 522700, 3, 'tr_0 tr_520000 tr_522700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(522732, '三都水族自治县', '', 0, 0, 'S', '107.84263500353', '26.096765617985', 522700, 3, 'tr_0 tr_520000 tr_522700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530102, '五华区', '', 0, 0, 'W', '102.7134232806', '25.049834961981', 530100, 3, 'tr_0 tr_530000 tr_530100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530103, '盘龙区', '', 0, 0, 'P', '102.7585262121', '25.12237227983', 530100, 3, 'tr_0 tr_530000 tr_530100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530111, '官渡区', '', 0, 0, 'G', '102.7504817066', '25.021196423859', 530100, 3, 'tr_0 tr_530000 tr_530100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530112, '西山区', '', 0, 0, 'X', '102.6715571235', '25.043198760947', 530100, 3, 'tr_0 tr_530000 tr_530100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530113, '东川区', '', 0, 0, 'D', '103.19445186746', '26.089054237623', 530100, 3, 'tr_0 tr_530000 tr_530100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530114, '呈贡区', '', 0, 0, 'C', '102.82747259726', '24.891871210947', 530100, 3, 'tr_0 tr_530000 tr_530100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530115, '晋宁区', '', 0, 0, 'J', '102.60241805181', '24.676098812517', 530100, 3, 'tr_0 tr_530000 tr_530100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530124, '富民县', '', 0, 0, 'F', '102.50447319701', '25.228085092195', 530100, 3, 'tr_0 tr_530000 tr_530100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530125, '宜良县', '', 0, 0, 'Y', '103.14755798426', '24.925286989652', 530100, 3, 'tr_0 tr_530000 tr_530100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530126, '石林彝族自治县', '', 0, 0, 'S', '103.29650817676', '24.77770196132', 530100, 3, 'tr_0 tr_530000 tr_530100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530127, '嵩明县', '', 0, 0, 'S', '103.04356394016', '25.344409459135', 530100, 3, 'tr_0 tr_530000 tr_530100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530128, '禄劝彝族苗族自治县', '', 0, 0, 'L', '102.47742324184', '25.55767180024', 530100, 3, 'tr_0 tr_530000 tr_530100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530129, '寻甸回族彝族自治县', '', 0, 0, 'X', '103.26357387135', '25.563893580433', 530100, 3, 'tr_0 tr_530000 tr_530100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530181, '安宁市', '', 0, 0, 'A', '102.48440918413', '24.925601726344', 530100, 3, 'tr_0 tr_530000 tr_530100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530302, '麒麟区', '', 0, 0, 'Q', '103.81143036949', '25.502101828437', 530300, 3, 'tr_0 tr_530000 tr_530300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530303, '沾益区', '', 0, 0, 'Z', '103.82848532841', '25.606630798868', 530300, 3, 'tr_0 tr_530000 tr_530300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530304, '马龙区', '', 0, 0, 'M', '103.58544688632', '25.433966374816', 530300, 3, 'tr_0 tr_530000 tr_530300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530322, '陆良县', '', 0, 0, 'L', '103.67343249743', '25.035639470439', 530300, 3, 'tr_0 tr_530000 tr_530300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530323, '师宗县', '', 0, 0, 'S', '103.99155634453', '24.827994969501', 530300, 3, 'tr_0 tr_530000 tr_530300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530324, '罗平县', '', 0, 0, 'L', '104.31551019438', '24.890519724895', 530300, 3, 'tr_0 tr_530000 tr_530300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530325, '富源县', '', 0, 0, 'F', '104.2614742434', '25.680279502133', 530300, 3, 'tr_0 tr_530000 tr_530300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530326, '会泽县', '', 0, 0, 'H', '103.30348729192', '26.424215045561', 530300, 3, 'tr_0 tr_530000 tr_530300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530381, '宣威市', '', 0, 0, 'X', '104.1115760691', '26.225598378324', 530300, 3, 'tr_0 tr_530000 tr_530300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530402, '红塔区', '', 0, 0, 'H', '102.55156461759', '24.359801443673', 530400, 3, 'tr_0 tr_530000 tr_530400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530403, '江川区', '', 0, 0, 'J', '102.76052700796', '24.293438700984', 530400, 3, 'tr_0 tr_530000 tr_530400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530422, '澄江县', '', 0, 0, 'C', '102.91455487235', '24.679414908816', 530400, 3, 'tr_0 tr_530000 tr_530400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530423, '通海县', '', 0, 0, 'T', '102.73242289128', '24.117891201574', 530400, 3, 'tr_0 tr_530000 tr_530400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530424, '华宁县', '', 0, 0, 'H', '102.93549185853', '24.198581027163', 530400, 3, 'tr_0 tr_530000 tr_530400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530425, '易门县', '', 0, 0, 'Y', '102.1695354962', '24.677404477592', 530400, 3, 'tr_0 tr_530000 tr_530400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530426, '峨山彝族自治县', '', 0, 0, 'E', '102.41256450607', '24.174774239093', 530400, 3, 'tr_0 tr_530000 tr_530400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530427, '新平彝族傣族自治县', '', 0, 0, 'X', '101.99642771261', '24.076262705278', 530400, 3, 'tr_0 tr_530000 tr_530400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530428, '元江哈尼族彝族傣族自治县', '', 0, 0, 'Y', '102.00441463673', '23.603000905475', 530400, 3, 'tr_0 tr_530000 tr_530400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530502, '隆阳区', '', 0, 0, 'L', '99.172070839289', '25.12688832219', 530500, 3, 'tr_0 tr_530000 tr_530500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530521, '施甸县', '', 0, 0, 'S', '99.195469362222', '24.728835000146', 530500, 3, 'tr_0 tr_530000 tr_530500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530523, '龙陵县', '', 0, 0, 'L', '98.695749912275', '24.592546947017', 530500, 3, 'tr_0 tr_530000 tr_530500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530524, '昌宁县', '', 0, 0, 'C', '99.611616576026', '24.833984919853', 530500, 3, 'tr_0 tr_530000 tr_530500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530581, '腾冲市', '', 0, 0, 'T', '98.497595035489', '25.026616860346', 530500, 3, 'tr_0 tr_530000 tr_530500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530602, '昭阳区', '', 0, 0, 'Z', '103.71347042315', '27.326144206053', 530600, 3, 'tr_0 tr_530000 tr_530600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530621, '鲁甸县', '', 0, 0, 'L', '103.5644121645', '27.193107219133', 530600, 3, 'tr_0 tr_530000 tr_530600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530622, '巧家县', '', 0, 0, 'Q', '102.93651934037', '26.914705038577', 530600, 3, 'tr_0 tr_530000 tr_530600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530623, '盐津县', '', 0, 0, 'Y', '104.24157884246', '28.114384038516', 530600, 3, 'tr_0 tr_530000 tr_530600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530624, '大关县', '', 0, 0, 'D', '103.89751489665', '27.754021401911', 530600, 3, 'tr_0 tr_530000 tr_530600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530625, '永善县', '', 0, 0, 'Y', '103.6445690431', '28.234722481383', 530600, 3, 'tr_0 tr_530000 tr_530600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530626, '绥江县', '', 0, 0, 'S', '103.9645523826', '28.604277931727', 530600, 3, 'tr_0 tr_530000 tr_530600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530627, '镇雄县', '', 0, 0, 'Z', '104.88040422431', '27.447794634649', 530600, 3, 'tr_0 tr_530000 tr_530600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530628, '彝良县', '', 0, 0, 'Y', '104.05444303021', '27.631690165547', 530600, 3, 'tr_0 tr_530000 tr_530600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530629, '威信县', '', 0, 0, 'W', '105.05557676311', '27.85253746404', 530600, 3, 'tr_0 tr_530000 tr_530600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530681, '水富市', '', 0, 0, 'S', '104.42243298394', '28.636106975262', 530600, 3, 'tr_0 tr_530000 tr_530600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530702, '古城区', '', 0, 0, 'G', '100.23248033921', '26.883161684001', 530700, 3, 'tr_0 tr_530000 tr_530700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530721, '玉龙纳西族自治县', '', 0, 0, 'Y', '100.24352734105', '26.827391803625', 530700, 3, 'tr_0 tr_530000 tr_530700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530722, '永胜县', '', 0, 0, 'Y', '100.75758141133', '26.689950245419', 530700, 3, 'tr_0 tr_530000 tr_530700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530723, '华坪县', '', 0, 0, 'H', '101.27243012268', '26.635223014622', 530700, 3, 'tr_0 tr_530000 tr_530700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530724, '宁蒗彝族自治县', '', 0, 0, 'N', '100.85859038623', '27.287727826052', 530700, 3, 'tr_0 tr_530000 tr_530700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530802, '思茅区', '', 0, 0, 'S', '100.98355510298', '22.79249798436', 530800, 3, 'tr_0 tr_530000 tr_530800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530821, '宁洱哈尼族彝族自治县', '', 0, 0, 'N', '101.05244246946', '23.054590179481', 530800, 3, 'tr_0 tr_530000 tr_530800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530822, '墨江哈尼族自治县', '', 0, 0, 'M', '101.69858356155', '23.437725772256', 530800, 3, 'tr_0 tr_530000 tr_530800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530823, '景东彝族自治县', '', 0, 0, 'J', '100.83848864452', '24.451863775495', 530800, 3, 'tr_0 tr_530000 tr_530800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530824, '景谷傣族彝族自治县', '', 0, 0, 'J', '100.7094565801', '23.503204071241', 530800, 3, 'tr_0 tr_530000 tr_530800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530825, '镇沅彝族哈尼族拉祜族自治县', '', 0, 0, 'Z', '101.11556882305', '24.010330833613', 530800, 3, 'tr_0 tr_530000 tr_530800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530826, '江城哈尼族彝族自治县', '', 0, 0, 'J', '101.86847918429', '22.59168385943', 530800, 3, 'tr_0 tr_530000 tr_530800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530827, '孟连傣族拉祜族佤族自治县', '', 0, 0, 'M', '99.590962825578', '22.335307615556', 530800, 3, 'tr_0 tr_530000 tr_530800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530828, '澜沧拉祜族自治县', '', 0, 0, 'L', '99.938588283239', '22.561831918087', 530800, 3, 'tr_0 tr_530000 tr_530800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530829, '西盟佤族自治县', '', 0, 0, 'X', '99.596622150289', '22.650656010974', 530800, 3, 'tr_0 tr_530000 tr_530800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530902, '临翔区', '', 0, 0, 'L', '100.0884425304', '23.901401938645', 530900, 3, 'tr_0 tr_530000 tr_530900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530921, '凤庆县', '', 0, 0, 'F', '99.934989222215', '24.586472458274', 530900, 3, 'tr_0 tr_530000 tr_530900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530922, '云县', '', 0, 0, 'Y', '100.12953102441', '24.442807275329', 530900, 3, 'tr_0 tr_530000 tr_530900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530923, '永德县', '', 0, 0, 'Y', '99.265075642606', '24.024871282777', 530900, 3, 'tr_0 tr_530000 tr_530900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530924, '镇康县', '', 0, 0, 'Z', '98.831871224123', '23.768315480096', 530900, 3, 'tr_0 tr_530000 tr_530900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530925, '双江拉祜族佤族布朗族傣族自治县', '', 0, 0, 'S', '99.834130982979', '23.479836504614', 530900, 3, 'tr_0 tr_530000 tr_530900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530926, '耿马傣族佤族自治县', '', 0, 0, 'G', '99.403942176092', '23.543490995101', 530900, 3, 'tr_0 tr_530000 tr_530900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(530927, '沧源佤族自治县', '', 0, 0, 'C', '99.252721696084', '23.152878733913', 530900, 3, 'tr_0 tr_530000 tr_530900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532301, '楚雄市', '', 0, 0, 'C', '101.55247228396', '25.038860388323', 532300, 3, 'tr_0 tr_530000 tr_532300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532322, '双柏县', '', 0, 0, 'S', '101.64840700053', '24.694898530382', 532300, 3, 'tr_0 tr_530000 tr_532300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532323, '牟定县', '', 0, 0, 'M', '101.55348099122', '25.318845903714', 532300, 3, 'tr_0 tr_530000 tr_532300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532324, '南华县', '', 0, 0, 'N', '101.28042055018', '25.198587071156', 532300, 3, 'tr_0 tr_530000 tr_532300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532325, '姚安县', '', 0, 0, 'Y', '101.2485272012', '25.509775443473', 532300, 3, 'tr_0 tr_530000 tr_532300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532326, '大姚县', '', 0, 0, 'D', '101.33056746713', '25.727600600572', 532300, 3, 'tr_0 tr_530000 tr_532300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532327, '永仁县', '', 0, 0, 'Y', '101.67249299667', '26.055565754521', 532300, 3, 'tr_0 tr_530000 tr_532300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532328, '元谋县', '', 0, 0, 'Y', '101.8804452425', '25.710895319939', 532300, 3, 'tr_0 tr_530000 tr_532300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532329, '武定县', '', 0, 0, 'W', '102.41053182037', '25.536089587807', 532300, 3, 'tr_0 tr_530000 tr_532300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532331, '禄丰县', '', 0, 0, 'L', '102.08553135476', '25.155830804806', 532300, 3, 'tr_0 tr_530000 tr_532300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532501, '个旧市', '', 0, 0, 'G', '103.16651860849', '23.364941534583', 532500, 3, 'tr_0 tr_530000 tr_532500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532502, '开远市', '', 0, 0, 'K', '103.27355323709', '23.719907796912', 532500, 3, 'tr_0 tr_530000 tr_532500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532503, '蒙自市', '', 0, 0, 'M', '103.37154588175', '23.402079885198', 532500, 3, 'tr_0 tr_530000 tr_532500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532504, '弥勒市', '', 0, 0, 'M', '103.421489063', '24.417982225357', 532500, 3, 'tr_0 tr_530000 tr_532500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532523, '屏边苗族自治县', '', 0, 0, 'P', '103.69343183232', '22.989989585513', 532500, 3, 'tr_0 tr_530000 tr_532500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532524, '建水县', '', 0, 0, 'J', '102.83343959161', '23.640938563461', 532500, 3, 'tr_0 tr_530000 tr_532500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532525, '石屏县', '', 0, 0, 'S', '102.50244661978', '23.712004452449', 532500, 3, 'tr_0 tr_530000 tr_532500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532527, '泸西县', '', 0, 0, 'L', '103.77252314092', '24.53803716745', 532500, 3, 'tr_0 tr_530000 tr_532500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532528, '元阳县', '', 0, 0, 'Y', '102.84143280386', '23.226198051926', 532500, 3, 'tr_0 tr_530000 tr_532500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532529, '红河县', '', 0, 0, 'H', '102.42755057757', '23.374488738365', 532500, 3, 'tr_0 tr_530000 tr_532500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532530, '金平苗族瑶族傣族自治县', '', 0, 0, 'J', '103.23246860579', '22.785560606183', 532500, 3, 'tr_0 tr_530000 tr_532500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532531, '绿春县', '', 0, 0, 'L', '102.39849398755', '23.000164936586', 532500, 3, 'tr_0 tr_530000 tr_532500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532532, '河口瑶族自治县', '', 0, 0, 'H', '103.9454436278', '22.535465602947', 532500, 3, 'tr_0 tr_530000 tr_532500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532601, '文山市', '', 0, 0, 'W', '104.23854382746', '23.391944131908', 532600, 3, 'tr_0 tr_530000 tr_532600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532622, '砚山县', '', 0, 0, 'Y', '104.3435508907', '23.6114865767', 532600, 3, 'tr_0 tr_530000 tr_532600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532623, '西畴县', '', 0, 0, 'X', '104.67852542203', '23.443271275283', 532600, 3, 'tr_0 tr_530000 tr_532600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532624, '麻栗坡县', '', 0, 0, 'M', '104.70954948078', '23.13158558356', 532600, 3, 'tr_0 tr_530000 tr_532600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532625, '马关县', '', 0, 0, 'M', '104.40041497692', '23.018993577166', 532600, 3, 'tr_0 tr_530000 tr_532600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532626, '丘北县', '', 0, 0, 'Q', '104.17344174074', '24.056993896218', 532600, 3, 'tr_0 tr_530000 tr_532600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532627, '广南县', '', 0, 0, 'G', '105.06158238459', '24.052198510921', 532600, 3, 'tr_0 tr_530000 tr_532600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532628, '富宁县', '', 0, 0, 'F', '105.63749017905', '23.63138040952', 532600, 3, 'tr_0 tr_530000 tr_532600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532801, '景洪市', '', 0, 0, 'J', '100.80644312258', '22.017004423119', 532800, 3, 'tr_0 tr_530000 tr_532800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532822, '勐海县', '', 0, 0, 'M', '100.4594459398', '21.963433596681', 532800, 3, 'tr_0 tr_530000 tr_532800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532823, '勐腊县', '', 0, 0, 'M', '101.57152830823', '21.465280880862', 532800, 3, 'tr_0 tr_530000 tr_532800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532901, '大理市', '', 0, 0, 'D', '100.23651930044', '25.597604905452', 532900, 3, 'tr_0 tr_530000 tr_532900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532922, '漾濞彝族自治县', '', 0, 0, 'Y', '99.964413758168', '25.676295762972', 532900, 3, 'tr_0 tr_530000 tr_532900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532923, '祥云县', '', 0, 0, 'X', '100.55744657937', '25.489872506242', 532900, 3, 'tr_0 tr_530000 tr_532900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532924, '宾川县', '', 0, 0, 'B', '100.57845668762', '25.835249028198', 532900, 3, 'tr_0 tr_530000 tr_532900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532925, '弥渡县', '', 0, 0, 'M', '100.49758601546', '25.349336028746', 532900, 3, 'tr_0 tr_530000 tr_532900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532926, '南涧彝族自治县', '', 0, 0, 'N', '100.51554862227', '25.049426762094', 532900, 3, 'tr_0 tr_530000 tr_532900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532927, '巍山彝族回族自治县', '', 0, 0, 'W', '100.31346033515', '25.233438729799', 532900, 3, 'tr_0 tr_530000 tr_532900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532928, '永平县', '', 0, 0, 'Y', '99.547494899931', '25.4702064833', 532900, 3, 'tr_0 tr_530000 tr_532900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532929, '云龙县', '', 0, 0, 'Y', '99.377416022867', '25.891945073902', 532900, 3, 'tr_0 tr_530000 tr_532900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532930, '洱源县', '', 0, 0, 'E', '99.969209721453', '26.120093341888', 532900, 3, 'tr_0 tr_530000 tr_532900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532931, '剑川县', '', 0, 0, 'J', '99.912091235112', '26.542516534181', 532900, 3, 'tr_0 tr_530000 tr_532900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(532932, '鹤庆县', '', 0, 0, 'H', '100.18249206302', '26.566197313345', 532900, 3, 'tr_0 tr_530000 tr_532900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(533102, '瑞丽市', '', 0, 0, 'R', '97.862485584208', '24.022816893105', 533100, 3, 'tr_0 tr_530000 tr_533100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(533103, '芒市', '', 0, 0, 'M', '98.591359356114', '24.438010702758', 533100, 3, 'tr_0 tr_530000 tr_533100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(533122, '梁河县', '', 0, 0, 'L', '98.303133631636', '24.810784458257', 533100, 3, 'tr_0 tr_530000 tr_533100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(533123, '盈江县', '', 0, 0, 'Y', '97.938426535386', '24.711534266143', 533100, 3, 'tr_0 tr_530000 tr_533100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(533124, '陇川县', '', 0, 0, 'L', '97.798530364124', '24.189467890549', 533100, 3, 'tr_0 tr_530000 tr_533100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(533301, '泸水市', '', 0, 0, 'L', '98.864586163328', '25.829026769972', 533300, 3, 'tr_0 tr_530000 tr_533300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(533323, '福贡县', '', 0, 0, 'F', '98.875649424493', '26.908055208498', 533300, 3, 'tr_0 tr_530000 tr_533300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(533324, '贡山独龙族怒族自治县', '', 0, 0, 'G', '98.672399448687', '27.747067875272', 533300, 3, 'tr_0 tr_530000 tr_533300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(533325, '兰坪白族普米族自治县', '', 0, 0, 'L', '99.423284669988', '26.459207904688', 533300, 3, 'tr_0 tr_530000 tr_533300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(533401, '香格里拉市', '', 0, 0, 'X', '99.707444573899', '27.835760125321', 533400, 3, 'tr_0 tr_530000 tr_533400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(533422, '德钦县', '', 0, 0, 'D', '98.924452656054', '28.470086006822', 533400, 3, 'tr_0 tr_530000 tr_533400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(533423, '维西傈僳族自治县', '', 0, 0, 'W', '99.293465689934', '27.183170204022', 533400, 3, 'tr_0 tr_530000 tr_533400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540102, '城关区', '', 0, 0, 'C', '91.145100352371', '29.658331252915', 540100, 3, 'tr_0 tr_540000 tr_540100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540103, '堆龙德庆区', '', 0, 0, 'D', '91.009963134209', '29.651625675009', 540100, 3, 'tr_0 tr_540000 tr_540100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540104, '达孜区', '', 0, 0, 'D', '91.356318118388', '29.675409063815', 540100, 3, 'tr_0 tr_540000 tr_540100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540121, '林周县', '', 0, 0, 'L', '91.26950057393', '29.898733205887', 540100, 3, 'tr_0 tr_540000 tr_540100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540122, '当雄县', '', 0, 0, 'D', '91.107451746831', '30.479221726942', 540100, 3, 'tr_0 tr_540000 tr_540100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540123, '尼木县', '', 0, 0, 'N', '90.171180066243', '29.437518981255', 540100, 3, 'tr_0 tr_540000 tr_540100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540124, '曲水县', '', 0, 0, 'Q', '90.749958665453', '29.358987058337', 540100, 3, 'tr_0 tr_540000 tr_540100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540127, '墨竹工卡县', '', 0, 0, 'M', '91.737266398592', '29.839752605055', 540100, 3, 'tr_0 tr_540000 tr_540100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540171, '格尔木藏青工业园区', '', 0, 0, 'G', '91.120823915464', '29.650040274768', 540100, 3, 'tr_0 tr_540000 tr_540100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540172, '拉萨经济技术开发区', '', 0, 0, 'L', '91.120823915464', '29.650040274768', 540100, 3, 'tr_0 tr_540000 tr_540100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540173, '西藏文化旅游创意园区', '', 0, 0, 'X', '91.120823915464', '29.650040274768', 540100, 3, 'tr_0 tr_540000 tr_540100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540174, '达孜工业园区', '', 0, 0, 'D', '91.356318118388', '29.675409063815', 540100, 3, 'tr_0 tr_540000 tr_540100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540202, '桑珠孜区', '', 0, 0, 'S', '88.902951718862', '29.255582814198', 540200, 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540221, '南木林县', '', 0, 0, 'N', '89.105704213077', '29.687938036552', 540200, 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540222, '江孜县', '', 0, 0, 'J', '89.612012194954', '28.917634684239', 540200, 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540223, '定日县', '', 0, 0, 'D', '87.129597739314', '28.663951983289', 540200, 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540224, '萨迦县', '', 0, 0, 'S', '88.028269488152', '28.90493151262', 540200, 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540225, '拉孜县', '', 0, 0, 'L', '87.643647318074', '29.087509679995', 540200, 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540226, '昂仁县', '', 0, 0, 'A', '87.242427336755', '29.301060484014', 540200, 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540227, '谢通门县', '', 0, 0, 'X', '88.268206799957', '29.438142414132', 540200, 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540228, '白朗县', '', 0, 0, 'B', '89.268741991895', '29.111858951918', 540200, 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540229, '仁布县', '', 0, 0, 'R', '89.848624967899', '29.236788327037', 540200, 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540230, '康马县', '', 0, 0, 'K', '89.688244915761', '28.561443952501', 540200, 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540231, '定结县', '', 0, 0, 'D', '87.772376743375', '28.369910769393', 540200, 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540232, '仲巴县', '', 0, 0, 'Z', '84.038116876917', '29.775982232026', 540200, 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540233, '亚东县', '', 0, 0, 'Y', '88.913440783145', '27.491108780091', 540200, 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540234, '吉隆县', '', 0, 0, 'J', '85.304073768987', '28.858501664955', 540200, 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540235, '聂拉木县', '', 0, 0, 'N', '85.988770403046', '28.160839360543', 540200, 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540236, '萨嘎县', '', 0, 0, 'S', '85.239825701307', '29.334659688784', 540200, 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540237, '岗巴县', '', 0, 0, 'G', '88.526529281476', '28.28036304226', 540200, 3, 'tr_0 tr_540000 tr_540200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540302, '卡若区', '', 0, 0, 'K', '97.186654336416', '31.144248893947', 540300, 3, 'tr_0 tr_540000 tr_540300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540321, '江达县', '', 0, 0, 'J', '98.224594520968', '31.50520701798', 540300, 3, 'tr_0 tr_540000 tr_540300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540322, '贡觉县', '', 0, 0, 'G', '98.277334127289', '30.865966958412', 540300, 3, 'tr_0 tr_540000 tr_540300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540323, '类乌齐县', '', 0, 0, 'L', '96.606717192399', '31.217793112281', 540300, 3, 'tr_0 tr_540000 tr_540300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540324, '丁青县', '', 0, 0, 'D', '95.602643844218', '31.418402964614', 540300, 3, 'tr_0 tr_540000 tr_540300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540325, '察雅县', '', 0, 0, 'C', '97.575123679628', '30.659864699371', 540300, 3, 'tr_0 tr_540000 tr_540300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540326, '八宿县', '', 0, 0, 'B', '96.924360446152', '30.059028991399', 540300, 3, 'tr_0 tr_540000 tr_540300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540327, '左贡县', '', 0, 0, 'Z', '97.847366832989', '29.676848537197', 540300, 3, 'tr_0 tr_540000 tr_540300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540328, '芒康县', '', 0, 0, 'M', '98.599685480392', '29.685776117713', 540300, 3, 'tr_0 tr_540000 tr_540300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540329, '洛隆县', '', 0, 0, 'L', '95.831306613477', '30.747126507478', 540300, 3, 'tr_0 tr_540000 tr_540300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540330, '边坝县', '', 0, 0, 'B', '94.714371149159', '30.939624927347', 540300, 3, 'tr_0 tr_540000 tr_540300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540402, '巴宜区', '', 0, 0, 'B', '94.36754427672', '29.641644546372', 540400, 3, 'tr_0 tr_540000 tr_540400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540421, '工布江达县', '', 0, 0, 'G', '93.252419796678', '29.891367616241', 540400, 3, 'tr_0 tr_540000 tr_540400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540422, '米林县', '', 0, 0, 'M', '94.219938578083', '29.220916541197', 540400, 3, 'tr_0 tr_540000 tr_540400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540423, '墨脱县', '', 0, 0, 'M', '95.33949529751', '29.330937701878', 540400, 3, 'tr_0 tr_540000 tr_540400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540424, '波密县', '', 0, 0, 'B', '95.773900121645', '29.865060090549', 540400, 3, 'tr_0 tr_540000 tr_540400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540425, '察隅县', '', 0, 0, 'C', '97.473269749246', '28.667444137201', 540400, 3, 'tr_0 tr_540000 tr_540400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540426, '朗县', '', 0, 0, 'L', '93.081368234407', '29.051902419086', 540400, 3, 'tr_0 tr_540000 tr_540400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540602, '色尼区', '', 0, 0, 'S', '92.05984683665', '31.476117292678', 540600, 3, 'tr_0 tr_540000 tr_540600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540621, '嘉黎县', '', 0, 0, 'J', '93.23873151504', '30.647062455597', 540600, 3, 'tr_0 tr_540000 tr_540600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540622, '比如县', '', 0, 0, 'B', '93.685965938612', '31.48635726205', 540600, 3, 'tr_0 tr_540000 tr_540600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540623, '聂荣县', '', 0, 0, 'N', '92.308654466293', '32.113707483115', 540600, 3, 'tr_0 tr_540000 tr_540600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540624, '安多县', '', 0, 0, 'A', '91.688890677999', '32.271268023108', 540600, 3, 'tr_0 tr_540000 tr_540600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540625, '申扎县', '', 0, 0, 'S', '88.716481108234', '30.936393285832', 540600, 3, 'tr_0 tr_540000 tr_540600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540626, '索县', '', 0, 0, 'S', '93.792172958379', '31.892424309227', 540600, 3, 'tr_0 tr_540000 tr_540600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540627, '班戈县', '', 0, 0, 'B', '90.016707727114', '31.398727622963', 540600, 3, 'tr_0 tr_540000 tr_540600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540628, '巴青县', '', 0, 0, 'B', '94.059881564766', '31.924549424276', 540600, 3, 'tr_0 tr_540000 tr_540600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540629, '尼玛县', '', 0, 0, 'N', '87.243292410868', '31.790953326638', 540600, 3, 'tr_0 tr_540000 tr_540600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540630, '双湖县', '', 0, 0, 'S', '88.843427936123', '33.193503165809', 540600, 3, 'tr_0 tr_540000 tr_540600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(542521, '普兰县', '', 0, 0, 'P', '81.183094731974', '30.300162591078', 542500, 3, 'tr_0 tr_540000 tr_542500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(542522, '札达县', '', 0, 0, 'Z', '79.809323212178', '31.485343070014', 542500, 3, 'tr_0 tr_540000 tr_542500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(542523, '噶尔县', '', 0, 0, 'G', '80.102877146054', '32.497156823602', 542500, 3, 'tr_0 tr_540000 tr_542500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(542524, '日土县', '', 0, 0, 'R', '79.739109138263', '33.387186043872', 542500, 3, 'tr_0 tr_540000 tr_542500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(542525, '革吉县', '', 0, 0, 'G', '81.151664369638', '32.393356020044', 542500, 3, 'tr_0 tr_540000 tr_542500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(542526, '改则县', '', 0, 0, 'G', '84.06911336254', '32.308356643244', 542500, 3, 'tr_0 tr_540000 tr_542500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(542527, '措勤县', '', 0, 0, 'C', '85.165952205481', '31.022666379273', 542500, 3, 'tr_0 tr_540000 tr_542500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610102, '新城区', '', 0, 0, 'X', '108.9673910385', '34.272724469533', 610100, 3, 'tr_0 tr_610000 tr_610100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610103, '碑林区', '', 0, 0, 'B', '108.94049774781', '34.236473940412', 610100, 3, 'tr_0 tr_610000 tr_610100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610104, '莲湖区', '', 0, 0, 'L', '108.95042644912', '34.271017203053', 610100, 3, 'tr_0 tr_610000 tr_610100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610111, '灞桥区', '', 0, 0, 'B', '109.07141535554', '34.279127674951', 610100, 3, 'tr_0 tr_610000 tr_610100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610112, '未央区', '', 0, 0, 'W', '108.95340118781', '34.299148106589', 610100, 3, 'tr_0 tr_610000 tr_610100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610113, '雁塔区', '', 0, 0, 'Y', '108.95144045638', '34.220635239986', 610100, 3, 'tr_0 tr_610000 tr_610100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610114, '阎良区', '', 0, 0, 'Y', '109.23246311822', '34.668363274699', 610100, 3, 'tr_0 tr_610000 tr_610100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610115, '临潼区', '', 0, 0, 'L', '109.22043579558', '34.372747432848', 610100, 3, 'tr_0 tr_610000 tr_610100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610116, '长安区', '', 0, 0, 'Z', '108.91358047235', '34.163290267305', 610100, 3, 'tr_0 tr_610000 tr_610100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610117, '高陵区', '', 0, 0, 'G', '109.09438691387', '34.541093106058', 610100, 3, 'tr_0 tr_610000 tr_610100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610118, '鄠邑区', '', 0, 0, 'H', '108.61142023271', '34.115020711599', 610100, 3, 'tr_0 tr_610000 tr_610100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610122, '蓝田县', '', 0, 0, 'L', '109.32938812681', '34.157620654732', 610100, 3, 'tr_0 tr_610000 tr_610100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610124, '周至县', '', 0, 0, 'Z', '108.22842183954', '34.169385269616', 610100, 3, 'tr_0 tr_610000 tr_610100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610202, '王益区', '', 0, 0, 'W', '109.08141735858', '35.075322096471', 610200, 3, 'tr_0 tr_610000 tr_610200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610203, '印台区', '', 0, 0, 'Y', '109.10643408907', '35.120859282945', 610200, 3, 'tr_0 tr_610000 tr_610200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610204, '耀州区', '', 0, 0, 'Y', '108.98643790006', '34.91596030911', 610200, 3, 'tr_0 tr_610000 tr_610200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610222, '宜君县', '', 0, 0, 'Y', '109.12353674801', '35.404582194219', 610200, 3, 'tr_0 tr_610000 tr_610200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610302, '渭滨区', '', 0, 0, 'W', '107.15641916768', '34.377481132682', 610300, 3, 'tr_0 tr_610000 tr_610300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610303, '金台区', '', 0, 0, 'J', '107.15342367813', '34.382351084696', 610300, 3, 'tr_0 tr_610000 tr_610300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610304, '陈仓区', '', 0, 0, 'C', '107.39343842395', '34.360756335457', 610300, 3, 'tr_0 tr_610000 tr_610300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610322, '凤翔县', '', 0, 0, 'F', '107.40737949665', '34.527616279899', 610300, 3, 'tr_0 tr_610000 tr_610300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'); +INSERT INTO `hg_sys_provinces` (`id`, `title`, `short_title`, `areacode`, `zipcode`, `pinyin`, `lng`, `lat`, `pid`, `level`, `tree`, `sort`, `status`, `created_at`, `updated_at`) VALUES +(610323, '岐山县', '', 0, 0, 'Q', '107.62744727879', '34.449776962387', 610300, 3, 'tr_0 tr_610000 tr_610300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610324, '扶风县', '', 0, 0, 'F', '107.9064530651', '34.381463351226', 610300, 3, 'tr_0 tr_610000 tr_610300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610326, '眉县', '', 0, 0, 'M', '107.75639813644', '34.280375863086', 610300, 3, 'tr_0 tr_610000 tr_610300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610327, '陇县', '', 0, 0, 'L', '106.87058365441', '34.898780253107', 610300, 3, 'tr_0 tr_610000 tr_610300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610328, '千阳县', '', 0, 0, 'Q', '107.13946616644', '34.648544600794', 610300, 3, 'tr_0 tr_610000 tr_610300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610329, '麟游县', '', 0, 0, 'L', '107.799514106', '34.683748667164', 610300, 3, 'tr_0 tr_610000 tr_610300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610330, '凤县', '', 0, 0, 'F', '106.52255782187', '33.916583016343', 610300, 3, 'tr_0 tr_610000 tr_610300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610331, '太白县', '', 0, 0, 'T', '107.32552913248', '34.064248441153', 610300, 3, 'tr_0 tr_610000 tr_610300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610402, '秦都区', '', 0, 0, 'Q', '108.71243199239', '34.3351451161', 610400, 3, 'tr_0 tr_610000 tr_610400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610403, '杨陵区', '', 0, 0, 'Y', '108.09151531881', '34.278012507654', 610400, 3, 'tr_0 tr_610000 tr_610400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610404, '渭城区', '', 0, 0, 'W', '108.74345057148', '34.368110229368', 610400, 3, 'tr_0 tr_610000 tr_610400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610422, '三原县', '', 0, 0, 'S', '108.94744650025', '34.623078955252', 610400, 3, 'tr_0 tr_610000 tr_610400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610423, '泾阳县', '', 0, 0, 'J', '108.84937884705', '34.533316532768', 610400, 3, 'tr_0 tr_610000 tr_610400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610424, '乾县', '', 0, 0, 'G', '108.24537762554', '34.534018266142', 610400, 3, 'tr_0 tr_610000 tr_610400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610425, '礼泉县', '', 0, 0, 'L', '108.43161549166', '34.487390768504', 610400, 3, 'tr_0 tr_610000 tr_610400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610426, '永寿县', '', 0, 0, 'Y', '108.14846878644', '34.698035535617', 610400, 3, 'tr_0 tr_610000 tr_610400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610428, '长武县', '', 0, 0, 'Z', '107.80556078005', '35.211657338715', 610400, 3, 'tr_0 tr_610000 tr_610400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610429, '旬邑县', '', 0, 0, 'X', '108.34046703665', '35.117963919719', 610400, 3, 'tr_0 tr_610000 tr_610400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610430, '淳化县', '', 0, 0, 'C', '108.58744176373', '34.804776911295', 610400, 3, 'tr_0 tr_610000 tr_610400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610431, '武功县', '', 0, 0, 'W', '108.20655106479', '34.266137667633', 610400, 3, 'tr_0 tr_610000 tr_610400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610481, '兴平市', '', 0, 0, 'X', '108.49639400877', '34.305476520292', 610400, 3, 'tr_0 tr_610000 tr_610400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610482, '彬州市', '', 0, 0, 'B', '108.08456557823', '35.049610571828', 610400, 3, 'tr_0 tr_610000 tr_610400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610502, '临渭区', '', 0, 0, 'L', '109.4985962764', '34.504000470428', 610500, 3, 'tr_0 tr_610000 tr_610500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610503, '华州区', '', 0, 0, 'H', '109.7784773716', '34.5187307401', 610500, 3, 'tr_0 tr_610000 tr_610500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610522, '潼关县', '', 0, 0, 'T', '110.25250761972', '34.550326848532', 610500, 3, 'tr_0 tr_610000 tr_610500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610523, '大荔县', '', 0, 0, 'D', '109.94845330291', '34.801832760484', 610500, 3, 'tr_0 tr_610000 tr_610500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610524, '合阳县', '', 0, 0, 'H', '110.15539621274', '35.243872196866', 610500, 3, 'tr_0 tr_610000 tr_610500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610525, '澄城县', '', 0, 0, 'C', '109.93843360325', '35.196572815551', 610500, 3, 'tr_0 tr_610000 tr_610500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610526, '蒲城县', '', 0, 0, 'P', '109.59249651068', '34.961274128783', 610500, 3, 'tr_0 tr_610000 tr_610500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610527, '白水县', '', 0, 0, 'B', '109.59752055374', '35.183287514613', 610500, 3, 'tr_0 tr_610000 tr_610500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610528, '富平县', '', 0, 0, 'F', '109.18643744728', '34.757260440256', 610500, 3, 'tr_0 tr_610000 tr_610500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610581, '韩城市', '', 0, 0, 'H', '110.44955264012', '35.482086787313', 610500, 3, 'tr_0 tr_610000 tr_610500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610582, '华阴市', '', 0, 0, 'H', '110.09860075704', '34.571800158753', 610500, 3, 'tr_0 tr_610000 tr_610500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610602, '宝塔区', '', 0, 0, 'B', '109.49959402433', '36.596890441313', 610600, 3, 'tr_0 tr_610000 tr_610600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610603, '安塞区', '', 0, 0, 'A', '109.33541943984', '36.870098259307', 610600, 3, 'tr_0 tr_610000 tr_610600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610621, '延长县', '', 0, 0, 'Y', '110.01847172589', '36.585328801705', 610600, 3, 'tr_0 tr_610000 tr_610600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610622, '延川县', '', 0, 0, 'Y', '110.20054028665', '36.884136960993', 610600, 3, 'tr_0 tr_610000 tr_610600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610623, '子长县', '', 0, 0, 'Z', '109.68138985954', '37.148816918367', 610600, 3, 'tr_0 tr_610000 tr_610600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610625, '志丹县', '', 0, 0, 'Z', '108.77557747991', '36.828021135864', 610600, 3, 'tr_0 tr_610000 tr_610600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610626, '吴起县', '', 0, 0, 'W', '108.18258966361', '36.932576099483', 610600, 3, 'tr_0 tr_610000 tr_610600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610627, '甘泉县', '', 0, 0, 'G', '109.35752350454', '36.282688619053', 610600, 3, 'tr_0 tr_610000 tr_610600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610628, '富县', '', 0, 0, 'F', '109.38659653355', '35.993367977969', 610600, 3, 'tr_0 tr_610000 tr_610600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610629, '洛川县', '', 0, 0, 'L', '109.43840396825', '35.768300429421', 610600, 3, 'tr_0 tr_610000 tr_610600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610630, '宜川县', '', 0, 0, 'Y', '110.17541306458', '36.056397437854', 610600, 3, 'tr_0 tr_610000 tr_610600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610631, '黄龙县', '', 0, 0, 'H', '109.84654907671', '35.590233768069', 610600, 3, 'tr_0 tr_610000 tr_610600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610632, '黄陵县', '', 0, 0, 'H', '109.26960598495', '35.585076348969', 610600, 3, 'tr_0 tr_610000 tr_610600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610702, '汉台区', '', 0, 0, 'H', '107.03840167622', '33.074191093099', 610700, 3, 'tr_0 tr_610000 tr_610700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610703, '南郑区', '', 0, 0, 'N', '106.94243318334', '33.005614599734', 610700, 3, 'tr_0 tr_610000 tr_610700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610722, '城固县', '', 0, 0, 'C', '107.3406125803', '33.162399385178', 610700, 3, 'tr_0 tr_610000 tr_610700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610723, '洋县', '', 0, 0, 'Y', '107.55246428058', '33.228862589315', 610700, 3, 'tr_0 tr_610000 tr_610700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610724, '西乡县', '', 0, 0, 'X', '107.77339281906', '32.989397441895', 610700, 3, 'tr_0 tr_610000 tr_610700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610725, '勉县', '', 0, 0, 'M', '106.67942594867', '33.159804746955', 610700, 3, 'tr_0 tr_610000 tr_610700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610726, '宁强县', '', 0, 0, 'N', '106.26458864382', '32.835380199209', 610700, 3, 'tr_0 tr_610000 tr_610700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610727, '略阳县', '', 0, 0, 'L', '106.16354400616', '33.333193777733', 610700, 3, 'tr_0 tr_610000 tr_610700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610728, '镇巴县', '', 0, 0, 'Z', '107.9014456407', '32.54283336567', 610700, 3, 'tr_0 tr_610000 tr_610700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610729, '留坝县', '', 0, 0, 'L', '106.92741441352', '33.623825216737', 610700, 3, 'tr_0 tr_610000 tr_610700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610730, '佛坪县', '', 0, 0, 'F', '107.99742428443', '33.530693101588', 610700, 3, 'tr_0 tr_610000 tr_610700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610802, '榆阳区', '', 0, 0, 'Y', '109.72755916953', '38.28241962673', 610800, 3, 'tr_0 tr_610000 tr_610800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610803, '横山区', '', 0, 0, 'H', '109.30049134534', '37.968573394166', 610800, 3, 'tr_0 tr_610000 tr_610800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610822, '府谷县', '', 0, 0, 'F', '111.0736281152', '39.03379562985', 610800, 3, 'tr_0 tr_610000 tr_610800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610824, '靖边县', '', 0, 0, 'J', '108.80060049853', '37.605063193955', 610800, 3, 'tr_0 tr_610000 tr_610800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610825, '定边县', '', 0, 0, 'D', '107.60756957446', '37.600459865341', 610800, 3, 'tr_0 tr_610000 tr_610800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610826, '绥德县', '', 0, 0, 'S', '110.26942648536', '37.508907288933', 610800, 3, 'tr_0 tr_610000 tr_610800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610827, '米脂县', '', 0, 0, 'M', '110.19045141747', '37.761397514329', 610800, 3, 'tr_0 tr_610000 tr_610800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610828, '佳县', '', 0, 0, 'J', '110.49747741874', '38.025611678572', 610800, 3, 'tr_0 tr_610000 tr_610800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610829, '吴堡县', '', 0, 0, 'W', '110.74645500778', '37.458269874078', 610800, 3, 'tr_0 tr_610000 tr_610800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610830, '清涧县', '', 0, 0, 'Q', '110.12755916227', '37.094852887828', 610800, 3, 'tr_0 tr_610000 tr_610800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610831, '子洲县', '', 0, 0, 'Z', '110.04239845247', '37.617025887547', 610800, 3, 'tr_0 tr_610000 tr_610800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610881, '神木市', '', 0, 0, 'S', '110.50542966826', '38.848544495221', 610800, 3, 'tr_0 tr_610000 tr_610800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610902, '汉滨区', '', 0, 0, 'H', '109.03359606476', '32.701196105738', 610900, 3, 'tr_0 tr_610000 tr_610900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610921, '汉阴县', '', 0, 0, 'H', '108.51550698561', '32.899120857292', 610900, 3, 'tr_0 tr_610000 tr_610900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610922, '石泉县', '', 0, 0, 'S', '108.25442679592', '33.044602110263', 610900, 3, 'tr_0 tr_610000 tr_610900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610923, '宁陕县', '', 0, 0, 'N', '108.32056400011', '33.316555486503', 610900, 3, 'tr_0 tr_610000 tr_610900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610924, '紫阳县', '', 0, 0, 'Z', '108.54159431661', '32.525785619364', 610900, 3, 'tr_0 tr_610000 tr_610900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610925, '岚皋县', '', 0, 0, 'L', '108.90861535814', '32.312880776501', 610900, 3, 'tr_0 tr_610000 tr_610900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610926, '平利县', '', 0, 0, 'P', '109.36854670128', '32.394804123185', 610900, 3, 'tr_0 tr_610000 tr_610900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610927, '镇坪县', '', 0, 0, 'Z', '109.53349679292', '31.889643295791', 610900, 3, 'tr_0 tr_610000 tr_610900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610928, '旬阳县', '', 0, 0, 'X', '109.37155674338', '32.839864221772', 610900, 3, 'tr_0 tr_610000 tr_610900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(610929, '白河县', '', 0, 0, 'B', '110.11958688053', '32.814846485284', 610900, 3, 'tr_0 tr_610000 tr_610900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(611002, '商州区', '', 0, 0, 'S', '109.94747163465', '33.86885529308', 611000, 3, 'tr_0 tr_610000 tr_611000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(611021, '洛南县', '', 0, 0, 'L', '110.15442748007', '34.097070538846', 611000, 3, 'tr_0 tr_610000 tr_611000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(611022, '丹凤县', '', 0, 0, 'D', '110.3335602886', '33.701537322921', 611000, 3, 'tr_0 tr_610000 tr_611000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(611023, '商南县', '', 0, 0, 'S', '110.88840847837', '33.537533476707', 611000, 3, 'tr_0 tr_610000 tr_611000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(611024, '山阳县', '', 0, 0, 'S', '109.88854863218', '33.537968382769', 611000, 3, 'tr_0 tr_610000 tr_611000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(611025, '镇安县', '', 0, 0, 'Z', '109.15957460914', '33.429044650147', 611000, 3, 'tr_0 tr_610000 tr_611000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(611026, '柞水县', '', 0, 0, 'Z', '109.120502272', '33.692026241945', 611000, 3, 'tr_0 tr_610000 tr_611000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620102, '城关区', '', 0, 0, 'C', '103.83147490053', '36.063181475369', 620100, 3, 'tr_0 tr_620000 tr_620100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620103, '七里河区', '', 0, 0, 'Q', '103.79241388204', '36.07212925843', 620100, 3, 'tr_0 tr_620000 tr_620100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620104, '西固区', '', 0, 0, 'X', '103.63458007682', '36.094109365757', 620100, 3, 'tr_0 tr_620000 tr_620100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620105, '安宁区', '', 0, 0, 'A', '103.72553503682', '36.109753754973', 620100, 3, 'tr_0 tr_620000 tr_620100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620111, '红古区', '', 0, 0, 'H', '102.86542781272', '36.351863423179', 620100, 3, 'tr_0 tr_620000 tr_620100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620121, '永登县', '', 0, 0, 'Y', '103.26662443823', '36.74209521344', 620100, 3, 'tr_0 tr_620000 tr_620100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620122, '皋兰县', '', 0, 0, 'G', '103.95346415997', '36.338142148673', 620100, 3, 'tr_0 tr_620000 tr_620100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620123, '榆中县', '', 0, 0, 'Y', '104.11956587928', '35.848851048242', 620100, 3, 'tr_0 tr_620000 tr_620100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620171, '兰州新区', '', 0, 0, 'L', '103.76383312444', '36.082833434467', 620100, 3, 'tr_0 tr_620000 tr_620100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620201, '市辖区', '', 0, 0, 'S', '98.208045429791', '39.821463455258', 620200, 3, 'tr_0 tr_620000 tr_620200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620302, '金川区', '', 0, 0, 'J', '102.20058588614', '38.525772245594', 620300, 3, 'tr_0 tr_620000 tr_620300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620321, '永昌县', '', 0, 0, 'Y', '101.97946358316', '38.252940956889', 620300, 3, 'tr_0 tr_620000 tr_620300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620402, '白银区', '', 0, 0, 'B', '104.15541276065', '36.541463568069', 620400, 3, 'tr_0 tr_620000 tr_620400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620403, '平川区', '', 0, 0, 'P', '104.83161394007', '36.733498751869', 620400, 3, 'tr_0 tr_620000 tr_620400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620421, '靖远县', '', 0, 0, 'J', '104.68251507796', '36.577096288837', 620400, 3, 'tr_0 tr_620000 tr_620400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620422, '会宁县', '', 0, 0, 'H', '105.05960693274', '35.698508053094', 620400, 3, 'tr_0 tr_620000 tr_620400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620423, '景泰县', '', 0, 0, 'J', '104.06944438436', '37.187406260097', 620400, 3, 'tr_0 tr_620000 tr_620400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620502, '秦州区', '', 0, 0, 'Q', '105.73041549435', '34.587315743121', 620500, 3, 'tr_0 tr_620000 tr_620500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620503, '麦积区', '', 0, 0, 'M', '105.89559698949', '34.576336861448', 620500, 3, 'tr_0 tr_620000 tr_620500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620521, '清水县', '', 0, 0, 'Q', '106.14359506621', '34.753882906363', 620500, 3, 'tr_0 tr_620000 tr_620500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620522, '秦安县', '', 0, 0, 'Q', '105.68157480343', '34.864876111568', 620500, 3, 'tr_0 tr_620000 tr_620500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620523, '甘谷县', '', 0, 0, 'G', '105.34247534291', '34.738300137398', 620500, 3, 'tr_0 tr_620000 tr_620500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620524, '武山县', '', 0, 0, 'W', '104.89742838309', '34.727669101635', 620500, 3, 'tr_0 tr_620000 tr_620500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620525, '张家川回族自治县', '', 0, 0, 'Z', '106.21139036271', '34.99490501302', 620500, 3, 'tr_0 tr_620000 tr_620500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620602, '凉州区', '', 0, 0, 'L', '102.64857479651', '37.934121948376', 620600, 3, 'tr_0 tr_620000 tr_620600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620621, '民勤县', '', 0, 0, 'M', '103.10040027988', '38.630624826433', 620600, 3, 'tr_0 tr_620000 tr_620600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620622, '古浪县', '', 0, 0, 'G', '102.90362978165', '37.475801906601', 620600, 3, 'tr_0 tr_620000 tr_620600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620623, '天祝藏族自治县', '', 0, 0, 'T', '103.14862131966', '36.97759617654', 620600, 3, 'tr_0 tr_620000 tr_620600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620702, '甘州区', '', 0, 0, 'G', '100.48455772128', '38.934781471785', 620700, 3, 'tr_0 tr_620000 tr_620700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620721, '肃南裕固族自治县', '', 0, 0, 'S', '99.621905418008', '38.843100205023', 620700, 3, 'tr_0 tr_620000 tr_620700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620722, '民乐县', '', 0, 0, 'M', '100.81942903742', '38.436842233981', 620700, 3, 'tr_0 tr_620000 tr_620700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620723, '临泽县', '', 0, 0, 'L', '100.17055476077', '39.158514444726', 620700, 3, 'tr_0 tr_620000 tr_620700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620724, '高台县', '', 0, 0, 'G', '99.825759504337', '39.383646046807', 620700, 3, 'tr_0 tr_620000 tr_620700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620725, '山丹县', '', 0, 0, 'S', '101.09561558172', '38.790452663306', 620700, 3, 'tr_0 tr_620000 tr_620700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620802, '崆峒区', '', 0, 0, 'K', '106.68141452757', '35.548814892232', 620800, 3, 'tr_0 tr_620000 tr_620800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620821, '泾川县', '', 0, 0, 'J', '107.37451813364', '35.338668597821', 620800, 3, 'tr_0 tr_620000 tr_620800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620822, '灵台县', '', 0, 0, 'L', '107.62746120252', '35.07158181696', 620800, 3, 'tr_0 tr_620000 tr_620800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620823, '崇信县', '', 0, 0, 'C', '107.04141513189', '35.308615839828', 620800, 3, 'tr_0 tr_620000 tr_620800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620825, '庄浪县', '', 0, 0, 'Z', '106.04258582178', '35.208192125804', 620800, 3, 'tr_0 tr_620000 tr_620800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620826, '静宁县', '', 0, 0, 'J', '105.73841580322', '35.528257189136', 620800, 3, 'tr_0 tr_620000 tr_620800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620881, '华亭市', '', 0, 0, 'H', '106.65948599177', '35.223550762897', 620800, 3, 'tr_0 tr_620000 tr_620800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620902, '肃州区', '', 0, 0, 'S', '98.514321853032', '39.751245509963', 620900, 3, 'tr_0 tr_620000 tr_620900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620921, '金塔县', '', 0, 0, 'J', '98.908368236172', '39.990029254093', 620900, 3, 'tr_0 tr_620000 tr_620900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620922, '瓜州县', '', 0, 0, 'G', '95.788736364512', '40.52610597895', 620900, 3, 'tr_0 tr_620000 tr_620900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620923, '肃北蒙古族自治县', '', 0, 0, 'S', '94.883692395412', '39.518329738436', 620900, 3, 'tr_0 tr_620000 tr_620900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620924, '阿克塞哈萨克族自治县', '', 0, 0, 'A', '94.346760190396', '39.640045316917', 620900, 3, 'tr_0 tr_620000 tr_620900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620981, '玉门市', '', 0, 0, 'Y', '97.051711691182', '40.297620020884', 620900, 3, 'tr_0 tr_620000 tr_620900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(620982, '敦煌市', '', 0, 0, 'D', '94.668527025762', '40.147867484244', 620900, 3, 'tr_0 tr_620000 tr_620900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(621002, '西峰区', '', 0, 0, 'X', '107.65739112517', '35.736864475978', 621000, 3, 'tr_0 tr_620000 tr_621000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(621021, '庆城县', '', 0, 0, 'Q', '107.88840619724', '36.021726360644', 621000, 3, 'tr_0 tr_620000 tr_621000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(621022, '环县', '', 0, 0, 'H', '107.31446964419', '36.574427108907', 621000, 3, 'tr_0 tr_620000 tr_621000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(621023, '华池县', '', 0, 0, 'H', '107.99638952632', '36.467575129884', 621000, 3, 'tr_0 tr_620000 tr_621000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(621024, '合水县', '', 0, 0, 'H', '108.026447188', '35.8252622164', 621000, 3, 'tr_0 tr_620000 tr_621000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(621025, '正宁县', '', 0, 0, 'Z', '108.36637461671', '35.498218780898', 621000, 3, 'tr_0 tr_620000 tr_621000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(621026, '宁县', '', 0, 0, 'N', '107.93457092587', '35.507932974537', 621000, 3, 'tr_0 tr_620000 tr_621000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(621027, '镇原县', '', 0, 0, 'Z', '107.20757586986', '35.683230586316', 621000, 3, 'tr_0 tr_620000 tr_621000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(621102, '安定区', '', 0, 0, 'A', '104.61650040265', '35.585600016725', 621100, 3, 'tr_0 tr_620000 tr_621100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(621121, '通渭县', '', 0, 0, 'T', '105.24840362211', '35.217216821266', 621100, 3, 'tr_0 tr_620000 tr_621100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(621122, '陇西县', '', 0, 0, 'L', '104.64138059069', '35.010197162318', 621100, 3, 'tr_0 tr_620000 tr_621100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(621123, '渭源县', '', 0, 0, 'W', '104.22158401062', '35.142391958021', 621100, 3, 'tr_0 tr_620000 tr_621100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(621124, '临洮县', '', 0, 0, 'L', '103.8656010777', '35.400587040258', 621100, 3, 'tr_0 tr_620000 tr_621100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(621125, '漳县', '', 0, 0, 'Z', '104.4785953255', '34.854249981778', 621100, 3, 'tr_0 tr_620000 tr_621100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(621126, '岷县', '', 0, 0, 'M', '104.04339603983', '34.44440764065', 621100, 3, 'tr_0 tr_620000 tr_621100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(621202, '武都区', '', 0, 0, 'W', '104.93259336075', '33.398072188089', 621200, 3, 'tr_0 tr_620000 tr_621200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(621221, '成县', '', 0, 0, 'C', '105.7484779029', '33.756635187351', 621200, 3, 'tr_0 tr_620000 tr_621200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(621222, '文县', '', 0, 0, 'W', '104.68955842198', '32.949601280768', 621200, 3, 'tr_0 tr_620000 tr_621200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(621223, '宕昌县', '', 0, 0, 'D', '104.39938579987', '34.053486291359', 621200, 3, 'tr_0 tr_620000 tr_621200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(621224, '康县', '', 0, 0, 'K', '105.61539187549', '33.335376401996', 621200, 3, 'tr_0 tr_620000 tr_621200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(621225, '西和县', '', 0, 0, 'X', '105.30761048912', '34.016787358437', 621200, 3, 'tr_0 tr_620000 tr_621200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(621226, '礼县', '', 0, 0, 'L', '105.1835909694', '34.194685061207', 621200, 3, 'tr_0 tr_620000 tr_621200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(621227, '徽县', '', 0, 0, 'H', '106.09441787005', '33.77519418709', 621200, 3, 'tr_0 tr_620000 tr_621200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(621228, '两当县', '', 0, 0, 'L', '106.31141946599', '33.915122835173', 621200, 3, 'tr_0 tr_620000 tr_621200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(622901, '临夏市', '', 0, 0, 'L', '103.2495491776', '35.609898772689', 622900, 3, 'tr_0 tr_620000 tr_622900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(622921, '临夏县', '', 0, 0, 'L', '103.00251408439', '35.497397958837', 622900, 3, 'tr_0 tr_620000 tr_622900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(622922, '康乐县', '', 0, 0, 'K', '103.71547554223', '35.376109760702', 622900, 3, 'tr_0 tr_620000 tr_622900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(622923, '永靖县', '', 0, 0, 'Y', '103.29250749455', '35.963330304471', 622900, 3, 'tr_0 tr_620000 tr_622900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(622924, '广河县', '', 0, 0, 'G', '103.58240999619', '35.494101361696', 622900, 3, 'tr_0 tr_620000 tr_622900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(622925, '和政县', '', 0, 0, 'H', '103.35752370329', '35.430589904166', 622900, 3, 'tr_0 tr_620000 tr_622900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(622926, '东乡族自治县', '', 0, 0, 'D', '103.39561320437', '35.669329728624', 622900, 3, 'tr_0 tr_620000 tr_622900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(622927, '积石山保安族东乡族撒拉族自治县', '', 0, 0, 'J', '102.88251807505', '35.72349932364', 622900, 3, 'tr_0 tr_620000 tr_622900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(623001, '合作市', '', 0, 0, 'H', '102.917571573', '35.005935428196', 623000, 3, 'tr_0 tr_620000 tr_623000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(623021, '临潭县', '', 0, 0, 'L', '103.36053329624', '34.698639411522', 623000, 3, 'tr_0 tr_620000 tr_623000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(623022, '卓尼县', '', 0, 0, 'Z', '103.51361578396', '34.594916432804', 623000, 3, 'tr_0 tr_620000 tr_623000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(623023, '舟曲县', '', 0, 0, 'Z', '104.37748996239', '33.790814973644', 623000, 3, 'tr_0 tr_620000 tr_623000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(623024, '迭部县', '', 0, 0, 'D', '103.22844034558', '34.062020054097', 623000, 3, 'tr_0 tr_620000 tr_623000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(623025, '玛曲县', '', 0, 0, 'M', '102.07860004026', '34.003358168342', 623000, 3, 'tr_0 tr_620000 tr_623000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(623026, '碌曲县', '', 0, 0, 'L', '102.49442413371', '34.597087271566', 623000, 3, 'tr_0 tr_620000 tr_623000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(623027, '夏河县', '', 0, 0, 'X', '102.52857708038', '35.208324325541', 623000, 3, 'tr_0 tr_620000 tr_623000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(630102, '城东区', '', 0, 0, 'C', '101.80956903833', '36.605707645661', 630100, 3, 'tr_0 tr_630000 tr_630100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(630103, '城中区', '', 0, 0, 'C', '101.79048354964', '36.628800570589', 630100, 3, 'tr_0 tr_630000 tr_630100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(630104, '城西区', '', 0, 0, 'C', '101.77241422413', '36.634496979524', 630100, 3, 'tr_0 tr_630000 tr_630100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(630105, '城北区', '', 0, 0, 'C', '101.77240488176', '36.656293630837', 630100, 3, 'tr_0 tr_630000 tr_630100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(630121, '大通回族土族自治县', '', 0, 0, 'D', '101.69256375752', '36.932666463407', 630100, 3, 'tr_0 tr_630000 tr_630100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(630122, '湟中县', '', 0, 0, 'H', '101.57861675782', '36.506627546281', 630100, 3, 'tr_0 tr_630000 tr_630100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(630123, '湟源县', '', 0, 0, 'H', '101.26244861154', '36.688587514903', 630100, 3, 'tr_0 tr_630000 tr_630100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(630202, '乐都区', '', 0, 0, 'L', '102.40856633883', '36.487820051522', 630200, 3, 'tr_0 tr_630000 tr_630200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(630203, '平安区', '', 0, 0, 'P', '102.11442787756', '36.506553573162', 630200, 3, 'tr_0 tr_630000 tr_630200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(630222, '民和回族土族自治县', '', 0, 0, 'M', '102.11044407228', '36.508511080941', 630200, 3, 'tr_0 tr_630000 tr_630200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(630223, '互助土族自治县', '', 0, 0, 'H', '101.96456904899', '36.850021613826', 630200, 3, 'tr_0 tr_630000 tr_630200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(630224, '化隆回族自治县', '', 0, 0, 'H', '102.27044827345', '36.100988250893', 630200, 3, 'tr_0 tr_630000 tr_630200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(630225, '循化撒拉族自治县', '', 0, 0, 'X', '102.4953853206', '35.856667223862', 630200, 3, 'tr_0 tr_630000 tr_630200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632221, '门源回族自治县', '', 0, 0, 'M', '101.62843803903', '37.382180626313', 632200, 3, 'tr_0 tr_630000 tr_632200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632222, '祁连县', '', 0, 0, 'Q', '100.25962157243', '38.182924871569', 632200, 3, 'tr_0 tr_630000 tr_632200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632223, '海晏县', '', 0, 0, 'H', '101.0005855486', '36.902376022515', 632200, 3, 'tr_0 tr_630000 tr_632200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632224, '刚察县', '', 0, 0, 'G', '100.15360607139', '37.327320072254', 632200, 3, 'tr_0 tr_630000 tr_632200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632321, '同仁县', '', 0, 0, 'T', '102.0254377812', '35.521865150524', 632300, 3, 'tr_0 tr_630000 tr_632300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632322, '尖扎县', '', 0, 0, 'J', '102.0375073242', '35.944284459868', 632300, 3, 'tr_0 tr_630000 tr_632300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632323, '泽库县', '', 0, 0, 'Z', '101.47359451319', '35.0420144951', 632300, 3, 'tr_0 tr_630000 tr_632300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632324, '河南蒙古族自治县', '', 0, 0, 'H', '101.62247338027', '34.740396071091', 632300, 3, 'tr_0 tr_630000 tr_632300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632521, '共和县', '', 0, 0, 'G', '100.62662348005', '36.288703317865', 632500, 3, 'tr_0 tr_630000 tr_632500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632522, '同德县', '', 0, 0, 'T', '100.58542386564', '35.259857775817', 632500, 3, 'tr_0 tr_630000 tr_632500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632523, '贵德县', '', 0, 0, 'G', '101.43953310384', '36.046158080751', 632500, 3, 'tr_0 tr_630000 tr_632500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632524, '兴海县', '', 0, 0, 'X', '99.994380072293', '35.594629879949', 632500, 3, 'tr_0 tr_630000 tr_632500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632525, '贵南县', '', 0, 0, 'G', '100.75359321473', '35.592415454611', 632500, 3, 'tr_0 tr_630000 tr_632500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632621, '玛沁县', '', 0, 0, 'M', '100.24556434882', '34.483569486002', 632600, 3, 'tr_0 tr_630000 tr_632600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632622, '班玛县', '', 0, 0, 'B', '100.74360459645', '32.93850392747', 632600, 3, 'tr_0 tr_630000 tr_632600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632623, '甘德县', '', 0, 0, 'G', '99.907510695578', '33.975003677602', 632600, 3, 'tr_0 tr_630000 tr_632600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632624, '达日县', '', 0, 0, 'D', '99.658010113065', '33.754937373991', 632600, 3, 'tr_0 tr_630000 tr_632600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632625, '久治县', '', 0, 0, 'J', '101.48853225585', '33.434773499408', 632600, 3, 'tr_0 tr_630000 tr_632600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632626, '玛多县', '', 0, 0, 'M', '98.215883832099', '34.920748646186', 632600, 3, 'tr_0 tr_630000 tr_632600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632701, '玉树市', '', 0, 0, 'Y', '97.015376401101', '32.999555650886', 632700, 3, 'tr_0 tr_630000 tr_632700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632722, '杂多县', '', 0, 0, 'Z', '95.306964878828', '32.89924067586', 632700, 3, 'tr_0 tr_630000 tr_632700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632723, '称多县', '', 0, 0, 'C', '97.115000009277', '33.374225698944', 632700, 3, 'tr_0 tr_630000 tr_632700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632724, '治多县', '', 0, 0, 'Z', '95.61979357437', '33.857953267719', 632700, 3, 'tr_0 tr_630000 tr_632700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632725, '囊谦县', '', 0, 0, 'N', '96.486918271283', '32.209194368698', 632700, 3, 'tr_0 tr_630000 tr_632700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632726, '曲麻莱县', '', 0, 0, 'Q', '95.803750013992', '34.132298666997', 632700, 3, 'tr_0 tr_630000 tr_632700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632801, '格尔木市', '', 0, 0, 'G', '94.933310210425', '36.412371046954', 632800, 3, 'tr_0 tr_630000 tr_632800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632802, '德令哈市', '', 0, 0, 'D', '97.367470299975', '37.375345907463', 632800, 3, 'tr_0 tr_630000 tr_632800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632803, '茫崖市', '', 0, 0, 'M', '90.87951750334', '38.261902814972', 632800, 3, 'tr_0 tr_630000 tr_632800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632821, '乌兰县', '', 0, 0, 'W', '98.486735699295', '36.935747859032', 632800, 3, 'tr_0 tr_630000 tr_632800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632822, '都兰县', '', 0, 0, 'D', '98.102704793777', '36.307611028682', 632800, 3, 'tr_0 tr_630000 tr_632800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632823, '天峻县', '', 0, 0, 'T', '99.029242967967', '37.306903395111', 632800, 3, 'tr_0 tr_630000 tr_632800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(632857, '大柴旦行政委员会', '', 0, 0, 'D', '95.371722465415', '37.857987655919', 632800, 3, 'tr_0 tr_630000 tr_632800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(640104, '兴庆区', '', 0, 0, 'X', '106.29549376692', '38.479578929456', 640100, 3, 'tr_0 tr_640000 tr_640100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(640105, '西夏区', '', 0, 0, 'X', '106.15658124015', '38.496817469604', 640100, 3, 'tr_0 tr_640000 tr_640100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(640106, '金凤区', '', 0, 0, 'J', '106.24956089094', '38.478695238722', 640100, 3, 'tr_0 tr_640000 tr_640100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(640121, '永宁县', '', 0, 0, 'Y', '106.25960457536', '38.283001541521', 640100, 3, 'tr_0 tr_640000 tr_640100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(640122, '贺兰县', '', 0, 0, 'H', '106.3565182653', '38.560406689579', 640100, 3, 'tr_0 tr_640000 tr_640100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(640181, '灵武市', '', 0, 0, 'L', '106.34644035545', '38.108658666793', 640100, 3, 'tr_0 tr_640000 tr_640100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540502, '乃东区', '', 0, 0, 'N', '91.778681965641', '29.234229154985', 540500, 3, 'tr_0 tr_540000 tr_540500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540521, '扎囊县', '', 0, 0, 'Z', '91.343627127639', '29.251164315795', 540500, 3, 'tr_0 tr_540000 tr_540500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540522, '贡嘎县', '', 0, 0, 'G', '90.990582372498', '29.295585920341', 540500, 3, 'tr_0 tr_540000 tr_540500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540523, '桑日县', '', 0, 0, 'S', '92.022157253696', '29.265175836421', 540500, 3, 'tr_0 tr_540000 tr_540500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540524, '琼结县', '', 0, 0, 'Q', '91.690100777976', '29.030865581933', 540500, 3, 'tr_0 tr_540000 tr_540500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540525, '曲松县', '', 0, 0, 'Q', '92.210174662975', '29.068424815624', 540500, 3, 'tr_0 tr_540000 tr_540500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540526, '措美县', '', 0, 0, 'C', '91.439917573188', '28.444257990161', 540500, 3, 'tr_0 tr_540000 tr_540500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540527, '洛扎县', '', 0, 0, 'L', '90.866452001915', '28.391634617398', 540500, 3, 'tr_0 tr_540000 tr_540500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540528, '加查县', '', 0, 0, 'J', '92.600448881489', '29.146087474784', 540500, 3, 'tr_0 tr_540000 tr_540500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540529, '隆子县', '', 0, 0, 'L', '92.468965520987', '28.414018998419', 540500, 3, 'tr_0 tr_540000 tr_540500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540530, '错那县', '', 0, 0, 'C', '91.96375005827', '27.997004265923', 540500, 3, 'tr_0 tr_540000 tr_540500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(540531, '浪卡子县', '', 0, 0, 'L', '90.404646883462', '28.973992017804', 540500, 3, 'tr_0 tr_540000 tr_540500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(640302, '利通区', '', 0, 0, 'L', '106.21940702074', '37.990746080857', 640300, 3, 'tr_0 tr_640000 tr_640300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(640303, '红寺堡区', '', 0, 0, 'H', '106.06842117808', '37.431882454446', 640300, 3, 'tr_0 tr_640000 tr_640300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(640323, '盐池县', '', 0, 0, 'Y', '107.41337954864', '37.789295649909', 640300, 3, 'tr_0 tr_640000 tr_640300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(640324, '同心县', '', 0, 0, 'T', '105.9205990776', '36.986269629165', 640300, 3, 'tr_0 tr_640000 tr_640300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(640381, '青铜峡市', '', 0, 0, 'Q', '106.08537031661', '38.027412223967', 640300, 3, 'tr_0 tr_640000 tr_640300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(640402, '原州区', '', 0, 0, 'Y', '106.29451461392', '36.009367675763', 640400, 3, 'tr_0 tr_640000 tr_640400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(640422, '西吉县', '', 0, 0, 'X', '105.73538590857', '35.97007642089', 640400, 3, 'tr_0 tr_640000 tr_640400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(640423, '隆德县', '', 0, 0, 'L', '106.1184982967', '35.631762315094', 640400, 3, 'tr_0 tr_640000 tr_640400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(640424, '泾源县', '', 0, 0, 'J', '106.33739343083', '35.504361637679', 640400, 3, 'tr_0 tr_640000 tr_640400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(640425, '彭阳县', '', 0, 0, 'P', '106.64454429656', '35.85540546349', 640400, 3, 'tr_0 tr_640000 tr_640400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(640502, '沙坡头区', '', 0, 0, 'S', '105.20357090089', '37.505701418703', 640500, 3, 'tr_0 tr_640000 tr_640500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(640521, '中宁县', '', 0, 0, 'Z', '105.6915371912', '37.497420805579', 640500, 3, 'tr_0 tr_640000 tr_640500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(640522, '海原县', '', 0, 0, 'H', '105.65055514638', '36.570781489719', 640500, 3, 'tr_0 tr_640000 tr_640500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(650102, '天山区', '', 0, 0, 'T', '87.638407777566', '43.800271358313', 650100, 3, 'tr_0 tr_650000 tr_650100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(650103, '沙依巴克区', '', 0, 0, 'S', '87.604670027697', '43.807262352761', 650100, 3, 'tr_0 tr_650000 tr_650100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(650104, '新市区', '', 0, 0, 'X', '87.575908441201', '43.861394002748', 650100, 3, 'tr_0 tr_650000 tr_650100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(650105, '水磨沟区', '', 0, 0, 'S', '87.648896662192', '43.838251163831', 650100, 3, 'tr_0 tr_650000 tr_650100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(650106, '头屯河区', '', 0, 0, 'T', '87.434506709858', '43.882653022602', 650100, 3, 'tr_0 tr_650000 tr_650100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(650107, '达坂城区', '', 0, 0, 'D', '88.317397656607', '43.36994274634', 650100, 3, 'tr_0 tr_650000 tr_650100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(650109, '米东区', '', 0, 0, 'M', '87.662134271848', '43.979247426398', 650100, 3, 'tr_0 tr_650000 tr_650100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(650121, '乌鲁木齐县', '', 0, 0, 'W', '87.416028745179', '43.477086065793', 650100, 3, 'tr_0 tr_650000 tr_650100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(650171, '乌鲁木齐经济技术开发区', '', 0, 0, 'W', '87.523118529771', '43.868981036009', 650100, 3, 'tr_0 tr_650000 tr_650100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(650172, '乌鲁木齐高新技术产业开发区', '', 0, 0, 'W', '87.58408445863', '43.87767236981', 650100, 3, 'tr_0 tr_650000 tr_650100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(650202, '独山子区', '', 0, 0, 'D', '84.893613283343', '44.334407392365', 650200, 3, 'tr_0 tr_650000 tr_650200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(650203, '克拉玛依区', '', 0, 0, 'K', '84.866221962114', '45.596624206981', 650200, 3, 'tr_0 tr_650000 tr_650200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(650204, '白碱滩区', '', 0, 0, 'B', '85.139510123686', '45.693951629764', 650200, 3, 'tr_0 tr_650000 tr_650200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(650205, '乌尔禾区', '', 0, 0, 'W', '85.700304826442', '46.095295184689', 650200, 3, 'tr_0 tr_650000 tr_650200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(650402, '高昌区', '', 0, 0, 'G', '89.192458882701', '42.948548691684', 650400, 3, 'tr_0 tr_650000 tr_650400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(650421, '鄯善县', '', 0, 0, 'S', '90.220093886103', '42.874759228479', 650400, 3, 'tr_0 tr_650000 tr_650400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(650422, '托克逊县', '', 0, 0, 'T', '88.660164359541', '42.798545831023', 650400, 3, 'tr_0 tr_650000 tr_650400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(650502, '伊州区', '', 0, 0, 'Y', '93.521320462369', '42.832824924721', 650500, 3, 'tr_0 tr_650000 tr_650500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(650521, '巴里坤哈萨克自治县', '', 0, 0, 'B', '93.022930953564', '43.605688770787', 650500, 3, 'tr_0 tr_650000 tr_650500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(650522, '伊吾县', '', 0, 0, 'Y', '94.703825671285', '43.260676527466', 650500, 3, 'tr_0 tr_650000 tr_650500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652301, '昌吉市', '', 0, 0, 'C', '87.27386462195', '44.020126845939', 652300, 3, 'tr_0 tr_650000 tr_652300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652302, '阜康市', '', 0, 0, 'F', '87.993677905062', '44.163137321346', 652300, 3, 'tr_0 tr_650000 tr_652300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652323, '呼图壁县', '', 0, 0, 'H', '86.905143806731', '44.197654596132', 652300, 3, 'tr_0 tr_650000 tr_652300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652324, '玛纳斯县', '', 0, 0, 'M', '86.220643452199', '44.3100628588', 652300, 3, 'tr_0 tr_650000 tr_652300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652325, '奇台县', '', 0, 0, 'Q', '89.601080811724', '44.026897819018', 652300, 3, 'tr_0 tr_650000 tr_652300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652327, '吉木萨尔县', '', 0, 0, 'J', '89.187122858141', '44.005717795203', 652300, 3, 'tr_0 tr_650000 tr_652300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652328, '木垒哈萨克自治县', '', 0, 0, 'M', '90.292514737334', '43.840308302807', 652300, 3, 'tr_0 tr_650000 tr_652300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652701, '博乐市', '', 0, 0, 'B', '82.057972254591', '44.860009784639', 652700, 3, 'tr_0 tr_650000 tr_652700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652702, '阿拉山口市', '', 0, 0, 'A', '82.560725272438', '45.179670079921', 652700, 3, 'tr_0 tr_650000 tr_652700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652722, '精河县', '', 0, 0, 'J', '82.900655316205', '44.606645943492', 652700, 3, 'tr_0 tr_650000 tr_652700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652723, '温泉县', '', 0, 0, 'W', '81.031145546486', '44.974856638705', 652700, 3, 'tr_0 tr_650000 tr_652700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652801, '库尔勒市', '', 0, 0, 'K', '86.181494309938', '41.732373221412', 652800, 3, 'tr_0 tr_650000 tr_652800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652822, '轮台县', '', 0, 0, 'L', '84.258212152054', '41.783813000515', 652800, 3, 'tr_0 tr_650000 tr_652800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652823, '尉犁县', '', 0, 0, 'W', '86.266036536399', '41.350122782054', 652800, 3, 'tr_0 tr_650000 tr_652800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652824, '若羌县', '', 0, 0, 'R', '88.175324441896', '39.028991037175', 652800, 3, 'tr_0 tr_650000 tr_652800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652825, '且末县', '', 0, 0, 'Q', '85.535990385731', '38.15138769413', 652800, 3, 'tr_0 tr_650000 tr_652800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652826, '焉耆回族自治县', '', 0, 0, 'Y', '86.581222026277', '42.064850858728', 652800, 3, 'tr_0 tr_650000 tr_652800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652827, '和静县', '', 0, 0, 'H', '86.390398220692', '42.329365035879', 652800, 3, 'tr_0 tr_650000 tr_652800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652828, '和硕县', '', 0, 0, 'H', '86.883689037252', '42.288065062428', 652800, 3, 'tr_0 tr_650000 tr_652800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652829, '博湖县', '', 0, 0, 'B', '86.638469149986', '41.986430356829', 652800, 3, 'tr_0 tr_650000 tr_652800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652871, '库尔勒经济技术开发区', '', 0, 0, 'K', '86.229512961483', '41.71760888729', 652800, 3, 'tr_0 tr_650000 tr_652800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652901, '阿克苏市', '', 0, 0, 'A', '80.269926757334', '41.173859926953', 652900, 3, 'tr_0 tr_650000 tr_652900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652922, '温宿县', '', 0, 0, 'W', '80.245564352581', '41.282567249887', 652900, 3, 'tr_0 tr_650000 tr_652900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652923, '库车县', '', 0, 0, 'K', '82.968458787284', '41.723447514833', 652900, 3, 'tr_0 tr_650000 tr_652900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652924, '沙雅县', '', 0, 0, 'S', '82.788823736148', '41.227749329027', 652900, 3, 'tr_0 tr_650000 tr_652900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652925, '新和县', '', 0, 0, 'X', '82.615823030526', '41.553999628477', 652900, 3, 'tr_0 tr_650000 tr_652900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652926, '拜城县', '', 0, 0, 'B', '81.858516272038', '41.800706601984', 652900, 3, 'tr_0 tr_650000 tr_652900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652927, '乌什县', '', 0, 0, 'W', '79.230868990897', '41.220871106999', 652900, 3, 'tr_0 tr_650000 tr_652900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652928, '阿瓦提县', '', 0, 0, 'A', '80.381849245908', '40.649358802911', 652900, 3, 'tr_0 tr_650000 tr_652900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(652929, '柯坪县', '', 0, 0, 'K', '79.053213535614', '40.514055520966', 652900, 3, 'tr_0 tr_650000 tr_652900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(653001, '阿图什市', '', 0, 0, 'A', '76.174906408698', '39.722079128589', 653000, 3, 'tr_0 tr_650000 tr_653000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(653022, '阿克陶县', '', 0, 0, 'A', '75.953725266709', '39.153888517642', 653000, 3, 'tr_0 tr_650000 tr_653000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(653023, '阿合奇县', '', 0, 0, 'A', '78.45253927839', '40.942958224222', 653000, 3, 'tr_0 tr_650000 tr_653000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(653024, '乌恰县', '', 0, 0, 'W', '75.26533363237', '39.725123590953', 653000, 3, 'tr_0 tr_650000 tr_653000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(653101, '喀什市', '', 0, 0, 'K', '76.000312737915', '39.473649532912', 653100, 3, 'tr_0 tr_650000 tr_653100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(653121, '疏附县', '', 0, 0, 'S', '75.869168667361', '39.381291555212', 653100, 3, 'tr_0 tr_650000 tr_653100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(653122, '疏勒县', '', 0, 0, 'S', '76.056614395075', '39.406709108732', 653100, 3, 'tr_0 tr_650000 tr_653100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(653123, '英吉沙县', '', 0, 0, 'Y', '76.182075425651', '38.935670863521', 653100, 3, 'tr_0 tr_650000 tr_653100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(653124, '泽普县', '', 0, 0, 'Z', '77.266559423761', '38.190725516333', 653100, 3, 'tr_0 tr_650000 tr_653100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(653125, '莎车县', '', 0, 0, 'S', '77.252436713686', '38.420156752419', 653100, 3, 'tr_0 tr_650000 tr_653100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'); +INSERT INTO `hg_sys_provinces` (`id`, `title`, `short_title`, `areacode`, `zipcode`, `pinyin`, `lng`, `lat`, `pid`, `level`, `tree`, `sort`, `status`, `created_at`, `updated_at`) VALUES +(653126, '叶城县', '', 0, 0, 'Y', '77.420097621865', '37.889166844427', 653100, 3, 'tr_0 tr_650000 tr_653100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(653127, '麦盖提县', '', 0, 0, 'M', '77.658824287414', '38.911194315553', 653100, 3, 'tr_0 tr_650000 tr_653100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(653128, '岳普湖县', '', 0, 0, 'Y', '76.78414771574', '39.239387333945', 653100, 3, 'tr_0 tr_650000 tr_653100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(653129, '伽师县', '', 0, 0, 'J', '76.730385568257', '39.493851605868', 653100, 3, 'tr_0 tr_650000 tr_653100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(653130, '巴楚县', '', 0, 0, 'B', '78.5557014018', '39.79078837708', 653100, 3, 'tr_0 tr_650000 tr_653100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(653131, '塔什库尔干塔吉克自治县', '', 0, 0, 'T', '75.230804744838', '37.779045640763', 653100, 3, 'tr_0 tr_650000 tr_653100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(653201, '和田市', '', 0, 0, 'H', '79.920212469755', '37.118335544466', 653200, 3, 'tr_0 tr_650000 tr_653200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(653221, '和田县', '', 0, 0, 'H', '79.866215595042', '37.090362410221', 653200, 3, 'tr_0 tr_650000 tr_653200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(653222, '墨玉县', '', 0, 0, 'M', '79.735479265358', '37.282993446907', 653200, 3, 'tr_0 tr_650000 tr_653200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(653223, '皮山县', '', 0, 0, 'P', '78.289871062405', '37.627248714375', 653200, 3, 'tr_0 tr_650000 tr_653200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(653224, '洛浦县', '', 0, 0, 'L', '80.195387611879', '37.079611030988', 653200, 3, 'tr_0 tr_650000 tr_653200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(653225, '策勒县', '', 0, 0, 'C', '80.813201268742', '37.004122359371', 653200, 3, 'tr_0 tr_650000 tr_653200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(653226, '于田县', '', 0, 0, 'Y', '81.683782914748', '36.86295413611', 653200, 3, 'tr_0 tr_650000 tr_653200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(653227, '民丰县', '', 0, 0, 'M', '82.702713427589', '37.070256968231', 653200, 3, 'tr_0 tr_650000 tr_653200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(654002, '伊宁市', '', 0, 0, 'Y', '81.284242405278', '43.915299436243', 654000, 3, 'tr_0 tr_650000 tr_654000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(654003, '奎屯市', '', 0, 0, 'K', '84.909449241687', '44.432057210004', 654000, 3, 'tr_0 tr_650000 tr_654000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(654004, '霍尔果斯市', '', 0, 0, 'H', '80.427129772427', '44.235308556093', 654000, 3, 'tr_0 tr_650000 tr_654000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(654021, '伊宁县', '', 0, 0, 'Y', '81.533906479394', '43.982909125124', 654000, 3, 'tr_0 tr_650000 tr_654000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(654022, '察布查尔锡伯自治县', '', 0, 0, 'C', '81.157924570907', '43.846690330452', 654000, 3, 'tr_0 tr_650000 tr_654000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(654023, '霍城县', '', 0, 0, 'H', '80.885281123201', '44.062249507399', 654000, 3, 'tr_0 tr_650000 tr_654000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(654024, '巩留县', '', 0, 0, 'G', '82.238225609409', '43.488485559536', 654000, 3, 'tr_0 tr_650000 tr_654000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(654025, '新源县', '', 0, 0, 'X', '83.267022301497', '43.435927002185', 654000, 3, 'tr_0 tr_650000 tr_654000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(654026, '昭苏县', '', 0, 0, 'Z', '81.137377539147', '43.163496741509', 654000, 3, 'tr_0 tr_650000 tr_654000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(654027, '特克斯县', '', 0, 0, 'T', '81.842587249244', '43.224248213467', 654000, 3, 'tr_0 tr_650000 tr_654000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(654028, '尼勒克县', '', 0, 0, 'N', '82.51800753168', '43.804594836238', 654000, 3, 'tr_0 tr_650000 tr_654000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(654201, '塔城市', '', 0, 0, 'T', '82.987235518406', '46.750948254373', 654200, 3, 'tr_0 tr_650000 tr_654200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(654202, '乌苏市', '', 0, 0, 'W', '84.720088146964', '44.424048034452', 654200, 3, 'tr_0 tr_650000 tr_654200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(654221, '额敏县', '', 0, 0, 'E', '83.633374454783', '46.531884861309', 654200, 3, 'tr_0 tr_650000 tr_654200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(654223, '沙湾县', '', 0, 0, 'S', '85.626144686035', '44.331949461741', 654200, 3, 'tr_0 tr_650000 tr_654200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(654224, '托里县', '', 0, 0, 'T', '83.612909438315', '45.94274280505', 654200, 3, 'tr_0 tr_650000 tr_654200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(654225, '裕民县', '', 0, 0, 'Y', '82.9894387025', '46.207453546928', 654200, 3, 'tr_0 tr_650000 tr_654200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(654226, '和布克赛尔蒙古自治县', '', 0, 0, 'H', '85.735008883548', '46.798685112637', 654200, 3, 'tr_0 tr_650000 tr_654200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(654301, '阿勒泰市', '', 0, 0, 'A', '88.139226564024', '47.832752648475', 654300, 3, 'tr_0 tr_650000 tr_654300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(654321, '布尔津县', '', 0, 0, 'B', '86.881360170273', '47.707951723888', 654300, 3, 'tr_0 tr_650000 tr_654300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(654322, '富蕴县', '', 0, 0, 'F', '89.531953408055', '46.999951053055', 654300, 3, 'tr_0 tr_650000 tr_654300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(654323, '福海县', '', 0, 0, 'F', '87.493157246325', '47.118140737535', 654300, 3, 'tr_0 tr_650000 tr_654300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(654324, '哈巴河县', '', 0, 0, 'H', '86.424817684664', '48.066148902458', 654300, 3, 'tr_0 tr_650000 tr_654300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(654325, '青河县', '', 0, 0, 'Q', '90.389444407193', '46.68019396705', 654300, 3, 'tr_0 tr_650000 tr_654300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(654326, '吉木乃县', '', 0, 0, 'J', '85.880818240706', '47.449018413257', 654300, 3, 'tr_0 tr_650000 tr_654300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(659001, '石河子市', '', 0, 0, 'S', '114.5163190347', '36.772534944449', 659000, 3, 'tr_0 tr_650000 tr_659000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(659002, '阿拉尔市', '', 0, 0, 'A', '81.287354225395', '40.553263894706', 659000, 3, 'tr_0 tr_650000 tr_659000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(659003, '图木舒克市', '', 0, 0, 'T', '79.075616286896', '39.871209077425', 659000, 3, 'tr_0 tr_650000 tr_659000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(659004, '五家渠市', '', 0, 0, 'W', '87.549936632296', '44.172444518901', 659000, 3, 'tr_0 tr_650000 tr_659000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(659006, '铁门关市', '', 0, 0, 'T', '85.686857831724', '41.863648697693', 659000, 3, 'tr_0 tr_650000 tr_659000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130102, '长安区', '', 0, 0, 'Z', '114.54561160958', '38.043256136498', 130100, 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130104, '桥西区', '', 0, 0, 'Q', '114.46741977426', '38.010381080199', 130100, 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130105, '新华区', '', 0, 0, 'X', '114.46943844641', '38.057119539196', 130100, 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130107, '井陉矿区', '', 0, 0, 'J', '114.06863186515', '38.070565834517', 130100, 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130108, '裕华区', '', 0, 0, 'Y', '114.53758291426', '38.012087686284', 130100, 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130109, '藁城区', '', 0, 0, 'G', '114.85337790442', '38.027816555321', 130100, 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130110, '鹿泉区', '', 0, 0, 'L', '114.32059757764', '38.09174945759', 130100, 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130111, '栾城区', '', 0, 0, 'L', '114.65457561879', '37.905816364165', 130100, 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130121, '井陉县', '', 0, 0, 'J', '114.15146299928', '38.038386214927', 130100, 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130123, '正定县', '', 0, 0, 'Z', '114.57748106365', '38.151713727954', 130100, 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130125, '行唐县', '', 0, 0, 'X', '114.55960676028', '38.444238747676', 130100, 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130126, '灵寿县', '', 0, 0, 'L', '114.38947775771', '38.314629370046', 130100, 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130127, '高邑县', '', 0, 0, 'G', '114.61841307286', '37.621879561553', 130100, 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130128, '深泽县', '', 0, 0, 'S', '115.20740369913', '38.190451203069', 130100, 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130129, '赞皇县', '', 0, 0, 'Z', '114.39246354556', '37.671667061291', 130100, 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130130, '无极县', '', 0, 0, 'W', '114.98243934348', '38.18543617028', 130100, 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130131, '平山县', '', 0, 0, 'P', '113.98543503085', '38.271951013311', 130100, 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130132, '元氏县', '', 0, 0, 'Y', '114.53256551866', '37.772338553855', 130100, 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130133, '赵县', '', 0, 0, 'Z', '114.78259655058', '37.761858522888', 130100, 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130171, '石家庄高新技术产业开发区', '', 0, 0, 'S', '114.47561896798', '38.014375062684', 130100, 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130172, '石家庄循环化工园区', '', 0, 0, 'S', '114.69991493042', '38.002797025837', 130100, 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130181, '辛集市', '', 0, 0, 'X', '115.22445084279', '37.949309043173', 130100, 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130183, '晋州市', '', 0, 0, 'J', '115.0505290147', '38.039491309736', 130100, 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130184, '新乐市', '', 0, 0, 'X', '114.69053218327', '38.349292647959', 130100, 3, 'tr_0 tr_130000 tr_130100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130202, '路南区', '', 0, 0, 'L', '118.20604028639', '39.612986996735', 130200, 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130203, '路北区', '', 0, 0, 'L', '118.2239040796', '39.673985965975', 130200, 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130204, '古冶区', '', 0, 0, 'G', '118.45340092552', '39.739735914766', 130200, 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130205, '开平区', '', 0, 0, 'K', '118.26860762449', '39.677143635862', 130200, 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130207, '丰南区', '', 0, 0, 'F', '118.0903655757', '39.581540485109', 130200, 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130208, '丰润区', '', 0, 0, 'F', '118.16854133135', '39.838353430851', 130200, 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130209, '曹妃甸区', '', 0, 0, 'C', '118.46645986221', '39.279283996335', 130200, 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130224, '滦南县', '', 0, 0, 'L', '118.68040524315', '39.510044702469', 130200, 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130225, '乐亭县', '', 0, 0, 'L', '118.91938406305', '39.431931320096', 130200, 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130227, '迁西县', '', 0, 0, 'Q', '118.32038397781', '40.147837151362', 130200, 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130229, '玉田县', '', 0, 0, 'Y', '117.74543440564', '39.906592348189', 130200, 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130271, '唐山市芦台经济技术开发区', '', 0, 0, 'T', '117.83195389236', '39.334328330689', 130200, 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130272, '唐山市汉沽管理区', '', 0, 0, 'T', '117.88832858176', '39.367125548614', 130200, 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130273, '唐山高新技术产业开发区', '', 0, 0, 'T', '118.18645947204', '39.636583724147', 130200, 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130274, '河北唐山海港经济开发区', '', 0, 0, 'H', '119.00992050252', '39.237818631017', 130200, 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130281, '遵化市', '', 0, 0, 'Z', '117.97237521307', '40.195533204033', 130200, 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130283, '迁安市', '', 0, 0, 'Q', '118.70645736056', '40.004183924931', 130200, 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130284, '滦州市', '', 0, 0, 'L', '118.71048006247', '39.747115765489', 130200, 3, 'tr_0 tr_130000 tr_130200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130302, '海港区', '', 0, 0, 'H', '119.61747524097', '39.940412688357', 130300, 3, 'tr_0 tr_130000 tr_130300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130303, '山海关区', '', 0, 0, 'S', '119.78243521397', '39.984445641831', 130300, 3, 'tr_0 tr_130000 tr_130300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130304, '北戴河区', '', 0, 0, 'B', '119.49152607118', '39.841005667936', 130300, 3, 'tr_0 tr_130000 tr_130300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130306, '抚宁区', '', 0, 0, 'F', '119.25154914402', '39.88141356935', 130300, 3, 'tr_0 tr_130000 tr_130300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130321, '青龙满族自治县', '', 0, 0, 'Q', '118.95648129587', '40.412793702313', 130300, 3, 'tr_0 tr_130000 tr_130300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130322, '昌黎县', '', 0, 0, 'C', '119.16937521021', '39.71905083388', 130300, 3, 'tr_0 tr_130000 tr_130300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130324, '卢龙县', '', 0, 0, 'L', '118.89948911126', '39.897958466103', 130300, 3, 'tr_0 tr_130000 tr_130300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130371, '秦皇岛市经济技术开发区', '', 0, 0, 'Q', '119.48439783729', '39.943641230776', 130300, 3, 'tr_0 tr_130000 tr_130300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130372, '北戴河新区', '', 0, 0, 'B', '119.47981001139', '39.831809170026', 130300, 3, 'tr_0 tr_130000 tr_130300 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130402, '邯山区', '', 0, 0, 'H', '114.49638868967', '36.586692191979', 130400, 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130403, '丛台区', '', 0, 0, 'C', '114.49943259789', '36.642672565982', 130400, 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130404, '复兴区', '', 0, 0, 'F', '114.44809470749', '36.610368592227', 130400, 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130406, '峰峰矿区', '', 0, 0, 'F', '114.21948332131', '36.425653614399', 130400, 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130407, '肥乡区', '', 0, 0, 'F', '114.80654708226', '36.55382525367', 130400, 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130408, '永年区', '', 0, 0, 'Y', '114.55062514246', '36.747569389575', 130400, 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130423, '临漳县', '', 0, 0, 'L', '114.62642694614', '36.340765980595', 130400, 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130424, '成安县', '', 0, 0, 'C', '114.67657655802', '36.449796208953', 130400, 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130425, '大名县', '', 0, 0, 'D', '115.15461253007', '36.291288466231', 130400, 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130426, '涉县', '', 0, 0, 'S', '113.69758434883', '36.590691663211', 130400, 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130427, '磁县', '', 0, 0, 'C', '114.38043173139', '36.380358940947', 130400, 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130430, '邱县', '', 0, 0, 'Q', '115.19339516368', '36.817362417143', 130400, 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130431, '鸡泽县', '', 0, 0, 'J', '114.89658577064', '36.916398206414', 130400, 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130432, '广平县', '', 0, 0, 'G', '114.95441490649', '36.489779995612', 130400, 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130433, '馆陶县', '', 0, 0, 'G', '115.28853676635', '36.553956728653', 130400, 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130434, '魏县', '', 0, 0, 'W', '114.94545044631', '36.366156454371', 130400, 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130435, '曲周县', '', 0, 0, 'Q', '114.96340442939', '36.771544831336', 130400, 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130471, '邯郸经济技术开发区', '', 0, 0, 'H', '114.54562822824', '36.631262731204', 130400, 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130473, '邯郸冀南新区', '', 0, 0, 'H', '114.54562822824', '36.631262731204', 130400, 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130481, '武安市', '', 0, 0, 'W', '114.21051607638', '36.70248828628', 130400, 3, 'tr_0 tr_130000 tr_130400 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130502, '桥东区', '', 0, 0, 'Q', '114.51347113674', '37.073749959651', 130500, 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130503, '桥西区', '', 0, 0, 'Q', '114.4743934996', '37.066172415704', 130500, 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130521, '邢台县', '', 0, 0, 'X', '114.14341085818', '37.17710928752', 130500, 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130522, '临城县', '', 0, 0, 'L', '114.50544333972', '37.450788548442', 130500, 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130523, '内丘县', '', 0, 0, 'N', '114.51849293403', '37.292857912047', 130500, 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130524, '柏乡县', '', 0, 0, 'B', '114.69949736209', '37.488758727152', 130500, 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130525, '隆尧县', '', 0, 0, 'L', '114.77661608165', '37.355908006295', 130500, 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130526, '任县', '', 0, 0, 'R', '114.67860600983', '37.126726783523', 130500, 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130527, '南和县', '', 0, 0, 'N', '114.69054772395', '37.01099797056', 130500, 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130528, '宁晋县', '', 0, 0, 'N', '114.92556169283', '37.625612279932', 130500, 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130529, '巨鹿县', '', 0, 0, 'J', '115.04358735887', '37.227088328938', 130500, 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130530, '新河县', '', 0, 0, 'X', '115.24854716945', '37.534590601536', 130500, 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130531, '广宗县', '', 0, 0, 'G', '115.14960474634', '37.080457122162', 130500, 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130532, '平乡县', '', 0, 0, 'P', '115.03658174369', '37.069096393044', 130500, 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130533, '威县', '', 0, 0, 'W', '115.27361761861', '36.981581608663', 130500, 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130534, '清河县', '', 0, 0, 'Q', '115.67439356765', '37.046375401617', 130500, 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130535, '临西县', '', 0, 0, 'L', '115.50762943786', '36.87675996654', 130500, 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130571, '河北邢台经济开发区', '', 0, 0, 'H', '114.51146225613', '37.076685950966', 130500, 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130581, '南宫市', '', 0, 0, 'N', '115.4145290548', '37.364069402723', 130500, 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130582, '沙河市', '', 0, 0, 'S', '114.50947385688', '36.861127341145', 130500, 3, 'tr_0 tr_130000 tr_130500 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130602, '竞秀区', '', 0, 0, 'J', '115.46543414161', '38.883787961691', 130600, 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130606, '莲池区', '', 0, 0, 'L', '115.53548768833', '38.860675807041', 130600, 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130607, '满城区', '', 0, 0, 'M', '115.3283750886', '38.955441208686', 130600, 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130608, '清苑区', '', 0, 0, 'Q', '115.49660588179', '38.771001774749', 130600, 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130609, '徐水区', '', 0, 0, 'X', '115.66247952133', '39.024712583834', 130600, 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130623, '涞水县', '', 0, 0, 'L', '115.72054302508', '39.400334198489', 130600, 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130624, '阜平县', '', 0, 0, 'F', '114.20156347384', '38.855351444796', 130600, 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130626, '定兴县', '', 0, 0, 'D', '115.81441011189', '39.269423528527', 130600, 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130627, '唐县', '', 0, 0, 'T', '114.9894471146', '38.754019925125', 130600, 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130628, '高阳县', '', 0, 0, 'G', '115.78544721513', '38.706257734087', 130600, 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130629, '容城县', '', 0, 0, 'R', '115.86863129349', '39.048559435416', 130600, 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130630, '涞源县', '', 0, 0, 'L', '114.70047561679', '39.366271691524', 130600, 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130631, '望都县', '', 0, 0, 'W', '115.16158760286', '38.700157645549', 130600, 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130632, '安新县', '', 0, 0, 'A', '115.94242628266', '38.941734298593', 130600, 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130633, '易县', '', 0, 0, 'Y', '115.50360664612', '39.355054469981', 130600, 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130634, '曲阳县', '', 0, 0, 'Q', '114.7514548138', '38.628384104122', 130600, 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130635, '蠡县', '', 0, 0, 'L', '115.59044548045', '38.494200963238', 130600, 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130636, '顺平县', '', 0, 0, 'S', '115.14159743069', '38.843261370364', 130600, 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130637, '博野县', '', 0, 0, 'B', '115.47046698806', '38.463408004952', 130600, 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130638, '雄县', '', 0, 0, 'X', '116.11460144552', '39.000180119499', 130600, 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130671, '保定高新技术产业开发区', '', 0, 0, 'B', '115.47146383769', '38.879987768455', 130600, 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130672, '保定白沟新城', '', 0, 0, 'B', '116.06423983354', '39.145149134834', 130600, 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130681, '涿州市', '', 0, 0, 'Z', '115.98161971138', '39.491065832', 130600, 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130682, '定州市', '', 0, 0, 'D', '114.99649620776', '38.522198840134', 130600, 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130683, '安国市', '', 0, 0, 'A', '115.33340802488', '38.424828318687', 130600, 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130684, '高碑店市', '', 0, 0, 'G', '115.88056905507', '39.332335447462', 130600, 3, 'tr_0 tr_130000 tr_130600 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130702, '桥东区', '', 0, 0, 'Q', '114.90060577763', '40.794268437423', 130700, 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130703, '桥西区', '', 0, 0, 'Q', '114.87651609843', '40.825605695041', 130700, 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130705, '宣化区', '', 0, 0, 'X', '115.1054444068', '40.614591888266', 130700, 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130706, '下花园区', '', 0, 0, 'X', '115.29351688226', '40.508145182672', 130700, 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130708, '万全区', '', 0, 0, 'W', '114.74742582376', '40.773149648997', 130700, 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130709, '崇礼区', '', 0, 0, 'C', '115.28954933632', '40.98047788587', 130700, 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130722, '张北县', '', 0, 0, 'Z', '114.7263751121', '41.164943620015', 130700, 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130723, '康保县', '', 0, 0, 'K', '114.60635583664', '41.858636884497', 130700, 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130724, '沽源县', '', 0, 0, 'G', '115.69540744878', '41.676015876097', 130700, 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130725, '尚义县', '', 0, 0, 'S', '113.97552438548', '41.081888482486', 130700, 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130726, '蔚县', '', 0, 0, 'W', '114.5954005518', '39.847088636366', 130700, 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130727, '阳原县', '', 0, 0, 'Y', '114.15752413604', '40.109588388731', 130700, 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130728, '怀安县', '', 0, 0, 'H', '114.39246911506', '40.680369343116', 130700, 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130730, '怀来县', '', 0, 0, 'H', '115.52455288485', '40.420289890382', 130700, 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130731, '涿鹿县', '', 0, 0, 'Z', '115.21138346203', '40.385834075003', 130700, 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130732, '赤城县', '', 0, 0, 'C', '115.83850589957', '40.918761216841', 130700, 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130771, '张家口市高新技术产业开发区', '', 0, 0, 'Z', '114.89257223145', '40.773237202691', 130700, 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130772, '张家口市察北管理区', '', 0, 0, 'Z', '115.13535097349', '41.463489368202', 130700, 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130773, '张家口市塞北管理区', '', 0, 0, 'Z', '115.80931788745', '41.877919284073', 130700, 3, 'tr_0 tr_130000 tr_130700 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130802, '双桥区', '', 0, 0, 'S', '117.94942790899', '40.980824477401', 130800, 3, 'tr_0 tr_130000 tr_130800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130803, '双滦区', '', 0, 0, 'S', '117.80657828883', '40.964729148178', 130800, 3, 'tr_0 tr_130000 tr_130800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130804, '鹰手营子矿区', '', 0, 0, 'Y', '117.66560909159', '40.552043233623', 130800, 3, 'tr_0 tr_130000 tr_130800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130821, '承德县', '', 0, 0, 'C', '118.18045573699', '40.774367194936', 130800, 3, 'tr_0 tr_130000 tr_130800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130822, '兴隆县', '', 0, 0, 'X', '117.50742737264', '40.423454029635', 130800, 3, 'tr_0 tr_130000 tr_130800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130824, '滦平县', '', 0, 0, 'L', '117.33949787111', '40.94756096291', 130800, 3, 'tr_0 tr_130000 tr_130800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130825, '隆化县', '', 0, 0, 'L', '117.7454510243', '41.319898805021', 130800, 3, 'tr_0 tr_130000 tr_130800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130826, '丰宁满族自治县', '', 0, 0, 'F', '116.65239270009', '41.215336380004', 130800, 3, 'tr_0 tr_130000 tr_130800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130827, '宽城满族自治县', '', 0, 0, 'K', '118.49159436055', '40.617151507814', 130800, 3, 'tr_0 tr_130000 tr_130800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130828, '围场满族蒙古族自治县', '', 0, 0, 'W', '117.76656434785', '41.944323773611', 130800, 3, 'tr_0 tr_130000 tr_130800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130871, '承德高新技术产业开发区', '', 0, 0, 'C', '117.96939750997', '40.957856012338', 130800, 3, 'tr_0 tr_130000 tr_130800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130881, '平泉市', '', 0, 0, 'P', '118.70742672204', '41.023755625929', 130800, 3, 'tr_0 tr_130000 tr_130800 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130902, '新华区', '', 0, 0, 'X', '116.87243317375', '38.320366719478', 130900, 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130903, '运河区', '', 0, 0, 'Y', '116.8386119713', '38.316522737476', 130900, 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130921, '沧县', '', 0, 0, 'C', '116.88439779466', '38.299452743407', 130900, 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130922, '青县', '', 0, 0, 'Q', '116.81057477836', '38.58846475864', 130900, 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130923, '东光县', '', 0, 0, 'D', '116.54340955698', '37.894513906653', 130900, 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130924, '海兴县', '', 0, 0, 'H', '117.50441804918', '38.149402516518', 130900, 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130925, '盐山县', '', 0, 0, 'Y', '117.23741362448', '38.064318399559', 130900, 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130926, '肃宁县', '', 0, 0, 'S', '115.83651767998', '38.428905919718', 130900, 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130927, '南皮县', '', 0, 0, 'N', '116.71560115883', '38.045187886965', 130900, 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130928, '吴桥县', '', 0, 0, 'W', '116.39739206243', '37.633908755554', 130900, 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130929, '献县', '', 0, 0, 'X', '116.12956002887', '38.195981438007', 130900, 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130930, '孟村回族自治县', '', 0, 0, 'M', '117.11043607455', '38.059839127888', 130900, 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130971, '河北沧州经济开发区', '', 0, 0, 'H', '116.84558075595', '38.310215141107', 130900, 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130972, '沧州高新技术产业开发区', '', 0, 0, 'C', '116.81727200975', '38.34342368505', 130900, 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130973, '沧州渤海新区', '', 0, 0, 'C', '117.7623777537', '38.282913560669', 130900, 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130981, '泊头市', '', 0, 0, 'P', '116.58462803581', '38.089256915446', 130900, 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130982, '任丘市', '', 0, 0, 'R', '116.1056050955', '38.717348630775', 130900, 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130983, '黄骅市', '', 0, 0, 'H', '117.33648109172', '38.377493900735', 130900, 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(130984, '河间市', '', 0, 0, 'H', '116.10562809212', '38.451356515106', 130900, 3, 'tr_0 tr_130000 tr_130900 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(131002, '安次区', '', 0, 0, 'A', '116.70963326617', '39.526159764041', 131000, 3, 'tr_0 tr_130000 tr_131000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(131003, '广阳区', '', 0, 0, 'G', '116.71761426148', '39.528611447334', 131000, 3, 'tr_0 tr_130000 tr_131000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(131022, '固安县', '', 0, 0, 'G', '116.30542004093', '39.444484855304', 131000, 3, 'tr_0 tr_130000 tr_131000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(131023, '永清县', '', 0, 0, 'Y', '116.50542928985', '39.327852998574', 131000, 3, 'tr_0 tr_130000 tr_131000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(131024, '香河县', '', 0, 0, 'X', '117.0124021078', '39.767939188546', 131000, 3, 'tr_0 tr_130000 tr_131000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(131025, '大城县', '', 0, 0, 'D', '116.66040917846', '38.710858640026', 131000, 3, 'tr_0 tr_130000 tr_131000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(131026, '文安县', '', 0, 0, 'W', '116.464609479', '38.87895049307', 131000, 3, 'tr_0 tr_130000 tr_131000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(131028, '大厂回族自治县', '', 0, 0, 'D', '116.99640912565', '39.892208394086', 131000, 3, 'tr_0 tr_130000 tr_131000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(131071, '廊坊经济技术开发区', '', 0, 0, 'L', '116.76777922809', '39.587610159458', 131000, 3, 'tr_0 tr_130000 tr_131000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(131081, '霸州市', '', 0, 0, 'B', '116.3983972663', '39.130920596981', 131000, 3, 'tr_0 tr_130000 tr_131000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(131082, '三河市', '', 0, 0, 'S', '117.08458787248', '39.988099552443', 131000, 3, 'tr_0 tr_130000 tr_131000 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(131102, '桃城区', '', 0, 0, 'T', '115.68139532011', '37.741636751694', 131100, 3, 'tr_0 tr_130000 tr_131100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(131103, '冀州区', '', 0, 0, 'J', '115.58542988146', '37.557086025833', 131100, 3, 'tr_0 tr_130000 tr_131100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(131121, '枣强县', '', 0, 0, 'Z', '115.7305629044', '37.519363689764', 131100, 3, 'tr_0 tr_130000 tr_131100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(131122, '武邑县', '', 0, 0, 'W', '115.89451363117', '37.807764276867', 131100, 3, 'tr_0 tr_130000 tr_131100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(131123, '武强县', '', 0, 0, 'W', '115.98961391178', '38.046856805237', 131100, 3, 'tr_0 tr_130000 tr_131100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(131124, '饶阳县', '', 0, 0, 'R', '115.73257160535', '38.241037525428', 131100, 3, 'tr_0 tr_130000 tr_131100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(131125, '安平县', '', 0, 0, 'A', '115.52554928532', '38.240506922191', 131100, 3, 'tr_0 tr_130000 tr_131100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(131126, '故城县', '', 0, 0, 'G', '115.97260216135', '37.353347552477', 131100, 3, 'tr_0 tr_130000 tr_131100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(131127, '景县', '', 0, 0, 'J', '116.2774107853', '37.698814551395', 131100, 3, 'tr_0 tr_130000 tr_131100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(131128, '阜城县', '', 0, 0, 'F', '116.18242153525', '37.868732457906', 131100, 3, 'tr_0 tr_130000 tr_131100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(131171, '河北衡水高新技术产业开发区', '', 0, 0, 'H', '115.73456139967', '37.807821775773', 131100, 3, 'tr_0 tr_130000 tr_131100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(131172, '衡水滨湖新区', '', 0, 0, 'H', '115.70627999969', '37.701616037093', 131100, 3, 'tr_0 tr_130000 tr_131100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(131182, '深州市', '', 0, 0, 'S', '115.56636927583', '38.006941234922', 131100, 3, 'tr_0 tr_130000 tr_131100 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(640202, '大武口区', '', 0, 0, '', '', '', 640200, 3, 'tr_0 tr_640000 tr_640200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(640205, '惠农区', '', 0, 0, '', '', '', 640200, 3, 'tr_0 tr_640000 tr_640200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'), +(640221, '平罗县', '', 0, 0, '', '', '', 640200, 3, 'tr_0 tr_640000 tr_640200 ', 0, 1, '2022-10-07 20:42:26', '2022-11-01 00:00:00'); + +-- -------------------------------------------------------- + +-- +-- 表的结构 `hg_test` +-- + +CREATE TABLE `hg_test` ( + `id` bigint(20) NOT NULL COMMENT 'ID', + `category_id` bigint(20) NOT NULL COMMENT '分类ID', + `flag` json DEFAULT NULL COMMENT '标签', + `title` varchar(255) NOT NULL COMMENT '标题', + `description` varchar(255) NOT NULL COMMENT '描述', + `content` text NOT NULL COMMENT '内容', + `image` varchar(255) DEFAULT NULL COMMENT '单图', + `images` json DEFAULT NULL COMMENT '多图', + `attachfile` varchar(255) DEFAULT NULL COMMENT '附件', + `attachfiles` json DEFAULT NULL COMMENT '多附件', + `map` json DEFAULT NULL COMMENT '动态键值对', + `star` decimal(5,1) DEFAULT '0.0' COMMENT '推荐星', + `price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '价格', + `views` bigint(20) DEFAULT NULL COMMENT '浏览次数', + `activity_at` date DEFAULT NULL COMMENT '活动时间', + `start_at` datetime DEFAULT NULL COMMENT '开启时间', + `end_at` datetime DEFAULT NULL COMMENT '结束时间', + `switch` tinyint(1) DEFAULT NULL COMMENT '开关', + `sort` int(11) NOT NULL COMMENT '排序', + `avatar` varchar(255) DEFAULT '' COMMENT '头像', + `sex` tinyint(1) DEFAULT NULL COMMENT '性别', + `qq` varchar(20) DEFAULT '' COMMENT 'qq', + `email` varchar(60) DEFAULT '' COMMENT '邮箱', + `mobile` varchar(20) DEFAULT '' COMMENT '手机号码', + `hobby` json DEFAULT NULL COMMENT '爱好', + `channel` int(11) NOT NULL DEFAULT '1' COMMENT '渠道', + `pid` bigint(20) NOT NULL COMMENT '上级ID', + `level` int(11) DEFAULT '1' COMMENT '树等级', + `tree` varchar(512) NOT NULL COMMENT '关系树', + `remark` varchar(255) DEFAULT NULL COMMENT '备注', + `status` tinyint(1) DEFAULT '1' COMMENT '状态', + `created_by` bigint(20) DEFAULT '0' COMMENT '创建者', + `updated_by` bigint(20) DEFAULT '0' COMMENT '更新者', + `created_at` datetime DEFAULT NULL COMMENT '创建时间', + `updated_at` datetime DEFAULT NULL COMMENT '修改时间', + `deleted_at` datetime DEFAULT NULL COMMENT '删除时间' +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='测试表'; + +-- +-- 转存表中的数据 `hg_test` +-- + +INSERT INTO `hg_test` (`id`, `category_id`, `flag`, `title`, `description`, `content`, `image`, `images`, `attachfile`, `attachfiles`, `map`, `star`, `price`, `views`, `activity_at`, `start_at`, `end_at`, `switch`, `sort`, `avatar`, `sex`, `qq`, `email`, `mobile`, `hobby`, `channel`, `pid`, `level`, `tree`, `remark`, `status`, `created_by`, `updated_by`, `created_at`, `updated_at`, `deleted_at`) VALUES +(1, 1, '[1, 2]', '测试标题', '描述', '

这是内容............

', 'https://bufanyun.cn-bj.ufileos.com/hotgo/logo.sig.png', '[\"http://localhost:8000/attachment/2022-12-29/cpea9g76jq4cyxvg8c.jpg\", \"http://localhost:8000/attachment/2022-12-29/cpeajfdijd6gix0m37.jpg\"]', 'https://bufanyun.cn-bj.ufileos.com/hotgo/logo.sig.png', '[\"http://localhost:8000/attachment/2022-12-29/cpea9g76jq4cyxvg8c.jpg\", \"http://bufanyun.cn-bj.ufileos.com/hotgo/attachment/2022-12-30/cpf1x44idoycrtajf2.xlsx\"]', '[{\"key\": \"qwe\", \"value\": \"123\"}, {\"key\": \"asd\", \"value\": \"456\"}]', '3.0', '88.00', 10, '2022-12-23', '2022-12-01 00:00:00', '2022-12-31 23:59:59', 1, 20, '', 15, '133814250', '133814250@qq.com', '15303830571', '[3, 2, 1]', 1, 0, 1, '', '备注!', 1, 0, 1, '2022-12-15 19:30:14', '2023-01-18 15:02:01', NULL); + +-- -------------------------------------------------------- + +-- +-- 表的结构 `hg_test_category` +-- + +CREATE TABLE `hg_test_category` ( + `id` bigint(20) NOT NULL COMMENT '分类ID', + `name` varchar(255) NOT NULL COMMENT '分类名称', + `description` varchar(255) DEFAULT NULL COMMENT '描述', + `sort` int(11) NOT NULL COMMENT '排序', + `remark` varchar(255) DEFAULT NULL COMMENT '备注', + `status` tinyint(1) DEFAULT '1' COMMENT '状态', + `created_at` datetime DEFAULT NULL COMMENT '创建时间', + `updated_at` datetime DEFAULT NULL COMMENT '修改时间', + `deleted_at` datetime DEFAULT NULL COMMENT '删除时间' +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='测试分类'; + +-- +-- 转存表中的数据 `hg_test_category` +-- + +INSERT INTO `hg_test_category` (`id`, `name`, `description`, `sort`, `remark`, `status`, `created_at`, `updated_at`, `deleted_at`) VALUES +(1, '官方新闻', NULL, 10, NULL, 1, '2023-01-03 00:00:00', '2023-01-03 00:00:00', NULL), +(2, '移动应用', NULL, 20, NULL, 1, '2023-01-03 00:00:00', '2023-01-03 00:00:00', NULL), +(3, '微信公众号', NULL, 30, NULL, 1, '2023-01-03 00:00:00', '2023-01-03 00:00:00', NULL), +(4, 'Android开发', NULL, 40, NULL, 1, '2023-01-03 00:00:00', '2023-01-03 00:00:00', NULL), +(5, '软件产品', NULL, 50, NULL, 1, '2023-01-03 00:00:00', '2023-01-03 00:00:00', NULL), +(6, '网站建站', NULL, 60, NULL, 1, '2023-01-03 00:00:00', '2023-01-03 00:00:00', NULL), +(7, '软件产品1', NULL, 50, NULL, 1, '2023-01-03 00:00:00', '2023-01-03 00:00:00', NULL), +(8, '软件产品2', '7', 50, NULL, 1, '2023-01-03 00:00:00', '2023-01-03 00:00:00', NULL), +(9, '网站建站3', '7', 60, NULL, 1, '2023-01-03 00:00:00', '2023-01-03 00:00:00', NULL); -- -- 转储表的索引 @@ -4576,7 +4738,8 @@ ALTER TABLE `hg_admin_dept` -- 表的索引 `hg_admin_member` -- ALTER TABLE `hg_admin_member` - ADD PRIMARY KEY (`id`); + ADD PRIMARY KEY (`id`), + ADD KEY `dept_id` (`dept_id`); -- -- 表的索引 `hg_admin_member_post` @@ -4624,12 +4787,6 @@ ALTER TABLE `hg_admin_role` ALTER TABLE `hg_admin_role_casbin` ADD PRIMARY KEY (`id`) USING BTREE; --- --- 表的索引 `hg_admin_role_dept` --- -ALTER TABLE `hg_admin_role_dept` - ADD PRIMARY KEY (`role_id`,`dept_id`); - -- -- 表的索引 `hg_admin_role_menu` -- @@ -4685,14 +4842,25 @@ ALTER TABLE `hg_sys_dict_type` ADD PRIMARY KEY (`id`) USING BTREE, ADD UNIQUE KEY `dict_type` (`type`); +-- +-- 表的索引 `hg_sys_gen_codes` +-- +ALTER TABLE `hg_sys_gen_codes` + ADD PRIMARY KEY (`id`) USING BTREE; + +-- +-- 表的索引 `hg_sys_gen_curd_demo` +-- +ALTER TABLE `hg_sys_gen_curd_demo` + ADD PRIMARY KEY (`id`); + -- -- 表的索引 `hg_sys_log` -- ALTER TABLE `hg_sys_log` ADD PRIMARY KEY (`id`), ADD KEY `error_code` (`error_code`), - ADD KEY `req_id` (`req_id`), - ADD KEY `status` (`status`); + ADD KEY `req_id` (`req_id`); -- -- 表的索引 `hg_sys_provinces` @@ -4701,6 +4869,18 @@ ALTER TABLE `hg_sys_provinces` ADD PRIMARY KEY (`id`), ADD KEY `parentid` (`pid`); +-- +-- 表的索引 `hg_test` +-- +ALTER TABLE `hg_test` + ADD PRIMARY KEY (`id`); + +-- +-- 表的索引 `hg_test_category` +-- +ALTER TABLE `hg_test_category` + ADD PRIMARY KEY (`id`); + -- -- 在导出的表使用AUTO_INCREMENT -- @@ -4709,91 +4889,115 @@ ALTER TABLE `hg_sys_provinces` -- 使用表AUTO_INCREMENT `hg_admin_dept` -- ALTER TABLE `hg_admin_dept` - MODIFY `id` bigint NOT NULL AUTO_INCREMENT COMMENT '部门id', AUTO_INCREMENT=114; + MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '部门ID', AUTO_INCREMENT=113; -- -- 使用表AUTO_INCREMENT `hg_admin_member` -- ALTER TABLE `hg_admin_member` - MODIFY `id` bigint NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1008000; + MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '管理员ID', AUTO_INCREMENT=11; -- -- 使用表AUTO_INCREMENT `hg_admin_menu` -- ALTER TABLE `hg_admin_menu` - MODIFY `id` bigint NOT NULL AUTO_INCREMENT COMMENT '菜单ID', AUTO_INCREMENT=2121; + MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '菜单ID', AUTO_INCREMENT=2207; -- -- 使用表AUTO_INCREMENT `hg_admin_notice` -- ALTER TABLE `hg_admin_notice` - MODIFY `id` bigint NOT NULL AUTO_INCREMENT COMMENT '公告ID', AUTO_INCREMENT=7; + MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '公告ID', AUTO_INCREMENT=8; -- -- 使用表AUTO_INCREMENT `hg_admin_post` -- ALTER TABLE `hg_admin_post` - MODIFY `id` bigint NOT NULL AUTO_INCREMENT COMMENT '岗位ID', AUTO_INCREMENT=23; + MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '岗位ID', AUTO_INCREMENT=7; -- -- 使用表AUTO_INCREMENT `hg_admin_role` -- ALTER TABLE `hg_admin_role` - MODIFY `id` bigint NOT NULL AUTO_INCREMENT COMMENT '角色ID', AUTO_INCREMENT=101; + MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '角色ID', AUTO_INCREMENT=203; -- -- 使用表AUTO_INCREMENT `hg_admin_role_casbin` -- ALTER TABLE `hg_admin_role_casbin` - MODIFY `id` bigint NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1215; + MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2785; -- -- 使用表AUTO_INCREMENT `hg_sys_attachment` -- ALTER TABLE `hg_sys_attachment` - MODIFY `id` bigint NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=17; + MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '文件ID', AUTO_INCREMENT=26; -- -- 使用表AUTO_INCREMENT `hg_sys_blacklist` -- ALTER TABLE `hg_sys_blacklist` - MODIFY `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', AUTO_INCREMENT=5; + MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '黑名单ID', AUTO_INCREMENT=4; -- -- 使用表AUTO_INCREMENT `hg_sys_config` -- ALTER TABLE `hg_sys_config` - MODIFY `id` bigint NOT NULL AUTO_INCREMENT COMMENT '配置ID', AUTO_INCREMENT=18; + MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '配置ID', AUTO_INCREMENT=50; -- -- 使用表AUTO_INCREMENT `hg_sys_cron` -- ALTER TABLE `hg_sys_cron` - MODIFY `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', AUTO_INCREMENT=5; + MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务ID', AUTO_INCREMENT=4; -- -- 使用表AUTO_INCREMENT `hg_sys_cron_group` -- ALTER TABLE `hg_sys_cron_group` - MODIFY `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', AUTO_INCREMENT=7; + MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务分组ID', AUTO_INCREMENT=7; -- -- 使用表AUTO_INCREMENT `hg_sys_dict_data` -- ALTER TABLE `hg_sys_dict_data` - MODIFY `id` bigint NOT NULL AUTO_INCREMENT COMMENT '字典编码', AUTO_INCREMENT=118; + MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '字典数据ID', AUTO_INCREMENT=127; -- -- 使用表AUTO_INCREMENT `hg_sys_dict_type` -- ALTER TABLE `hg_sys_dict_type` - MODIFY `id` bigint NOT NULL AUTO_INCREMENT COMMENT '字典主键', AUTO_INCREMENT=31; + MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '字典类型ID', AUTO_INCREMENT=34; + +-- +-- 使用表AUTO_INCREMENT `hg_sys_gen_codes` +-- +ALTER TABLE `hg_sys_gen_codes` + MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '生成ID', AUTO_INCREMENT=22; + +-- +-- 使用表AUTO_INCREMENT `hg_sys_gen_curd_demo` +-- +ALTER TABLE `hg_sys_gen_curd_demo` + MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', AUTO_INCREMENT=12; -- -- 使用表AUTO_INCREMENT `hg_sys_log` -- ALTER TABLE `hg_sys_log` - MODIFY `id` bigint NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=17108; + MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '日志ID'; + +-- +-- 使用表AUTO_INCREMENT `hg_test` +-- +ALTER TABLE `hg_test` + MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', AUTO_INCREMENT=7; + +-- +-- 使用表AUTO_INCREMENT `hg_test_category` +-- +ALTER TABLE `hg_test_category` + MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '分类ID', AUTO_INCREMENT=10; COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; diff --git a/server/resource/public/.gitignore b/server/resource/public/.gitignore index 407658f..06afa25 100644 --- a/server/resource/public/.gitignore +++ b/server/resource/public/.gitignore @@ -1,2 +1,3 @@ attachment/ -admin/ \ No newline at end of file +admin/ +.well-known/pki-validation \ No newline at end of file diff --git a/server/resource/public/.well-known/pki-validation/8E2A05DA6D386B12988FE64CE3200A64.txt b/server/resource/public/.well-known/pki-validation/8E2A05DA6D386B12988FE64CE3200A64.txt deleted file mode 100644 index 6e1a8bb..0000000 --- a/server/resource/public/.well-known/pki-validation/8E2A05DA6D386B12988FE64CE3200A64.txt +++ /dev/null @@ -1,3 +0,0 @@ -36CD780B7FF256A52581BCE1E4F8B36913DB629F84197FB3FE072F8621B300C6 -trust-provider.com -TTDvWvgcoj \ No newline at end of file diff --git a/server/resource/template/generate/default/curd/api.go.template b/server/resource/template/generate/default/curd/api.go.template new file mode 100644 index 0000000..dcd4ba3 --- /dev/null +++ b/server/resource/template/generate/default/curd/api.go.template @@ -0,0 +1,91 @@ +// Package @{.varName | ToLower} +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) @{NowYear} HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// @AutoGenerate Version @{.hgVersion} +// @AutoGenerate Date @{.nowTime} +// +package @{.varName | ToLower} + +import ( + "github.com/gogf/gf/v2/frame/g" + "hotgo/internal/model/input/@{.templateGroup}in" + "hotgo/internal/model/input/form" +) + +// ListReq 查询@{.tableComment}列表 +type ListReq struct { + g.Meta `path:"/@{.varName | LcFirst}/list" method:"get" tags:"@{.tableComment}" summary:"获取@{.tableComment}列表"` + @{.templateGroup}in.@{.varName}ListInp +} + +type ListRes struct { + form.PageRes + List []*@{.templateGroup}in.@{.varName}ListModel `json:"list" dc:"数据列表"` +} +@{ if eq .options.Step.HasExport true } +// ExportReq 导出@{.tableComment}列表 +type ExportReq struct { + g.Meta `path:"/@{.varName | LcFirst}/export" method:"get" tags:"@{.tableComment}" summary:"导出@{.tableComment}列表"` + @{.templateGroup}in.@{.varName}ListInp +} + +type ExportRes struct{} +@{end} +@{ if eq .options.Step.HasView true } +// ViewReq 获取@{.tableComment}指定信息 +type ViewReq struct { + g.Meta `path:"/@{.varName | LcFirst}/view" method:"get" tags:"@{.tableComment}" summary:"获取@{.tableComment}指定信息"` + @{.templateGroup}in.@{.varName}ViewInp +} + +type ViewRes struct { + *@{.templateGroup}in.@{.varName}ViewModel +} +@{end} +@{ if eq .options.Step.HasEdit true } +// EditReq 修改/新增@{.tableComment} +type EditReq struct { + g.Meta `path:"/@{.varName | LcFirst}/edit" method:"post" tags:"@{.tableComment}" summary:"修改/新增@{.tableComment}"` + @{.templateGroup}in.@{.varName}EditInp +} +type EditRes struct{} +@{end} +@{ if eq .options.Step.HasDel true } +// DeleteReq 删除@{.tableComment} +type DeleteReq struct { + g.Meta `path:"/@{.varName | LcFirst}/delete" method:"post" tags:"@{.tableComment}" summary:"删除@{.tableComment}"` + @{.templateGroup}in.@{.varName}DeleteInp +} + +type DeleteRes struct{} +@{end} +@{ if and (eq .options.Step.HasEdit true) (eq .options.Step.HasMaxSort true) } +// MaxSortReq 获取@{.tableComment}最大排序 +type MaxSortReq struct { + g.Meta `path:"/@{.varName | LcFirst}/maxSort" method:"get" tags:"@{.tableComment}" summary:"获取@{.tableComment}最大排序"` +} + +type MaxSortRes struct { + *@{.templateGroup}in.@{.varName}MaxSortModel +} +@{end} +@{ if eq .options.Step.HasStatus true } +// StatusReq 更新@{.tableComment}状态 +type StatusReq struct { + g.Meta `path:"/@{.varName | LcFirst}/status" method:"post" tags:"@{.tableComment}" summary:"更新@{.tableComment}状态"` + @{.templateGroup}in.@{.varName}StatusInp +} + +type StatusRes struct{} +@{end} +@{ if eq .options.Step.HasSwitch true } +// SwitchReq 更新@{.tableComment}开关状态 +type SwitchReq struct { + g.Meta `path:"/@{.varName | LcFirst}/switch" method:"post" tags:"@{.tableComment}" summary:"更新@{.tableComment}状态"` + @{.templateGroup}in.@{.varName}SwitchInp +} + +type SwitchRes struct{} +@{end} diff --git a/server/resource/template/generate/default/curd/controller.go.template b/server/resource/template/generate/default/curd/controller.go.template new file mode 100644 index 0000000..f298b28 --- /dev/null +++ b/server/resource/template/generate/default/curd/controller.go.template @@ -0,0 +1,175 @@ +// Package @{.templateGroup} +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) @{NowYear} HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// @AutoGenerate Version @{.hgVersion} +// @AutoGenerate Date @{.nowTime} +// +package @{.templateGroup} + +import ( + "context" + "github.com/gogf/gf/v2/util/gconv" + "hotgo/api/backend/@{.varName | ToLower}" + "hotgo/internal/model/input/@{.templateGroup}in" + "hotgo/internal/model/input/form" + "hotgo/internal/service" + "hotgo/utility/validate" +) + +var ( + @{.varName} = c@{.varName}{} +) + +type c@{.varName} struct{} + +// List 查看@{.tableComment}列表 +func (c *c@{.varName}) List(ctx context.Context, req *@{.varName | ToLower}.ListReq) (res *@{.varName | ToLower}.ListRes, err error) { + var in @{.templateGroup}in.@{.varName}ListInp + if err = gconv.Scan(req, &in); err != nil { + return nil, err + } + + if err = validate.PreFilter(ctx, &in); err != nil { + return nil, err + } + + list, totalCount, err := service.@{.templateGroup | UcFirst}@{.varName}().List(ctx, in) + if err != nil { + return nil, err + } + + res = new(@{.varName | ToLower}.ListRes) + res.List = list + res.PageCount = form.CalPageCount(totalCount, req.PerPage) + res.Page = req.Page + res.PerPage = req.PerPage + return res, nil +} +@{ if eq .options.Step.HasExport true } +// Export 导出@{.tableComment}列表 +func (c *c@{.varName}) Export(ctx context.Context, req *@{.varName | ToLower}.ExportReq) (res *@{.varName | ToLower}.ExportRes, err error) { + var in @{.templateGroup}in.@{.varName}ListInp + if err = gconv.Scan(req, &in); err != nil { + return nil, err + } + + if err = validate.PreFilter(ctx, &in); err != nil { + return nil, err + } + + if err = service.@{.templateGroup | UcFirst}@{.varName}().Export(ctx, in); err != nil { + return nil, err + } + return res, nil +} +@{end} +@{ if eq .options.Step.HasEdit true } +// Edit 更新@{.tableComment} +func (c *c@{.varName}) Edit(ctx context.Context, req *@{.varName | ToLower}.EditReq) (res *@{.varName | ToLower}.EditRes, err error) { + var in @{.templateGroup}in.@{.varName}EditInp + if err = gconv.Scan(req, &in); err != nil { + return nil, err + } + + if err = validate.PreFilter(ctx, &in); err != nil { + return nil, err + } + + if err = service.@{.templateGroup | UcFirst}@{.varName}().Edit(ctx, in); err != nil { + return nil, err + } + return res, nil +} +@{end} +@{ if and (eq .options.Step.HasEdit true) (eq .options.Step.HasMaxSort true) } +// MaxSort 获取@{.tableComment}最大排序 +func (c *c@{.varName}) MaxSort(ctx context.Context, req *@{.varName | ToLower}.MaxSortReq) (res *@{.varName | ToLower}.MaxSortRes, err error) { + data, err := service.@{.templateGroup | UcFirst}@{.varName}().MaxSort(ctx, sysin.@{.varName}MaxSortInp{}) + if err != nil { + return nil, err + } + + res = new(@{.varName | ToLower}.MaxSortRes) + res.@{.varName}MaxSortModel = data + return res, nil +} +@{end} +@{ if eq .options.Step.HasView true } +// View 获取指定@{.tableComment}信息 +func (c *c@{.varName}) View(ctx context.Context, req *@{.varName | ToLower}.ViewReq) (res *@{.varName | ToLower}.ViewRes, err error) { + var in @{.templateGroup}in.@{.varName}ViewInp + if err = gconv.Scan(req, &in); err != nil { + return nil, err + } + + if err = validate.PreFilter(ctx, &in); err != nil { + return nil, err + } + + data, err := service.@{.templateGroup | UcFirst}@{.varName}().View(ctx, in) + if err != nil { + return nil, err + } + + res = new(@{.varName | ToLower}.ViewRes) + res.@{.varName}ViewModel = data + return res, nil +} +@{end} +@{ if eq .options.Step.HasDel true } +// Delete 删除@{.tableComment} +func (c *c@{.varName}) Delete(ctx context.Context, req *@{.varName | ToLower}.DeleteReq) (res *@{.varName | ToLower}.DeleteRes, err error) { + var in @{.templateGroup}in.@{.varName}DeleteInp + if err = gconv.Scan(req, &in); err != nil { + return nil, err + } + + if err = validate.PreFilter(ctx, &in); err != nil { + return nil, err + } + + if err = service.@{.templateGroup | UcFirst}@{.varName}().Delete(ctx, in); err != nil { + return nil, err + } + return res, nil +} +@{end} +@{ if eq .options.Step.HasStatus true } +// Status 更新@{.tableComment}状态 +func (c *c@{.varName}) Status(ctx context.Context, req *@{.varName | ToLower}.StatusReq) (res *@{.varName | ToLower}.StatusRes, err error) { + var in @{.templateGroup}in.@{.varName}StatusInp + if err = gconv.Scan(req, &in); err != nil { + return nil, err + } + + if err = validate.PreFilter(ctx, &in); err != nil { + return nil, err + } + + if err = service.@{.templateGroup | UcFirst}@{.varName}().Status(ctx, in); err != nil { + return nil, err + } + return res, nil +} +@{end} +@{ if eq .options.Step.HasSwitch true } +// Switch 更新@{.tableComment}开关状态 +func (c *c@{.varName}) Switch(ctx context.Context, req *@{.varName | ToLower}.SwitchReq) (res *@{.varName | ToLower}.SwitchRes, err error) { + var in @{.templateGroup}in.@{.varName}SwitchInp + if err = gconv.Scan(req, &in); err != nil { + return nil, err + } + + if err = validate.PreFilter(ctx, &in); err != nil { + return nil, err + } + + if err = service.@{.templateGroup | UcFirst}@{.varName}().Switch(ctx, in); err != nil { + return nil, err + } + + return res, nil +} +@{end} diff --git a/server/resource/template/generate/default/curd/input.go.template b/server/resource/template/generate/default/curd/input.go.template new file mode 100644 index 0000000..6226197 --- /dev/null +++ b/server/resource/template/generate/default/curd/input.go.template @@ -0,0 +1,96 @@ +// Package @{.templateGroup}in +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) @{NowYear} HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// @AutoGenerate Version @{.hgVersion} +// @AutoGenerate Date @{.nowTime} +// +package @{.templateGroup}in + +import ( + "context" + "errors" + "github.com/gogf/gf/v2/encoding/gjson" + "github.com/gogf/gf/v2/errors/gerror" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gtime" + "hotgo/internal/consts" + "hotgo/internal/model/entity" + "hotgo/internal/model/input/form" + "hotgo/utility/validate" +) +@{ if eq .options.Step.HasEdit true } +// @{.varName}EditInp 修改/新增@{.tableComment} +type @{.varName}EditInp struct { + entity.Test +} + +func (in *@{.varName}EditInp) Filter(ctx context.Context) (err error) { + return +} + +type @{.varName}EditModel struct{} +@{end} +@{ if eq .options.Step.HasDel true } +// @{.varName}DeleteInp 删除@{.tableComment} +type @{.varName}DeleteInp struct { + @{.pk.GoName} interface{} `json:"@{.pk.TsName}" v:"required#@{.pk.Dc}不能为空" dc:"@{.pk.Dc}"` +} + +type @{.varName}DeleteModel struct{} +@{end} +@{ if eq .options.Step.HasView true } +// @{.varName}ViewInp 获取指定@{.tableComment}信息 +type @{.varName}ViewInp struct { + @{.pk.GoName} @{.pk.GoType} `json:"@{.pk.TsName}" v:"required#@{.pk.Dc}不能为空" dc:"@{.pk.Dc}"` +} + +type @{.varName}ViewModel struct { + entity.Test +}@{end} + +// @{.varName}ListInp 获取@{.tableComment}列表 +type @{.varName}ListInp struct { + form.PageReq +@{.listInpColumns} +} + +type @{.varName}ListModel struct { +@{.listModelColumns} +} + +func (in *@{.varName}ListInp) Filter(ctx context.Context) (err error) { + return +} +@{ if eq .options.Step.HasExport true } +// @{.varName}ExportModel 导出@{.tableComment} +type @{.varName}ExportModel struct { +@{.exportModelColumns} +}@{end} +@{ if and (eq .options.Step.HasEdit true) (eq .options.Step.HasMaxSort true) } +// @{.varName}MaxSortInp 获取@{.tableComment}最大排序 +type @{.varName}MaxSortInp struct{} + +type @{.varName}MaxSortModel struct { + Sort int `json:"sort" description:"排序"` +} +@{end} +@{ if eq .options.Step.HasStatus true } +// @{.varName}StatusInp 更新@{.tableComment}状态 +type @{.varName}StatusInp struct { + @{.pk.GoName} @{.pk.GoType} `json:"@{.pk.TsName}" v:"required#@{.pk.Dc}不能为空" dc:"@{.pk.Dc}"` + Status int `json:"status" dc:"状态"` +} + +type @{.varName}StatusModel struct{} +@{end} +@{ if eq .options.Step.HasSwitch true } +// @{.varName}SwitchInp 更新@{.tableComment}开关状态 +type @{.varName}SwitchInp struct { + form.SwitchReq + @{.pk.GoName} @{.pk.GoType} `json:"@{.pk.TsName}" v:"required#@{.pk.Dc}不能为空" dc:"@{.pk.Dc}"` +} + +type @{.varName}SwitchModel struct{} +@{end} \ No newline at end of file diff --git a/server/resource/template/generate/default/curd/logic.go.template b/server/resource/template/generate/default/curd/logic.go.template new file mode 100644 index 0000000..fe6d63a --- /dev/null +++ b/server/resource/template/generate/default/curd/logic.go.template @@ -0,0 +1,193 @@ +// Package @{.templateGroup} +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) @{NowYear} HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// @AutoGenerate Version @{.hgVersion} +// @AutoGenerate Date @{.nowTime} +// +package @{.templateGroup} + +import ( + "context" + "fmt" + "github.com/gogf/gf/v2/database/gdb" + "github.com/gogf/gf/v2/errors/gerror" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/os/gctx" + "github.com/gogf/gf/v2/os/gtime" + "github.com/gogf/gf/v2/util/gconv" + "hotgo/internal/consts" + "hotgo/internal/dao" + "hotgo/internal/library/contexts" + "hotgo/internal/library/hgorm" + "hotgo/internal/model/input/@{.templateGroup}in" + "hotgo/internal/model/input/form" + "hotgo/internal/service" + "hotgo/utility/convert" + "hotgo/utility/excel" + "hotgo/utility/validate" +) + +type s@{.servFunName} struct{} + +func New@{.servFunName}() *s@{.servFunName} { + return &s@{.servFunName}{} +} + +func init() { + service.Register@{.servFunName}(New@{.servFunName}()) +} + +// Model @{.tableComment}Orm模型 +func (s *s@{.servFunName}) Model(ctx context.Context) *gdb.Model { + return dao.@{.daoName}.Ctx(ctx) +} + +// List 获取@{.tableComment}列表 +func (s *s@{.servFunName}) List(ctx context.Context, in @{.templateGroup}in.@{.varName}ListInp) (list []*@{.templateGroup}in.@{.varName}ListModel, totalCount int, err error) { + mod := dao.@{.daoName}.Ctx(ctx) +@{.listWhere} +@{.listJoin.link} + totalCount, err = mod.Clone().Count(1) + if err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return list, totalCount, err + } + + if totalCount == 0 { + return list, totalCount, nil + } + +@{.listJoin.select} + if err = mod.Fields(fields).Handler(hgorm.HandlerFilterAuth).Page(in.Page, in.PerPage).@{.listOrder}.Scan(&list); err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return list, totalCount, err + } + + return list, totalCount, err +} +@{ if eq .options.Step.HasExport true } +// Export 导出@{.tableComment} +func (s *s@{.servFunName}) Export(ctx context.Context, in @{.templateGroup}in.@{.varName}ListInp) (err error) { + list, totalCount, err := s.List(ctx, in) + if err != nil { + return err + } + + // 字段的排序是依据tags的字段顺序,如果你不想使用默认的排序方式,可以直接定义 tags = []string{"字段名称", "字段名称2", ...} + tags, err := convert.GetEntityDescTags(@{.templateGroup}in.@{.varName}ExportModel{}) + if err != nil { + return err + } + + var ( + fileName = "导出@{.tableComment}-" + gctx.CtxId(ctx) + ".xlsx" + sheetName = fmt.Sprintf("索引条件共%v行,共%v页,当前导出是第%v页,本页共%v行", totalCount, form.CalPageCount(totalCount, in.PerPage), in.Page, len(list)) + exports []@{.templateGroup}in.@{.varName}ExportModel + ) + + err = gconv.Scan(list, &exports) + if err != nil { + return err + } + if err = excel.ExportByStructs(ctx, tags, exports, fileName, sheetName); err != nil { + return + } + return +}@{end} +@{ if eq .options.Step.HasEdit true } +// Edit 修改/新增@{.tableComment} +func (s *s@{.servFunName}) Edit(ctx context.Context, in @{.templateGroup}in.@{.varName}EditInp) (err error) { + // 修改 + if in.@{.pk.GoName} > 0 { +@{.edit.update} + } + + // 新增 +@{.edit.insert} + return +} +@{end} +@{ if eq .options.Step.HasDel true } +// Delete 删除@{.tableComment} +func (s *s@{.servFunName}) Delete(ctx context.Context, in @{.templateGroup}in.@{.varName}DeleteInp) (err error) { + _, err = dao.@{.daoName}.Ctx(ctx).Where(dao.@{.daoName}.Columns().@{.pk.GoName}, in.@{.pk.GoName}).Delete() + if err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return err + } + + return nil +}@{end} +@{ if and (eq .options.Step.HasEdit true) (eq .options.Step.HasMaxSort true) } +// MaxSort 获取@{.tableComment}最大排序 +func (s *s@{.servFunName}) MaxSort(ctx context.Context, in @{.templateGroup}in.@{.varName}MaxSortInp) (res *@{.templateGroup}in.@{.varName}MaxSortModel, err error) { + if err = dao.@{.daoName}.Ctx(ctx).Fields(dao.@{.daoName}.Columns().Sort).OrderDesc(dao.@{.daoName}.Columns().Sort).Scan(&res); err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return nil, err + } + + res.Sort = res.Sort + g.Cfg().MustGet(ctx, "hotgo.admin.maxSortIncrement").Int() + return res, nil +} +@{end} +@{ if eq .options.Step.HasView true } +// View 获取@{.tableComment}指定信息 +func (s *s@{.servFunName}) View(ctx context.Context, in @{.templateGroup}in.@{.varName}ViewInp) (res *@{.templateGroup}in.@{.varName}ViewModel, err error) { + if err = dao.@{.daoName}.Ctx(ctx).Where(dao.@{.daoName}.Columns().@{.pk.GoName}, in.@{.pk.GoName}).Scan(&res); err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return nil, err + } + + return res, nil +}@{end} +@{ if eq .options.Step.HasStatus true } +// Status 更新@{.tableComment}状态 +func (s *s@{.servFunName}) Status(ctx context.Context, in @{.templateGroup}in.@{.varName}StatusInp) (err error) { + if in.@{.pk.GoName} <= 0 { + err = gerror.New("@{.pk.Dc}不能为空") + return err + } + + if in.Status <= 0 { + err = gerror.New("状态不能为空") + return err + } + + if !validate.InSliceInt(consts.StatusMap, in.Status) { + err = gerror.New("状态不正确") + return err + } + + _, err = dao.@{.daoName}.Ctx(ctx).Where(dao.@{.daoName}.Columns().@{.pk.GoName}, in.@{.pk.GoName}).Data(dao.@{.daoName}.Columns().Status, in.Status).Update() + if err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return err + } + + return nil +} +@{end} +@{ if eq .options.Step.HasSwitch true } +// Switch 更新@{.tableComment}开关 +func (s *s@{.servFunName}) Switch(ctx context.Context, in @{.templateGroup}in.@{.varName}SwitchInp) (err error) { + var fields = []string{ +@{.switchFields} + // ... + } + + if !validate.InSliceString(fields, in.Key) { + err = gerror.New("开关键名不在白名单") + return err + } + + _, err = dao.@{.daoName}.Ctx(ctx).Where(dao.@{.daoName}.Columns().@{.pk.GoName}, in.@{.pk.GoName}).Data(in.Key, in.Value).Update() + if err != nil { + err = gerror.Wrap(err, consts.ErrorORM) + return err + } + + return nil +} +@{end} \ No newline at end of file diff --git a/server/resource/template/generate/default/curd/router.go.template b/server/resource/template/generate/default/curd/router.go.template new file mode 100644 index 0000000..f6d8107 --- /dev/null +++ b/server/resource/template/generate/default/curd/router.go.template @@ -0,0 +1,15 @@ +// Package genrouter +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) @{NowYear} HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// @AutoGenerate Version @{.hgVersion} +// @AutoGenerate Date @{.nowTime} +// +package genrouter + +import "hotgo/internal/controller/backend/@{.templateGroup}" + +func init() { + LoginRequiredRouter = append(LoginRequiredRouter, @{.templateGroup}.@{.varName}) // @{.tableComment} +} diff --git a/server/resource/template/generate/default/curd/source.sql.template b/server/resource/template/generate/default/curd/source.sql.template new file mode 100644 index 0000000..cd76d3a --- /dev/null +++ b/server/resource/template/generate/default/curd/source.sql.template @@ -0,0 +1,71 @@ +-- hotgo自动生成菜单权限SQL 通常情况下只在首次生成代码时自动执行一次 +-- 如需再次执行请先手动删除生成的菜单权限和在SQL文件:@{.generatePath} +-- Version: @{.hgVersion} +-- Date: @{.nowTime} +-- Link https://github.com/bufanyun/hotgo + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +SET AUTOCOMMIT = 0; +START TRANSACTION; + +-- +-- 数据库: `@{.dbName}` +-- + +-- -------------------------------------------------------- + +-- +-- 插入表中的数据 `@{.menuTable}` +-- + + +SET @now := now(); + + +-- 菜单目录 +INSERT INTO `@{.menuTable}` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) VALUES (NULL, '@{.options.Menu.Pid}', '@{.tableComment}', '@{.varName | LcFirst}', '/@{.varName | LcFirst}', '@{.options.Menu.Icon}', '1', '', '', '', '@{.mainComponent}', '1', '', '0', '0', '', '0', '0', '0', '1', '', '@{.options.Menu.Sort}', '', '1', @now, @now); + + +SET @dirId = LAST_INSERT_ID(); + + +-- 菜单页面 +-- 列表 +INSERT INTO `@{.menuTable}` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) VALUES (NULL, @dirId, '@{.tableComment}列表', '@{.varName | LcFirst}Index', 'index', '', '2', '', '/@{.varName | LcFirst}/list', '', '/@{.varName | LcFirst}/index', '1', '', '0', '0', '', '0', '0', '0', '2', '', '10', '', '1', @now, @now); + + +SET @listId = LAST_INSERT_ID(); +@{ if eq .options.Step.HasView true } +-- 详情 +INSERT INTO `@{.menuTable}` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) VALUES (NULL, @dirId, '@{.tableComment}详情', '@{.varName | LcFirst}View', 'view/:id?', '', '2', '', '/@{.varName | LcFirst}/view', '', '/@{.varName | LcFirst}/view', '0', '@{.varName | LcFirst}Index', '0', '0', '', '0', '1', '0', '2', '', '20', '', '1', @now, @now); +@{end} + +-- 菜单按钮 +@{ if eq .options.Step.HasEdit true } +-- 编辑 +INSERT INTO `@{.menuTable}` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) VALUES (NULL, @listId, '编辑/新增@{.tableComment}', '@{.varName | LcFirst}Edit', '', '', '3', '', '/@{.varName | LcFirst}/edit', '', '', '1', '', '0', '0', '', '0', '1', '0', '3', '', '10', '', '1', @now, @now); +@{end} + +SET @editId = LAST_INSERT_ID(); +@{ if and (eq .options.Step.HasEdit true) (eq .options.Step.HasMaxSort true) } +-- 获取最大排序 +INSERT INTO `@{.menuTable}` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) VALUES (NULL, @editId, '获取@{.tableComment}最大排序', '@{.varName | LcFirst}MaxSort', '', '', '3', '', '/@{.varName | LcFirst}/maxSort', '', '', '1', '', '0', '0', '', '0', '0', '0', '3', '', '10', '', '1', @now, @now); +@{end} +@{ if eq .options.Step.HasDel true } +-- 删除 +INSERT INTO `@{.menuTable}` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) VALUES (NULL, @listId, '删除@{.tableComment}', '@{.varName | LcFirst}Delete', '', '', '3', '', '/@{.varName | LcFirst}/delete', '', '', '1', '', '0', '0', '', '0', '0', '0', '3', '', '10', '', '1', @now, @now); +@{end} +@{ if eq .options.Step.HasStatus true } +-- 更新状态 +INSERT INTO `@{.menuTable}` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) VALUES (NULL, @listId, '修改@{.tableComment}状态', '@{.varName | LcFirst}Status', '', '', '3', '', '/@{.varName | LcFirst}/status', '', '', '1', '', '0', '0', '', '0', '0', '0', '3', '', '10', '', '1', @now, @now); +@{end} +@{ if eq .options.Step.HasSwitch true } +-- 操作开关 +INSERT INTO `@{.menuTable}` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) VALUES (NULL, @listId, '操作@{.tableComment}开关', '@{.varName | LcFirst}Switch', '', '', '3', '', '/@{.varName | LcFirst}/switch', '', '', '1', '', '0', '0', '', '0', '0', '0', '3', '', '10', '', '1', @now, @now); +@{end} +@{ if eq .options.Step.HasExport true } +-- 导出 +INSERT INTO `@{.menuTable}` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) VALUES (NULL, @listId, '导出@{.tableComment}', '@{.varName | LcFirst}Export', '', '', '3', '', '/@{.varName | LcFirst}/export', '', '', '1', '', '0', '0', '', '0', '0', '0', '3', '', '10', '', '1', @now, @now); +@{end} + +COMMIT; \ No newline at end of file diff --git a/server/resource/template/generate/default/curd/web.api.ts.template b/server/resource/template/generate/default/curd/web.api.ts.template new file mode 100644 index 0000000..16dab23 --- /dev/null +++ b/server/resource/template/generate/default/curd/web.api.ts.template @@ -0,0 +1,75 @@ +import { http, jumpExport } from '@/utils/http/axios'; + +// 获取@{.tableComment}列表 +export function List(params) { + return http.request({ + url: '/@{.varName | LcFirst}/list', + method: 'get', + params, + }); +} +@{ if eq .options.Step.HasDel true } +// 删除/批量删除@{.tableComment} +export function Delete(params) { + return http.request({ + url: '/@{.varName | LcFirst}/delete', + method: 'POST', + params, + }); +} +@{end} +@{ if eq .options.Step.HasEdit true } +// 新建/编辑@{.tableComment} +export function Edit(params) { + return http.request({ + url: '/@{.varName | LcFirst}/edit', + method: 'POST', + params, + }); +} +@{end} +@{ if eq .options.Step.HasStatus true } +// 修改@{.tableComment}状态 +export function Status(params) { + return http.request({ + url: '/@{.varName | LcFirst}/status', + method: 'POST', + params, + }); +} +@{end} +@{ if eq .options.Step.HasSwitch true } +// 操作@{.tableComment}开关 +export function Switch(params) { + return http.request({ + url: '/@{.varName | LcFirst}/switch', + method: 'POST', + params, + }); +} +@{end} +@{ if eq .options.Step.HasView true } +// 获取@{.tableComment}指定详情 +export function View(params) { + return http.request({ + url: '/@{.varName | LcFirst}/view', + method: 'GET', + params, + }); +} +@{end} +@{ if eq .options.Step.HasMaxSort true } +// 获取@{.tableComment}最大排序 +export function MaxSort() { + return http.request({ + url: '/@{.varName | LcFirst}/maxSort', + method: 'GET', + }); +} +@{end} +@{ if eq .options.Step.HasExport true } +// 导出@{.tableComment} +export function Export(params) { + jumpExport('/@{.varName | LcFirst}/export', params); +} +@{end} \ No newline at end of file diff --git a/server/resource/template/generate/default/curd/web.edit.vue.template b/server/resource/template/generate/default/curd/web.edit.vue.template new file mode 100644 index 0000000..3bed7a6 --- /dev/null +++ b/server/resource/template/generate/default/curd/web.edit.vue.template @@ -0,0 +1,99 @@ + + + + + diff --git a/server/resource/template/generate/default/curd/web.index.vue.template b/server/resource/template/generate/default/curd/web.index.vue.template new file mode 100644 index 0000000..74eba84 --- /dev/null +++ b/server/resource/template/generate/default/curd/web.index.vue.template @@ -0,0 +1,249 @@ + + + + + \ No newline at end of file diff --git a/server/resource/template/generate/default/curd/web.model.ts.template b/server/resource/template/generate/default/curd/web.model.ts.template new file mode 100644 index 0000000..6abfd87 --- /dev/null +++ b/server/resource/template/generate/default/curd/web.model.ts.template @@ -0,0 +1,34 @@ +import { h, ref } from 'vue'; +import { NAvatar, NImage, NTag, NSwitch, NRate } from 'naive-ui'; +import { cloneDeep } from 'lodash-es'; +import { FormSchema } from '@/components/Form'; +import { Dicts } from '@/api/dict/dict'; +@{ if eq .options.Step.HasSwitch true }import { Switch } from '@/api/@{.varName | LcFirst}';@{end} +import { isArray, isNullObject } from '@/utils/is'; +import { getFileExt } from '@/utils/urlUtils'; +import { defRangeShortcuts, defShortcuts, formatToDate } from '@/utils/dateUtil'; +import { validate } from '@/utils/validateUtil'; +import { getOptionLabel, getOptionTag, Options } from '@/utils/hotgo'; +@{ if eq .options.Step.HasSwitch true } +import { usePermission } from '@/hooks/web/usePermission'; +const { hasPermission } = usePermission(); +const $message = window['$message']; +@{end} + +@{.state} + +@{.defaultState} + +export function newState(state: State | null): State { + if (state !== null) { + return cloneDeep(state); + } + return cloneDeep(defaultState); +} + +@{.dictOptions.const} +@{.rules} +@{.formSchema} +@{.columns} +@{.dictOptions.load} + diff --git a/server/resource/template/generate/default/curd/web.view.vue.template b/server/resource/template/generate/default/curd/web.view.vue.template new file mode 100644 index 0000000..61003f9 --- /dev/null +++ b/server/resource/template/generate/default/curd/web.view.vue.template @@ -0,0 +1,48 @@ + + + + + diff --git a/server/resource/template/home/index.html b/server/resource/template/home/index.html index 420ab3f..f2e5308 100644 --- a/server/resource/template/home/index.html +++ b/server/resource/template/home/index.html @@ -1,33 +1,33 @@ - - - - - - - - - @{.Title} - - - - -
-

Hello,@{.Data.name}!!

-

当前版本:@{.Data.version}

-
- - - - - + + + + + + + + + @{.Title} + + + + +
+

Hello,@{.Data.name}!!

+

当前版本:@{.Data.version}

+
+ + + + + \ No newline at end of file diff --git a/server/utility/auth/auth.go b/server/utility/auth/auth.go index d83cf98..801cf97 100644 --- a/server/utility/auth/auth.go +++ b/server/utility/auth/auth.go @@ -16,7 +16,7 @@ import ( func IsExceptAuth(ctx context.Context, path string) bool { var pathList []string - except, _ := g.Cfg().Get(ctx, "router.admin.exceptAuth") + except := g.Cfg().MustGet(ctx, "router.admin.exceptAuth") pathList = except.Strings() for i := 0; i < len(pathList); i++ { @@ -32,7 +32,7 @@ func IsExceptAuth(ctx context.Context, path string) bool { func IsExceptLogin(ctx context.Context, path string) bool { var pathList []string - except, _ := g.Cfg().Get(ctx, "router.admin.exceptLogin") + except := g.Cfg().MustGet(ctx, "router.admin.exceptLogin") pathList = except.Strings() for i := 0; i < len(pathList); i++ { diff --git a/server/utility/charset/charset.go b/server/utility/charset/charset.go index b41ea53..ca4d43e 100644 --- a/server/utility/charset/charset.go +++ b/server/utility/charset/charset.go @@ -69,12 +69,11 @@ func RandomCreateBytes(n int, alphabets ...byte) []byte { // GetStack 格式化错误的堆栈信息 func GetStack(err error) []string { - stackList := gstr.Split(gerror.Stack(err), "\n") - for i := 0; i < len(stackList); i++ { - stackList[i] = gstr.Replace(stackList[i], "\t", "--> ") + stack := gstr.Split(gerror.Stack(err), "\n") + for i := 0; i < len(stack); i++ { + stack[i] = gstr.Replace(stack[i], "\t", "--> ") } - - return stackList + return stack } // SubstrAfter 截取指定字符后的内容 diff --git a/server/utility/convert/convert.go b/server/utility/convert/convert.go index a4e33d5..43f3f26 100644 --- a/server/utility/convert/convert.go +++ b/server/utility/convert/convert.go @@ -6,12 +6,25 @@ // package convert +import ( + "github.com/gogf/gf/v2/errors/gerror" + "hotgo/utility/validate" + "reflect" + "strings" + "unicode" +) + +var ( + descTags = []string{"description", "dc", "json"} // 实体描述标签 + fieldTags = []string{"json"} // 实体字段名称映射 +) + // UniqueSliceInt64 切片去重 func UniqueSliceInt64(languages []int64) []int64 { result := make([]int64, 0, len(languages)) temp := map[int64]struct{}{} for _, item := range languages { - if _, ok := temp[item]; !ok { //如果字典中找不到元素,ok=false,!ok为true,就往切片中append元素。 + if _, ok := temp[item]; !ok { temp[item] = struct{}{} result = append(result, item) } @@ -19,28 +32,130 @@ func UniqueSliceInt64(languages []int64) []int64 { return result } -// InSliceInt64 元素是否存在于切片中 -func InSliceInt64(slice []int64, key int64) bool { - if len(slice) == 0 { - return false - } - for i := 0; i < len(slice); i++ { - if slice[i] == key { - return true +// UniqueSliceString 切片去重 +func UniqueSliceString(languages []string) []string { + result := make([]string, 0, len(languages)) + temp := map[string]struct{}{} + for _, item := range languages { + if _, ok := temp[item]; !ok { + temp[item] = struct{}{} + result = append(result, item) } } - return false + return result } -// InSliceInt 元素是否存在于切片中 -func InSliceInt(slice []int, key int) bool { - if len(slice) == 0 { - return false - } - for i := 0; i < len(slice); i++ { - if slice[i] == key { - return true +// UnderlineToUpperCamelCase 下划线单词转为大写驼峰单词 +func UnderlineToUpperCamelCase(s string) string { + s = strings.Replace(s, "_", " ", -1) + s = strings.Title(s) + return strings.Replace(s, " ", "", -1) +} + +// UnderlineToLowerCamelCase 下划线单词转为小写驼峰单词 +func UnderlineToLowerCamelCase(s string) string { + s = UnderlineToUpperCamelCase(s) + return string(unicode.ToLower(rune(s[0]))) + s[1:] +} + +//CamelCaseToUnderline 驼峰单词转下划线单词 +func CamelCaseToUnderline(s string) string { + var output []rune + for i, r := range s { + if i == 0 { + output = append(output, unicode.ToLower(r)) + } else { + if unicode.IsUpper(r) { + output = append(output, '_') + } + + output = append(output, unicode.ToLower(r)) } } - return false + return string(output) +} + +// GetEntityFieldTags 获取实体中的字段名称 +func GetEntityFieldTags(entity interface{}) (tags []string, err error) { + var formRef = reflect.TypeOf(entity) + for i := 0; i < formRef.NumField(); i++ { + field := formRef.Field(i) + if field.Type.Kind() == reflect.Struct { + addTags, err := reflectTag(field.Type, fieldTags, []string{}) + if err != nil { + return nil, err + } + tags = append(tags, addTags...) + continue + } + tags = append(tags, reflectTagName(field, fieldTags, true)) + } + return +} + +// GetEntityDescTags 获取实体中的描述标签 +func GetEntityDescTags(entity interface{}) (tags []string, err error) { + var formRef = reflect.TypeOf(entity) + for i := 0; i < formRef.NumField(); i++ { + field := formRef.Field(i) + if field.Type.Kind() == reflect.Struct { + addTags, err := reflectTag(field.Type, descTags, []string{}) + if err != nil { + return nil, err + } + tags = append(tags, addTags...) + continue + } + tags = append(tags, reflectTagName(field, descTags, true)) + } + return +} + +// reflectTag 层级递增解析tag +func reflectTag(reflectType reflect.Type, filterTags []string, tags []string) ([]string, error) { + if reflectType.Kind() == reflect.Ptr { + return nil, gerror.Newf("reflect type do not support reflect.Ptr yet, reflectType:%+v", reflectType) + } + if reflectType.Kind() != reflect.Struct { + return nil, nil + } + for i := 0; i < reflectType.NumField(); i++ { + tag := reflectTagName(reflectType.Field(i), filterTags, false) + if tag == "" { + addTags, err := reflectTag(reflectType.Field(i).Type, filterTags, tags) + if err != nil { + return nil, err + } + tags = append(tags, addTags...) + continue + } + tags = append(tags, tag) + } + return tags, nil +} + +// reflectTagName 解析实体中的描述标签,优先级:description > dc > json > Name +func reflectTagName(field reflect.StructField, filterTags []string, isDef bool) string { + if validate.InSliceString(filterTags, "description") { + if description, ok := field.Tag.Lookup("description"); ok && description != "" { + return description + } + } + + if validate.InSliceString(filterTags, "dc") { + if dc, ok := field.Tag.Lookup("dc"); ok && dc != "" { + return dc + } + } + + if validate.InSliceString(filterTags, "json") { + if jsonName, ok := field.Tag.Lookup("json"); ok && jsonName != "" { + return jsonName + } + } + + if !isDef { + return "" + } + return field.Name } diff --git a/server/utility/encrypt/aes.go b/server/utility/encrypt/aes.go new file mode 100644 index 0000000..fb38d93 --- /dev/null +++ b/server/utility/encrypt/aes.go @@ -0,0 +1,42 @@ +// Package encrypt +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2022 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package encrypt + +import ( + "encoding/base64" + "github.com/forgoer/openssl" +) + +// AesECBEncrypt 加密 +func AesECBEncrypt(src, key []byte) (dst []byte, err error) { + return openssl.AesECBEncrypt(src, key, openssl.PKCS7_PADDING) +} + +// AesECBDecrypt 解密 +func AesECBDecrypt(src, key []byte) (dst []byte, err error) { + return openssl.AesECBDecrypt(src, key, openssl.PKCS7_PADDING) +} + +// MustAesECBEncryptToString +// Return the encryption result directly. Panic error +func MustAesECBEncryptToString(bytCipher, key string) string { + dst, err := AesECBEncrypt([]byte(bytCipher), []byte(key)) + if err != nil { + panic(err) + } + return base64.StdEncoding.EncodeToString(dst) +} + +// MustAesECBDecryptToString +// Directly return decryption result, panic error +func MustAesECBDecryptToString(bytCipher, key string) string { + dst, err := AesECBDecrypt([]byte(bytCipher), []byte(key)) + if err != nil { + panic(err) + } + return string(dst) +} diff --git a/server/utility/encrypt/encrypt.go b/server/utility/encrypt/encrypt.go index b971ccd..e609b46 100644 --- a/server/utility/encrypt/encrypt.go +++ b/server/utility/encrypt/encrypt.go @@ -17,6 +17,11 @@ func Md5ToString(str string) string { return fmt.Sprintf("%x", md5.Sum([]byte(str))) } +// Md5 生成md5 +func Md5(b []byte) string { + return fmt.Sprintf("%x", md5.Sum(b)) +} + func Hash32(b []byte) uint32 { h := fnv.New32a() h.Write(b) diff --git a/server/utility/excel/excel.go b/server/utility/excel/excel.go index 24bb839..afd006a 100644 --- a/server/utility/excel/excel.go +++ b/server/utility/excel/excel.go @@ -7,42 +7,63 @@ package excel import ( + "context" "fmt" + "github.com/gogf/gf/v2/errors/gcode" + "github.com/gogf/gf/v2/errors/gerror" "github.com/gogf/gf/v2/net/ghttp" + "github.com/gogf/gf/v2/os/gctx" "github.com/gogf/gf/v2/util/gconv" "github.com/xuri/excelize/v2" + "hotgo/internal/library/contexts" + "hotgo/internal/model" "net/url" "reflect" + "time" ) -func ExportByStruct(w *ghttp.ResponseWriter, titleList []string, data []interface{}, fileName string, sheetName string) error { +var ( + // 单元格表头 + char = []string{"", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"} + // 默认行样式 + defaultRowStyle = `{"font":{"color":"#666666","size":13,"family":"arial"},"alignment":{"vertical":"center","horizontal":"center"}}` +) +// ExportByStructs 导出切片结构体 +func ExportByStructs(ctx context.Context, tags []string, list interface{}, fileName string, sheetName string) (err error) { f := excelize.NewFile() f.SetSheetName("Sheet1", sheetName) + _ = f.SetRowHeight("Sheet1", 1, 30) header := make([]string, 0) - for _, v := range titleList { + for _, v := range tags { header = append(header, v) } - rowStyleID, _ := f.NewStyle(`{"font":{"color":"#666666","size":13,"family":"arial"},"alignment":{"vertical":"center","horizontal":"center"}}`) + rowStyleID, _ := f.NewStyle(defaultRowStyle) + if err != nil { + return + } _ = f.SetSheetRow(sheetName, "A1", &header) - _ = f.SetRowHeight("Sheet1", 1, 30) - length := len(titleList) - headStyle := letter(length) - var lastRow string - var widthRow string + + var ( + length = len(tags) + headStyle = letter(length) + lastRow string + widthRow string + ) + for k, v := range headStyle { if k == length-1 { lastRow = fmt.Sprintf("%s1", v) widthRow = v } } - if err := f.SetColWidth(sheetName, "A", widthRow, 30); err != nil { + if err = f.SetColWidth(sheetName, "A", widthRow, 30); err != nil { return err } - rowNum := 1 - for _, v := range data { + var rowNum = 1 + for _, v := range gconv.Interfaces(list) { t := reflect.TypeOf(v) value := reflect.ValueOf(v) row := make([]interface{}, 0) @@ -51,32 +72,60 @@ func ExportByStruct(w *ghttp.ResponseWriter, titleList []string, data []interfac row = append(row, val) } rowNum++ - err := f.SetSheetRow(sheetName, "A"+gconv.String(rowNum), &row) - _ = f.SetCellStyle(sheetName, fmt.Sprintf("A%d", rowNum), fmt.Sprintf("%s", lastRow), rowStyleID) - if err != nil { + if err = f.SetSheetRow(sheetName, "A"+gconv.String(rowNum), &row); err != nil { + return err + } + if err = f.SetCellStyle(sheetName, fmt.Sprintf("A%d", rowNum), fmt.Sprintf("%s", lastRow), rowStyleID); err != nil { return err } } - disposition := fmt.Sprintf("attachment; filename=%s.xlsx", url.QueryEscape(fileName)) + // 强转类型 + writer := ghttp.RequestFromCtx(ctx).Response.Writer + w, ok := interface{}(writer).(*ghttp.ResponseWriter) + if !ok { + return gerror.New("Response.Writer uninitialized!") + } w.Header().Set("Content-Type", "application/octet-stream") - w.Header().Set("Content-Disposition", disposition) + w.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=%s.xlsx", url.QueryEscape(fileName))) w.Header().Set("Content-Transfer-Encoding", "binary") w.Header().Set("Access-Control-Expose-Headers", "Content-Disposition") - err := f.Write(w) - if err != nil { + if err := f.Write(w); err != nil { return err } + // 加入到上下文 + contexts.SetResponse(ctx, &model.Response{ + Code: gcode.CodeOK.Code(), + Message: "export successfully!", + Timestamp: time.Now().Unix(), + TraceID: gctx.CtxId(ctx), + }) + return nil } -// Letter 遍历a-z +// letter 生成完整的表头 func letter(length int) []string { var str []string for i := 0; i < length; i++ { - str = append(str, string(rune('A'+i))) + str = append(str, numToChars(i)) } return str } + +// numToChars 将数字转换为具体的表格表头名称 +func numToChars(num int) string { + var cols string + v := num + for v > 0 { + k := v % 26 + if k == 0 { + k = 26 + } + v = (v - k) / 26 + cols = char[k] + cols + } + return cols +} diff --git a/server/utility/file/file.go b/server/utility/file/file.go index cb3b2ad..3428757 100644 --- a/server/utility/file/file.go +++ b/server/utility/file/file.go @@ -7,6 +7,7 @@ package file import ( + "github.com/gogf/gf/v2/os/gfile" "hotgo/utility/format" "io/ioutil" "os" @@ -111,3 +112,9 @@ func DirSize(dirname string) string { return format.FileSize(ss) } + +func MergeAbs(path string, fileName ...string) string { + var paths = []string{gfile.RealPath(path)} + paths = append(paths, fileName...) + return gfile.Join(paths...) +} diff --git a/server/utility/file/mime.go b/server/utility/file/mime.go index 3254d1d..4d1cdee 100644 --- a/server/utility/file/mime.go +++ b/server/utility/file/mime.go @@ -27,6 +27,7 @@ const ( var ( // 图片类型 imgType = g.MapStrStr{ + "jpeg": "image/jpeg", "jpg": "image/jpeg", "png": "image/png", "gif": "image/gif", @@ -107,7 +108,7 @@ func GetFileType(ext string) (string, error) { if mime, ok := videoType[ext]; ok { return mime, nil } - return "", gerror.New("Invalid file type") + return "", gerror.Newf("Invalid file type:%v", ext) } // GetFileKind 获取文件所属分类 diff --git a/server/utility/tree/tree.go b/server/utility/tree/tree.go index 8cee183..30e672e 100644 --- a/server/utility/tree/tree.go +++ b/server/utility/tree/tree.go @@ -1,18 +1,48 @@ // Package tree // @Link https://github.com/bufanyun/hotgo -// @Copyright Copyright (c) 2022 HotGo CLI +// @Copyright Copyright (c) 2023 HotGo CLI // @Author Ms <133814250@qq.com> // @License https://github.com/bufanyun/hotgo/blob/master/LICENSE // package tree import ( + "fmt" "github.com/gogf/gf/v2/util/gconv" + "strings" ) -var pidName = "pid" +var ( + pidName = "pid" + treeBeginCut = "tr_" // 树标识开头 + treeEndCut = " " // 树标识结尾 +) -// GenTree 生成关系树 参考:https://blog.csdn.net/weixin_51546892/article/details/122876793 +// GenLabel 生成关系树标识 +func GenLabel(basic string, appendId int64) string { + return fmt.Sprintf("%v%v%v%v", basic, treeBeginCut, appendId, treeEndCut) +} + +// GetIds 获取上级ID集合 +func GetIds(tree string) (ids []int64) { + idsStr := strings.Split(tree, treeEndCut) + if len(idsStr) == 0 { + return + } + + for _, v := range idsStr { + newId := gconv.Int64(strings.ReplaceAll(v, treeBeginCut, "")) + if newId > 0 { + ids = append(ids, newId) + } + } + + return +} + +/////////////////////////// 转换类 + +// GenTree 生成关系树 func GenTree(menus []map[string]interface{}) (realMenu []map[string]interface{}) { if len(menus) < 1 { return nil diff --git a/server/utility/url/url.go b/server/utility/url/url.go new file mode 100644 index 0000000..463c02f --- /dev/null +++ b/server/utility/url/url.go @@ -0,0 +1,69 @@ +package url + +import ( + "context" + "fmt" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/net/ghttp" + "github.com/gogf/gf/v2/text/gstr" + "hotgo/utility/validate" + "strings" +) + +// UriToMap 将URL参数转为map +func UriToMap(uri string) g.MapStrStr { + m := make(map[string]string) + if len(uri) < 1 { + return nil + } + if uri[0:1] == "?" { + uri = uri[1:] + } + pars := strings.Split(uri, "&") + for _, par := range pars { + kv := strings.Split(par, "=") + m[kv[0]] = kv[1] + } + return m +} + +// MapToUri 将map转为URL参数 +func MapToUri(params g.MapStrStr) string { + escape := "" + for k, v := range params { + if escape != "" { + escape = escape + "&" + } + escape = escape + k + "=" + v + } + return escape +} + +// GetAddr 获取请求中的请求地址,协议+域名/IP:端口 +func GetAddr(ctx context.Context) string { + r := ghttp.RequestFromCtx(ctx) + if r == nil { + return "" + } + var ( + scheme = "http" + proto = r.Header.Get("X-Forwarded-Proto") + ) + if r.TLS != nil || gstr.Equal(proto, "https") { + scheme = "https" + } + return fmt.Sprintf(`%s://%s`, scheme, r.Host) +} + +// GetDomain 获取请求中的域名,如果请求不是域名则返回空 +func GetDomain(ctx context.Context) string { + r := ghttp.RequestFromCtx(ctx) + if r == nil { + g.Log().Warningf(ctx, "GetDomain ctx not request") + return "" + } + if validate.IsDNSName(r.Host) { + return r.Host + } + return "" +} diff --git a/server/utility/validate/filter.go b/server/utility/validate/filter.go new file mode 100644 index 0000000..d388446 --- /dev/null +++ b/server/utility/validate/filter.go @@ -0,0 +1,24 @@ +// Package validate +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2022 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package validate + +import ( + "context" +) + +type Filter interface { + // Filter gf效验规则 https://goframe.org/pages/viewpage.action?pageId=1114367 + Filter(ctx context.Context) error +} + +// PreFilter 预过滤 +func PreFilter(ctx context.Context, in interface{}) error { + if c, ok := in.(Filter); ok { + return c.Filter(ctx) + } + return nil +} diff --git a/server/utility/validate/include.go b/server/utility/validate/include.go new file mode 100644 index 0000000..4ecaf51 --- /dev/null +++ b/server/utility/validate/include.go @@ -0,0 +1,72 @@ +// Package validate +// @Link https://github.com/bufanyun/hotgo +// @Copyright Copyright (c) 2022 HotGo CLI +// @Author Ms <133814250@qq.com> +// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE +// +package validate + +import ( + "github.com/gogf/gf/v2/text/gstr" + "github.com/gogf/gf/v2/util/gconv" + "time" +) + +// InSameDay 是否为同一天 +func InSameDay(t1, t2 int64) bool { + y1, m1, d1 := time.Unix(t1, 0).Date() + y2, m2, d2 := time.Unix(t2, 0).Date() + return y1 == y2 && m1 == m2 && d1 == d2 +} + +// InSameMinute 是否为同一分钟 +func InSameMinute(t1, t2 int64) bool { + d1 := time.Unix(t1, 0).Format("2006-01-02 15:04") + d2 := time.Unix(t2, 0).Format("2006-01-02 15:04") + return d1 == d2 +} + +// InSliceExistStr 判断字符或切片字符是否存在指定字符 +func InSliceExistStr(elems interface{}, search string) bool { + switch elems.(type) { + case []string: + elem := gconv.Strings(elems) + for i := 0; i < len(elem); i++ { + if gconv.String(elem[i]) == search { + return true + } + } + default: + return gconv.String(elems) == search + } + return false +} + +// InSliceInt64 元素是否存在于切片中 +func InSliceInt64(slice []int64, key int64) bool { + if len(slice) == 0 { + return false + } + for i := 0; i < len(slice); i++ { + if slice[i] == key { + return true + } + } + return false +} + +func InSliceInt(slice []int, key int) bool { + if len(slice) == 0 { + return false + } + for i := 0; i < len(slice); i++ { + if slice[i] == key { + return true + } + } + return false +} + +func InSliceString(slice []string, key string) bool { + return gstr.InArray(slice, key) +} diff --git a/server/utility/validate/validate.go b/server/utility/validate/validate.go index 4c39be7..e0ca590 100644 --- a/server/utility/validate/validate.go +++ b/server/utility/validate/validate.go @@ -7,13 +7,37 @@ package validate import ( - "github.com/gogf/gf/v2/util/gconv" + "context" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/net/ghttp" + "github.com/gogf/gf/v2/text/gstr" "net" "net/url" "regexp" - "time" ) +func IsDNSName(s string) bool { + DNSName := `^([a-zA-Z0-9_]{1}[a-zA-Z0-9_-]{0,62}){1}(\.[a-zA-Z0-9_]{1}[a-zA-Z0-9_-]{0,62})*[\._]?$` + rxDNSName := regexp.MustCompile(DNSName) + return s != "" && rxDNSName.MatchString(s) +} + +func IsHTTPS(ctx context.Context) bool { + r := ghttp.RequestFromCtx(ctx) + if r == nil { + g.Log().Warningf(ctx, "IsHTTPS ctx not request") + return false + } + var ( + proto = r.Header.Get("X-Forwarded-Proto") + ) + + if r.TLS != nil || gstr.Equal(proto, "https") { + return true + } + return false +} + // IsIp 是否为ipv4 func IsIp(ip string) bool { if net.ParseIP(ip) != nil { @@ -22,48 +46,37 @@ func IsIp(ip string) bool { return false } +// IsPublicIp 是否是公网IP +func IsPublicIp(Ip string) bool { + ip := net.ParseIP(Ip) + + if ip.IsLoopback() || ip.IsPrivate() || ip.IsMulticast() || ip.IsUnspecified() || ip.IsLinkLocalUnicast() || ip.IsLinkLocalMulticast() { + return false + } + + if ip4 := ip.To4(); ip4 != nil { + return !ip.Equal(net.IPv4bcast) + } + + return true + +} + +// IsMobile 是否为手机号码 +func IsMobile(mobile string) bool { + pattern := `^(1[2|3|4|5|6|7|8|9][0-9]\d{4,8})$` + reg := regexp.MustCompile(pattern) + return reg.MatchString(mobile) +} + // IsEmail 是否为邮箱地址 func IsEmail(email string) bool { //pattern := `\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*` //匹配电子邮箱 pattern := `^[0-9a-z][_.0-9a-z-]{0,31}@([0-9a-z][0-9a-z-]{0,30}[0-9a-z].){1,4}[a-z]{2,4}$` - reg := regexp.MustCompile(pattern) return reg.MatchString(email) } -// InSameDay 是否为同一天 -func InSameDay(t1, t2 int64) bool { - y1, m1, d1 := time.Unix(t1, 0).Date() - y2, m2, d2 := time.Unix(t2, 0).Date() - - return y1 == y2 && m1 == m2 && d1 == d2 -} - -// InSameMinute 是否为同一分钟 -func InSameMinute(t1, t2 int64) bool { - d1 := time.Unix(t1, 0).Format("2006-01-02 15:04") - d2 := time.Unix(t2, 0).Format("2006-01-02 15:04") - - return d1 == d2 -} - -// InSliceExistStr 判断字符或切片字符是否存在指定字符 -func InSliceExistStr(elems interface{}, search string) bool { - switch elems.(type) { - case []string: - elem := gconv.Strings(elems) - for i := 0; i < len(elem); i++ { - if gconv.String(elem[i]) == search { - return true - } - } - default: - return gconv.String(elems) == search - } - - return false -} - // IsURL 是否是url地址 func IsURL(u string) bool { _, err := url.ParseRequestURI(u) @@ -76,3 +89,19 @@ func IsURL(u string) bool { } return true } + +// IsIDCard 是否为身份证 +func IsIDCard(idCard string) bool { + sz := len(idCard) + if sz != 18 { + return false + } + weight := []int{7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2} + validate := []byte{'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'} + sum := 0 + for i := 0; i < len(weight); i++ { + sum += weight[i] * int(byte(idCard[i])-'0') + } + m := sum % 11 + return validate[m] == idCard[sz-1] +} diff --git a/web/.env b/web/.env index 04bf187..ecbb546 100644 --- a/web/.env +++ b/web/.env @@ -2,10 +2,10 @@ VITE_PORT = 8001 # spa-title -VITE_GLOB_APP_TITLE = HotGo +VITE_GLOB_APP_TITLE = HG后台管理系统 # spa shortname -VITE_GLOB_APP_SHORT_NAME = HotGo +VITE_GLOB_APP_SHORT_NAME = HG # 生产环境 开启mock VITE_GLOB_PROD_MOCK = false diff --git a/web/.env.development b/web/.env.development index 4bf68e7..e535f39 100644 --- a/web/.env.development +++ b/web/.env.development @@ -1,5 +1,4 @@ # 只在开发模式中被载入 -VITE_PORT = 8001 # 网站根目录 VITE_PUBLIC_PATH = / @@ -15,7 +14,7 @@ VITE_DROP_CONSOLE = true # 跨域代理,可以配置多个,请注意不要换行,如果是公网运行,请改成公网IP:服务端运行端口 #VITE_PROXY = [["/appApi","http://localhost:8001"],["/upload","http://localhost:8001/upload"]] -VITE_PROXY=[["/admin","http://42.194.151.158:8000/admin"]] +VITE_PROXY=[["/admin","http://localhost:8000/admin"]] # API 接口地址 VITE_GLOB_API_URL = diff --git a/web/.env.production b/web/.env.production index 89b5375..d791513 100644 --- a/web/.env.production +++ b/web/.env.production @@ -1,9 +1,11 @@ -# 是否开启mock -VITE_USE_MOCK = false +# 只在生产模式中被载入 # 网站根目录 VITE_PUBLIC_PATH = /admin +# 是否开启mock +VITE_USE_MOCK = false + # 网站前缀 VITE_BASE_URL = / diff --git a/web/mock/system/menu.ts b/web/mock/system/menu.ts index 9d4b507..b32746a 100644 --- a/web/mock/system/menu.ts +++ b/web/mock/system/menu.ts @@ -76,7 +76,7 @@ const menuList = () => { export default [ { - url: '/admin/menu/list__', + url: '/admin/menu/list', timeout: 1000, method: 'get', response: () => { diff --git a/web/mock/system/role.ts b/web/mock/system/role.ts index 18e1f3f..fa3190a 100644 --- a/web/mock/system/role.ts +++ b/web/mock/system/role.ts @@ -5,6 +5,7 @@ function getMenuKeys() { const newKeys = []; doCustomTimes(parseInt(Math.random() * 6), () => { const key = keys[Math.floor(Math.random() * keys.length)]; + // @ts-ignore newKeys.push(key); }); return Array.from(new Set(newKeys)); @@ -28,7 +29,7 @@ const roleList = (pageSize) => { export default [ { - url: '/admin/role/list__', + url: '/admin/role/list', timeout: 1000, method: 'get', response: ({ query }) => { diff --git a/web/mock/user/menus.ts b/web/mock/user/menus.ts index 8e484aa..acadde4 100644 --- a/web/mock/user/menus.ts +++ b/web/mock/user/menus.ts @@ -1,5 +1,5 @@ -import {resultSuccess} from '../_util'; -import {ApiEnum} from "@/enums/apiEnum"; +import { resultSuccess } from '../_util'; +import { ApiEnum } from '@/enums/apiEnum'; const menusList = [ { diff --git a/web/mock/user/user.ts b/web/mock/user/user.ts index e1c89c3..98efa6b 100644 --- a/web/mock/user/user.ts +++ b/web/mock/user/user.ts @@ -1,6 +1,6 @@ import Mock from 'mockjs'; -import {ApiEnum} from '@/enums/apiEnum'; -import {resultSuccess} from '../_util'; +import { ApiEnum } from '@/enums/apiEnum'; +import { resultSuccess } from '../_util'; const Random = Mock.Random; @@ -44,7 +44,7 @@ export default [ timeout: 1000, method: 'post', response: () => { - return resultSuccess({token}); + return resultSuccess({ token }); }, }, { diff --git a/web/package-lock.json b/web/package-lock.json deleted file mode 100644 index 24ba13a..0000000 --- a/web/package-lock.json +++ /dev/null @@ -1,26849 +0,0 @@ -{ - "name": "HotGo", - "version": "1.8.1", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "HotGo", - "version": "1.8.1", - "license": "MIT", - "dependencies": { - "@vicons/antd": "^0.10.0", - "@vicons/ionicons5": "^0.10.0", - "@vueup/vue-quill": "^1.0.0-beta.8", - "@vueuse/core": "^5.3.0", - "axios": "^0.21.4", - "blueimp-md5": "^2.19.0", - "clipboard": "^2.0.11", - "date-fns": "^2.28.0", - "echarts": "^5.3.2", - "element-resize-detector": "^1.2.4", - "lodash": "^4.17.21", - "lodash-es": "^4.17.21", - "mitt": "^2.1.0", - "mockjs": "^1.1.0", - "naive-ui": "^2.28.4", - "node-sass": "^7.0.3", - "pinia": "^2.0.14", - "qs": "^6.10.3", - "vfonts": "^0.1.0", - "vue": "^3.2.33", - "vue-router": "^4.0.15", - "vue-types": "^4.1.1", - "vue3-json-viewer": "^2.2.2", - "vuedraggable": "^4.1.0" - }, - "devDependencies": { - "@commitlint/cli": "^12.1.4", - "@commitlint/config-conventional": "^12.1.4", - "@types/lodash": "^4.14.182", - "@types/node": "^15.14.9", - "@typescript-eslint/eslint-plugin": "^4.33.0", - "@typescript-eslint/parser": "^4.33.0", - "@vitejs/plugin-vue": "^1.10.2", - "@vitejs/plugin-vue-jsx": "^1.3.10", - "@vue/compiler-sfc": "^3.2.33", - "@vue/eslint-config-typescript": "^7.0.0", - "autoprefixer": "^10.4.7", - "commitizen": "^4.2.4", - "core-js": "^3.22.5", - "dotenv": "^10.0.0", - "eslint": "^7.32.0", - "eslint-config-prettier": "^8.5.0", - "eslint-define-config": "1.0.9", - "eslint-plugin-jest": "^24.7.0", - "eslint-plugin-prettier": "^3.4.1", - "eslint-plugin-vue": "^7.20.0", - "esno": "^0.7.3", - "gh-pages": "^3.2.3", - "husky": "^6.0.0", - "jest": "^27.5.1", - "less": "^4.1.2", - "less-loader": "^9.1.0", - "lint-staged": "^11.2.6", - "postcss": "^8.4.13", - "prettier": "^2.6.2", - "pretty-quick": "^3.1.3", - "rimraf": "^3.0.2", - "stylelint": "^13.13.1", - "stylelint-config-prettier": "^8.0.2", - "stylelint-config-standard": "^22.0.0", - "stylelint-order": "^4.1.0", - "stylelint-scss": "^3.21.0", - "tailwindcss": "^2.2.19", - "typescript": "^4.6.4", - "unplugin-vue-components": "^0.17.21", - "vite": "^2.9.8", - "vite-plugin-compression": "^0.3.6", - "vite-plugin-html": "^2.1.2", - "vite-plugin-mock": "^2.9.6", - "vite-plugin-style-import": "^1.4.1", - "vue-eslint-parser": "^7.11.0" - }, - "engines": { - "node": "^12 || >=14" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@antfu/utils": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.4.0.tgz", - "integrity": "sha512-gqkpvjkgFUu+s3kP+Ly33OKpo5zvVY3FDFhv5BIb98SncS3KD6DNxPfNDjwHIoyXbz1leWo1j8DtRLZ1D2Jv+Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/throttle-debounce": "^2.1.0" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dependencies": { - "@babel/highlight": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.18.13", - "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.18.13.tgz", - "integrity": "sha512-5yUzC5LqyTFp2HLmDoxGQelcdYgSpP9xsnMWBphAscOdFrHSAVbLNzWiy32sVNDqJRDiJK6klfDnAgu6PAGSHw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.18.13", - "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.18.13.tgz", - "integrity": "sha512-ZisbOvRRusFktksHSG6pjj1CSvkPkcZq/KHD45LAkVP/oiHJkNBZWfpvlLmX8OtHDG8IuzsFlVRWo08w7Qxn0A==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.13", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helpers": "^7.18.9", - "@babel/parser": "^7.18.13", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.13", - "@babel/types": "^7.18.13", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator": { - "version": "7.18.13", - "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.18.13.tgz", - "integrity": "sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.13", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.18.9", - "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", - "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.20.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", - "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", - "dev": true, - "dependencies": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", - "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.18.9", - "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", - "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.5.tgz", - "integrity": "sha512-59KHWHXxVA9K4HNF4sbHCf+eJeFe0Te/ZFGqBT4OjXhrwvA04sGfaEGsVTdsjoszq0YTP49RC9UKe5g8uN2RwQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.18.10", - "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.18.9", - "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.18.9.tgz", - "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", - "dev": true, - "dependencies": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "license": "MIT" - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.18.13", - "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.18.13.tgz", - "integrity": "sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.5.tgz", - "integrity": "sha512-42OGssv9NPk4QHKVgIHlzeLgPOW5rGgfV5jzG90AhcXXIv6hu/eqj63w4VgvRxdvZY3AlYeDgPiSJ3BqAd1Y6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.5.tgz", - "integrity": "sha512-/d4//lZ1Vqb4mZ5xTep3dDK888j7BGM/iKqBmndBaoYAFPlPKrGU608VVBz5JeyAb6YQDjRu1UKqj86UhwWVgw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.18.13", - "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.18.13.tgz", - "integrity": "sha512-N6kt9X1jRMLPxxxPYWi7tgvJRH/rtoU+dbKAPDM44RFHiMH8igdsaSBgFeskhSl/kLWLDUvIh1RXCrTmg0/zvA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.13", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.13", - "@babel/types": "^7.18.13", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.18.13", - "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.18.13.tgz", - "integrity": "sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@commitlint/cli": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-12.1.4.tgz", - "integrity": "sha512-ZR1WjXLvqEffYyBPT0XdnSxtt3Ty1TMoujEtseW5o3vPnkA1UNashAMjQVg/oELqfaiAMnDw8SERPMN0e/0kLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/format": "^12.1.4", - "@commitlint/lint": "^12.1.4", - "@commitlint/load": "^12.1.4", - "@commitlint/read": "^12.1.4", - "@commitlint/types": "^12.1.4", - "lodash": "^4.17.19", - "resolve-from": "5.0.0", - "resolve-global": "1.0.0", - "yargs": "^16.2.0" - }, - "bin": { - "commitlint": "cli.js" - }, - "engines": { - "node": ">=v10" - } - }, - "node_modules/@commitlint/config-conventional": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-12.1.4.tgz", - "integrity": "sha512-ZIdzmdy4o4WyqywMEpprRCrehjCSQrHkaRTVZV411GyLigFQHlEBSJITAihLAWe88Qy/8SyoIe5uKvAsV5vRqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "conventional-changelog-conventionalcommits": "^4.3.1" - }, - "engines": { - "node": ">=v10" - } - }, - "node_modules/@commitlint/ensure": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-12.1.4.tgz", - "integrity": "sha512-MxHIBuAG9M4xl33qUfIeMSasbv3ktK0W+iygldBxZOL4QSYC2Gn66pZAQMnV9o3V+sVFHoAK2XUKqBAYrgbEqw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/types": "^12.1.4", - "lodash": "^4.17.19" - }, - "engines": { - "node": ">=v10" - } - }, - "node_modules/@commitlint/execute-rule": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-12.1.4.tgz", - "integrity": "sha512-h2S1j8SXyNeABb27q2Ok2vD1WfxJiXvOttKuRA9Or7LN6OQoC/KtT3844CIhhWNteNMu/wE0gkTqGxDVAnJiHg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=v10" - } - }, - "node_modules/@commitlint/format": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-12.1.4.tgz", - "integrity": "sha512-h28ucMaoRjVvvgS6Bdf85fa/+ZZ/iu1aeWGCpURnQV7/rrVjkhNSjZwGlCOUd5kDV1EnZ5XdI7L18SUpRjs26g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/types": "^12.1.4", - "chalk": "^4.0.0" - }, - "engines": { - "node": ">=v10" - } - }, - "node_modules/@commitlint/is-ignored": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-12.1.4.tgz", - "integrity": "sha512-uTu2jQU2SKvtIRVLOzMQo3KxDtO+iJ1p0olmncwrqy4AfPLgwoyCP2CiULq5M7xpR3+dE3hBlZXbZTQbD7ycIw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/types": "^12.1.4", - "semver": "7.3.5" - }, - "engines": { - "node": ">=v10" - } - }, - "node_modules/@commitlint/is-ignored/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@commitlint/lint": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-12.1.4.tgz", - "integrity": "sha512-1kZ8YDp4to47oIPFELUFGLiLumtPNKJigPFDuHt2+f3Q3IKdQ0uk53n3CPl4uoyso/Og/EZvb1mXjFR/Yce4cA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/is-ignored": "^12.1.4", - "@commitlint/parse": "^12.1.4", - "@commitlint/rules": "^12.1.4", - "@commitlint/types": "^12.1.4" - }, - "engines": { - "node": ">=v10" - } - }, - "node_modules/@commitlint/load": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-12.1.4.tgz", - "integrity": "sha512-Keszi0IOjRzKfxT+qES/n+KZyLrxy79RQz8wWgssCboYjKEp+wC+fLCgbiMCYjI5k31CIzIOq/16J7Ycr0C0EA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/execute-rule": "^12.1.4", - "@commitlint/resolve-extends": "^12.1.4", - "@commitlint/types": "^12.1.4", - "chalk": "^4.0.0", - "cosmiconfig": "^7.0.0", - "lodash": "^4.17.19", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=v10" - } - }, - "node_modules/@commitlint/message": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-12.1.4.tgz", - "integrity": "sha512-6QhalEKsKQ/Y16/cTk5NH4iByz26fqws2ub+AinHPtM7Io0jy4e3rym9iE+TkEqiqWZlUigZnTwbPvRJeSUBaA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=v10" - } - }, - "node_modules/@commitlint/parse": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-12.1.4.tgz", - "integrity": "sha512-yqKSAsK2V4X/HaLb/yYdrzs6oD/G48Ilt0EJ2Mp6RJeWYxG14w/Out6JrneWnr/cpzemyN5hExOg6+TB19H/Lw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/types": "^12.1.4", - "conventional-changelog-angular": "^5.0.11", - "conventional-commits-parser": "^3.0.0" - }, - "engines": { - "node": ">=v10" - } - }, - "node_modules/@commitlint/read": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-12.1.4.tgz", - "integrity": "sha512-TnPQSJgD8Aod5Xeo9W4SaYKRZmIahukjcCWJ2s5zb3ZYSmj6C85YD9cR5vlRyrZjj78ItLUV/X4FMWWVIS38Jg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/top-level": "^12.1.4", - "@commitlint/types": "^12.1.4", - "fs-extra": "^9.0.0", - "git-raw-commits": "^2.0.0" - }, - "engines": { - "node": ">=v10" - } - }, - "node_modules/@commitlint/read/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@commitlint/read/node_modules/graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true, - "license": "ISC" - }, - "node_modules/@commitlint/resolve-extends": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-12.1.4.tgz", - "integrity": "sha512-R9CoUtsXLd6KSCfsZly04grsH6JVnWFmVtWgWs1KdDpdV+G3TSs37tColMFqglpkx3dsWu8dsPD56+D9YnJfqg==", - "dev": true, - "license": "MIT", - "dependencies": { - "import-fresh": "^3.0.0", - "lodash": "^4.17.19", - "resolve-from": "^5.0.0", - "resolve-global": "^1.0.0" - }, - "engines": { - "node": ">=v10" - } - }, - "node_modules/@commitlint/rules": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-12.1.4.tgz", - "integrity": "sha512-W8m6ZSjg7RuIsIfzQiFHa48X5mcPXeKT9yjBxVmjHvYfS2FDBf1VxCQ7vO0JTVIdV4ohjZ0eKg/wxxUuZHJAZg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/ensure": "^12.1.4", - "@commitlint/message": "^12.1.4", - "@commitlint/to-lines": "^12.1.4", - "@commitlint/types": "^12.1.4" - }, - "engines": { - "node": ">=v10" - } - }, - "node_modules/@commitlint/to-lines": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-12.1.4.tgz", - "integrity": "sha512-TParumvbi8bdx3EdLXz2MaX+e15ZgoCqNUgqHsRLwyqLUTRbqCVkzrfadG1UcMQk8/d5aMbb327ZKG3Q4BRorw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=v10" - } - }, - "node_modules/@commitlint/top-level": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-12.1.4.tgz", - "integrity": "sha512-d4lTJrOT/dXlpY+NIt4CUl77ciEzYeNVc0VFgUQ6VA+b1rqYD2/VWFjBlWVOrklxtSDeKyuEhs36RGrppEFAvg==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^5.0.0" - }, - "engines": { - "node": ">=v10" - } - }, - "node_modules/@commitlint/top-level/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/top-level/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/top-level/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/top-level/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/types": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-12.1.4.tgz", - "integrity": "sha512-KRIjdnWNUx6ywz+SJvjmNCbQKcKP6KArhjZhY2l+CWKxak0d77SOjggkMwFTiSgLODOwmuLTbarR2ZfWPiPMlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0" - }, - "engines": { - "node": ">=v10" - } - }, - "node_modules/@css-render/plugin-bem": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/@css-render/plugin-bem/-/plugin-bem-0.15.10.tgz", - "integrity": "sha512-V7b08sM2PWJlXI7BJiVIa0Sg30H3u/jHay4AclNXfF2yRFwwb4ZJjggsMfzwj3WSihAdNf2WTqvOU5qsOD80Dg==", - "license": "MIT", - "peerDependencies": { - "css-render": "~0.15.10" - } - }, - "node_modules/@css-render/vue3-ssr": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/@css-render/vue3-ssr/-/vue3-ssr-0.15.10.tgz", - "integrity": "sha512-keGKnkB2nyVGoA8GezMKNsmvTGXEzgLOGGlgshwOTSEzd1dsROyZ2m/khJ9jV5zbzDM4rWeAWbWF0zwHemsJcw==", - "license": "MIT", - "peerDependencies": { - "vue": "^3.0.11" - } - }, - "node_modules/@emotion/hash": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", - "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", - "license": "MIT" - }, - "node_modules/@endemolshinegroup/cosmiconfig-typescript-loader": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz", - "integrity": "sha512-QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "lodash.get": "^4", - "make-error": "^1", - "ts-node": "^9", - "tslib": "^2" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "cosmiconfig": ">=6" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.15.6.tgz", - "integrity": "sha512-hqmVU2mUjH6J2ZivHphJ/Pdse2ZD+uGCHK0uvsiLDk/JnSedEVj77CiVUnbMKuU4tih1TZZL8tG9DExQg/GZsw==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", - "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==" - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", - "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/console/node_modules/@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jest/core": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", - "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/core/node_modules/@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jest/environment": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", - "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/environment/node_modules/@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jest/fake-timers": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", - "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/fake-timers/node_modules/@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jest/globals": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", - "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", - "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/reporters/node_modules/@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jest/source-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", - "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-result": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", - "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", - "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", - "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/types/node_modules/@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@juggle/resize-observer": { - "version": "3.3.1", - "resolved": "https://registry.npmmirror.com/@juggle/resize-observer/-/resize-observer-3.3.1.tgz", - "integrity": "sha512-zMM9Ds+SawiUkakS7y94Ymqx+S0ORzpG3frZirN3l+UlXUmSUR7hF4wxCVqW+ei94JzV5kt0uXBcoOEAuiydrw==", - "license": "Apache-2.0" - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "dependencies": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - } - }, - "node_modules/@npmcli/fs/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.1.1.tgz", - "integrity": "sha512-6QKtRevXLrmEig9UiMYt2fSvee9TyltGRfw+qSs6xjUnxwjOzTOqy+/Lpxsgjb8mJn1EQNbCDAvt89O4uzL5kw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "rollup": "^2.42.0" - } - }, - "node_modules/@rollup/plugin-node-resolve/node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@rollup/plugin-node-resolve/node_modules/estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@rollup/pluginutils": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.2.tgz", - "integrity": "sha512-ROn4qvkxP9SyPeHaf7uQC/GPFY6L/OWy9+bd9AwcjOAWQwxRscoEyAUD8qCY5o5iL4jqQwoLk2kaTKJPb/HwzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "estree-walker": "^2.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/@types/babel__core": { - "version": "7.1.17", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.17.tgz", - "integrity": "sha512-6zzkezS9QEIL8yCBvXWxPTJPNuMeECJVxSOhxNY/jfq9LxOTHivaYTqr37n9LknWWRTIkzqH2UilS5QFvfa90A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.3.0" - } - }, - "node_modules/@types/eslint": { - "version": "8.4.6", - "resolved": "https://registry.npmmirror.com/@types/eslint/-/eslint-8.4.6.tgz", - "integrity": "sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==", - "dev": true, - "peer": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", - "dev": true, - "peer": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/graceful-fs/node_modules/@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jest": { - "version": "27.0.3", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.0.3.tgz", - "integrity": "sha512-cmmwv9t7gBYt7hNKH5Spu7Kuu/DotGa+Ff+JGRKZ4db5eh8PnKS4LuebJ3YLUoyOyIHraTGyULn23YtEAm0VSg==", - "license": "MIT", - "dependencies": { - "jest-diff": "^27.0.0", - "pretty-format": "^27.0.0" - } - }, - "node_modules/@types/jest/node_modules/@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@types/jest/node_modules/@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "license": "MIT" - }, - "node_modules/@types/jest/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@types/jest/node_modules/diff-sequences": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.4.0.tgz", - "integrity": "sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww==", - "license": "MIT", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@types/jest/node_modules/jest-diff": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.4.2.tgz", - "integrity": "sha512-ujc9ToyUZDh9KcqvQDkk/gkbf6zSaeEg9AiBxtttXW59H/AcqEYp1ciXAtJp+jXWva5nAf/ePtSsgWwE5mqp4Q==", - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.4.0", - "jest-get-type": "^27.4.0", - "pretty-format": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@types/jest/node_modules/jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", - "license": "MIT", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@types/jest/node_modules/pretty-format": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz", - "integrity": "sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.4.2", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/lodash": { - "version": "4.14.182", - "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.182.tgz", - "integrity": "sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/lodash-es": { - "version": "4.17.6", - "resolved": "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.6.tgz", - "integrity": "sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==", - "license": "MIT", - "dependencies": { - "@types/lodash": "*" - } - }, - "node_modules/@types/lodash-es/node_modules/@types/lodash": { - "version": "4.14.178", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.178.tgz", - "integrity": "sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw==", - "license": "MIT" - }, - "node_modules/@types/mdast": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", - "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "license": "MIT" - }, - "node_modules/@types/mockjs": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@types/mockjs/-/mockjs-1.0.4.tgz", - "integrity": "sha512-gK20xPqJhzMIitechVbvfnAk+oBIxVRnWrihJpRYHMI6UHCB/cvWgJa+dy6trRwQLE3AbtAJnXpm7pn6blG8sA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "15.14.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", - "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "license": "MIT" - }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/prettier": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.2.tgz", - "integrity": "sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/resolve/node_modules/@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/throttle-debounce": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@types/throttle-debounce/-/throttle-debounce-2.1.0.tgz", - "integrity": "sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/unist": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", - "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", - "license": "MIT" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", - "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/experimental-utils": "4.33.0", - "@typescript-eslint/scope-manager": "4.33.0", - "debug": "^4.3.1", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", - "regexpp": "^3.1.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^4.0.0", - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", - "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - } - }, - "node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", - "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", - "debug": "^4.3.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", - "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", - "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", - "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", - "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "4.33.0", - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10" - } - }, - "node_modules/@vicons/antd": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@vicons/antd/-/antd-0.10.0.tgz", - "integrity": "sha512-F+pVt2cYJDoJw5Wvu5YzvqnpCoUPeYh272R/ZVK+2H6U/G0LCDvEWNQHXkbLBpCtu9FAq/yac0NNfg1i0a1DGg==", - "license": "MIT" - }, - "node_modules/@vicons/ionicons5": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@vicons/ionicons5/-/ionicons5-0.10.0.tgz", - "integrity": "sha512-AgOAI15sXiasLKozj9Nkrxdda8BoaFN4TaprFCcHbBMLFOUwk6QLLHRngC+X5YhYXVjLqMbQ6FtEbrPSPYIZEA==", - "license": "MIT" - }, - "node_modules/@vitejs/plugin-vue": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-1.10.2.tgz", - "integrity": "sha512-/QJ0Z9qfhAFtKRY+r57ziY4BSbGUTGsPRMpB/Ron3QPwBZM4OZAZHdTa4a8PafCwU5DTatXG8TMDoP8z+oDqJw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "vite": "^2.5.10" - } - }, - "node_modules/@vitejs/plugin-vue-jsx": { - "version": "1.3.10", - "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-1.3.10.tgz", - "integrity": "sha512-Cf5zznh4yNMiEMBfTOztaDVDmK1XXfgxClzOSUVUc8WAmHzogrCUeM8B05ABzuGtg0D1amfng+mUmSIOFGP3Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.17.9", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-transform-typescript": "^7.16.8", - "@rollup/pluginutils": "^4.2.0", - "@vue/babel-plugin-jsx": "^1.1.1", - "hash-sum": "^2.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@vitejs/plugin-vue-jsx/node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.17.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz", - "integrity": "sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@vitejs/plugin-vue-jsx/node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@vitejs/plugin-vue-jsx/node_modules/@babel/plugin-syntax-typescript": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz", - "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@vitejs/plugin-vue-jsx/node_modules/@babel/plugin-syntax-typescript/node_modules/@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@vitejs/plugin-vue-jsx/node_modules/@babel/plugin-transform-typescript": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz", - "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-typescript": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@vitejs/plugin-vue-jsx/node_modules/@babel/plugin-transform-typescript/node_modules/@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@vitejs/plugin-vue-jsx/node_modules/@rollup/pluginutils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.0.tgz", - "integrity": "sha512-2WUyJNRkyH5p487pGnn4tWAsxhEFKN/pT8CMgHshd5H+IXkOnKvKZwsz5ZWz+YCXkleZRAU5kwbfgF8CPfDRqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "estree-walker": "^2.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/@vue/babel-helper-vue-transform-on": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz", - "integrity": "sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@vue/babel-plugin-jsx": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz", - "integrity": "sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.0.0", - "@babel/template": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", - "@vue/babel-helper-vue-transform-on": "^1.0.2", - "camelcase": "^6.0.0", - "html-tags": "^3.1.0", - "svg-tags": "^1.0.0" - } - }, - "node_modules/@vue/babel-plugin-jsx/node_modules/camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@vue/compiler-core": { - "version": "3.2.37", - "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.37.tgz", - "integrity": "sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.16.4", - "@vue/shared": "3.2.37", - "estree-walker": "^2.0.2", - "source-map": "^0.6.1" - } - }, - "node_modules/@vue/compiler-dom": { - "version": "3.2.37", - "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.37.tgz", - "integrity": "sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==", - "license": "MIT", - "dependencies": { - "@vue/compiler-core": "3.2.37", - "@vue/shared": "3.2.37" - } - }, - "node_modules/@vue/compiler-sfc": { - "version": "3.2.37", - "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.37.tgz", - "integrity": "sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.37", - "@vue/compiler-dom": "3.2.37", - "@vue/compiler-ssr": "3.2.37", - "@vue/reactivity-transform": "3.2.37", - "@vue/shared": "3.2.37", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7", - "postcss": "^8.1.10", - "source-map": "^0.6.1" - } - }, - "node_modules/@vue/compiler-sfc/node_modules/nanoid": { - "version": "3.1.30", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", - "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/@vue/compiler-sfc/node_modules/postcss": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", - "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", - "license": "MIT", - "dependencies": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/@vue/compiler-sfc/node_modules/source-map-js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", - "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@vue/compiler-ssr": { - "version": "3.2.37", - "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.37.tgz", - "integrity": "sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==", - "license": "MIT", - "dependencies": { - "@vue/compiler-dom": "3.2.37", - "@vue/shared": "3.2.37" - } - }, - "node_modules/@vue/devtools-api": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.1.4.tgz", - "integrity": "sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ==", - "license": "MIT" - }, - "node_modules/@vue/eslint-config-typescript": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-7.0.0.tgz", - "integrity": "sha512-UxUlvpSrFOoF8aQ+zX1leYiEBEm7CZmXYn/ZEM1zwSadUzpamx56RB4+Htdjisv1mX2tOjBegNUqH3kz2OL+Aw==", - "dev": true, - "license": "MIT", - "dependencies": { - "vue-eslint-parser": "^7.0.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^4.4.0", - "@typescript-eslint/parser": "^4.4.0", - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0", - "eslint-plugin-vue": "^5.2.3 || ^6.0.0 || ^7.0.0" - } - }, - "node_modules/@vue/reactivity": { - "version": "3.2.37", - "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.37.tgz", - "integrity": "sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==", - "license": "MIT", - "dependencies": { - "@vue/shared": "3.2.37" - } - }, - "node_modules/@vue/reactivity-transform": { - "version": "3.2.37", - "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.37.tgz", - "integrity": "sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.37", - "@vue/shared": "3.2.37", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7" - } - }, - "node_modules/@vue/runtime-core": { - "version": "3.2.37", - "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.37.tgz", - "integrity": "sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==", - "license": "MIT", - "dependencies": { - "@vue/reactivity": "3.2.37", - "@vue/shared": "3.2.37" - } - }, - "node_modules/@vue/runtime-dom": { - "version": "3.2.37", - "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.37.tgz", - "integrity": "sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==", - "license": "MIT", - "dependencies": { - "@vue/runtime-core": "3.2.37", - "@vue/shared": "3.2.37", - "csstype": "^2.6.8" - } - }, - "node_modules/@vue/server-renderer": { - "version": "3.2.37", - "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.37.tgz", - "integrity": "sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==", - "license": "MIT", - "dependencies": { - "@vue/compiler-ssr": "3.2.37", - "@vue/shared": "3.2.37" - }, - "peerDependencies": { - "vue": "3.2.37" - } - }, - "node_modules/@vue/shared": { - "version": "3.2.37", - "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.37.tgz", - "integrity": "sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==", - "license": "MIT" - }, - "node_modules/@vueup/vue-quill": { - "version": "1.0.0-beta.8", - "resolved": "https://registry.npmjs.org/@vueup/vue-quill/-/vue-quill-1.0.0-beta.8.tgz", - "integrity": "sha512-3fnIdmnz2ba4dI4WIpudlYoev9r5hrL8NrvhzMXrBj5c5+uEBqM2P48Q+skwToFZjPJT+QDIKiQqY3CXJvpX/Q==", - "license": "MIT", - "dependencies": { - "quill": "^1.3.7", - "quill-delta": "^4.2.2" - }, - "peerDependencies": { - "vue": "^3.2.31" - } - }, - "node_modules/@vueuse/core": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-5.3.0.tgz", - "integrity": "sha512-bBL1/JMRHFWmbgQzUZHF4WOwlqfenR1B8+elriXsbnHlogQM5foSz9++WyDBR0YPIVgCJq7fvNLqd4T7+cjc5w==", - "license": "MIT", - "dependencies": { - "@vueuse/shared": "5.3.0", - "vue-demi": "*" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/@vueuse/shared": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-5.3.0.tgz", - "integrity": "sha512-qZfkPFH0qTScFpYiPOFpTcxWriRhlM3bgSzl3DFTgr/U0eZg3w2EFWaRZHdWeSvAUdNQyjOC4Toa8S0zJyEjHw==", - "license": "MIT", - "dependencies": { - "vue-demi": "*" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", - "dev": true, - "peer": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", - "dev": true, - "peer": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", - "dev": true, - "peer": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", - "dev": true, - "peer": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", - "dev": true, - "peer": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", - "dev": true, - "peer": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", - "dev": true, - "peer": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true, - "peer": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true, - "peer": true - }, - "node_modules/abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "node_modules/acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmmirror.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true, - "peer": true, - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "node_modules/acorn-node/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agentkeepalive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", - "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", - "dependencies": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peer": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" - }, - "node_modules/are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/arg": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz", - "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/array-differ": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", - "dev": true, - "license": "MIT" - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "integrity": "sha512-VUeSMD8nEGBWaZK4lizI1sf3yEC7pnAQ/mrI7pC2fBz2s/tq5jWWEngTwaf0Gruu/OoXRGLGg1XFqpYBiGTYJA==", - "engines": { - "node": "*" - } - }, - "node_modules/async-validator": { - "version": "4.2.5", - "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz", - "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==", - "license": "MIT" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "license": "MIT" - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.7", - "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.7.tgz", - "integrity": "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - } - ], - "license": "MIT", - "dependencies": { - "browserslist": "^4.20.3", - "caniuse-lite": "^1.0.30001335", - "fraction.js": "^4.2.0", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, - "node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.14.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", - "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/bail": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", - "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/balanced-match": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", - "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", - "dev": true, - "license": "MIT" - }, - "node_modules/batch-processor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/batch-processor/-/batch-processor-1.0.0.tgz", - "integrity": "sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg=", - "license": "MIT" - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/blueimp-md5": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz", - "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==", - "license": "MIT" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/brace-expansion/node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "license": "MIT" - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/browserslist": { - "version": "4.21.3", - "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.3.tgz", - "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001370", - "electron-to-chromium": "^1.4.202", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.5" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cachedir": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.2.0.tgz", - "integrity": "sha512-VvxA0xhNqIIfg0V9AmJkDg91DaJwryutH5rVEZAhcNi4iJFj9f+QxmAjgK1LT9I8OgToX27fypX6/MeCXVbBjQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dev": true, - "license": "MIT", - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "license": "MIT", - "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-keys/node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-keys/node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001385", - "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001385.tgz", - "integrity": "sha512-MpiCqJGhBkHgpyimE9GWmZTnyHyEEM35u115bD3QBrXpjvL/JgcP8cUhKJshfmg4OtEHFenifcK5sZayEw5tvQ==", - "dev": true - }, - "node_modules/capital-case": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", - "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", - "dev": true, - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/change-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", - "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "camel-case": "^4.1.2", - "capital-case": "^1.0.4", - "constant-case": "^3.0.4", - "dot-case": "^3.0.4", - "header-case": "^2.0.4", - "no-case": "^3.0.4", - "param-case": "^3.0.4", - "pascal-case": "^3.1.2", - "path-case": "^3.0.4", - "sentence-case": "^3.0.4", - "snake-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true, - "license": "MIT" - }, - "node_modules/chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true, - "license": "MIT" - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true, - "license": "MIT" - }, - "node_modules/clean-css": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.4.tgz", - "integrity": "sha512-nKseG8wCzEuji/4yrgM/5cthL9oTDc5UOQyFMvW/Q53oP6gLH690o1NbuTh6Y18nujr7BxlsFuS7gXLnLzKJGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 10.0" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "license": "MIT", - "dependencies": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate/node_modules/slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "dev": true, - "license": "ISC" - }, - "node_modules/clipboard": { - "version": "2.0.11", - "resolved": "https://registry.npmmirror.com/clipboard/-/clipboard-2.0.11.tgz", - "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", - "dependencies": { - "good-listener": "^1.2.2", - "select": "^1.1.2", - "tiny-emitter": "^2.0.0" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-regexp": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz", - "integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-regexp": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clone-regexp/node_modules/is-regexp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz", - "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true, - "license": "MIT" - }, - "node_modules/color": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/color/-/color-4.1.0.tgz", - "integrity": "sha512-o2rkkxyLGgYoeUy1OodXpbPAQNmlNBrirQ8ODO8QutzDiDMNdezSOZLNnusQ6pUpCQJUsaJIo9DZJKqa2HgH7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1", - "color-string": "^1.9.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/color-string": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz", - "integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "dev": true, - "license": "MIT" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "node_modules/commitizen": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/commitizen/-/commitizen-4.2.4.tgz", - "integrity": "sha512-LlZChbDzg3Ir3O2S7jSo/cgWp5/QwylQVr59K4xayVq8S4/RdKzSyJkghAiZZHfhh5t4pxunUoyeg0ml1q/7aw==", - "dev": true, - "license": "MIT", - "dependencies": { - "cachedir": "2.2.0", - "cz-conventional-changelog": "3.2.0", - "dedent": "0.7.0", - "detect-indent": "6.0.0", - "find-node-modules": "^2.1.2", - "find-root": "1.1.0", - "fs-extra": "8.1.0", - "glob": "7.1.4", - "inquirer": "6.5.2", - "is-utf8": "^0.2.1", - "lodash": "^4.17.20", - "minimist": "1.2.5", - "strip-bom": "4.0.0", - "strip-json-comments": "3.0.1" - }, - "bin": { - "commitizen": "bin/commitizen", - "cz": "bin/git-cz", - "git-cz": "bin/git-cz" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/commitizen/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/commitizen/node_modules/glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/commitizen/node_modules/graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true, - "license": "ISC" - }, - "node_modules/commitizen/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/commitizen/node_modules/strip-json-comments": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", - "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/commitizen/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true, - "license": "MIT" - }, - "node_modules/compare-func": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", - "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "license": "MIT" - }, - "node_modules/connect": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/connect/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/connect/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "license": "MIT" - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" - }, - "node_modules/constant-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", - "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case": "^2.0.2" - } - }, - "node_modules/conventional-changelog-angular": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", - "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", - "dev": true, - "license": "ISC", - "dependencies": { - "compare-func": "^2.0.0", - "q": "^1.5.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-conventionalcommits": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.1.tgz", - "integrity": "sha512-lzWJpPZhbM1R0PIzkwzGBCnAkH5RKJzJfFQZcl/D+2lsJxAwGnDKBqn/F4C1RD31GJNn8NuKWQzAZDAVXPp2Mw==", - "dev": true, - "license": "ISC", - "dependencies": { - "compare-func": "^2.0.0", - "lodash": "^4.17.15", - "q": "^1.5.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-commit-types": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz", - "integrity": "sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==", - "dev": true, - "license": "ISC" - }, - "node_modules/conventional-commits-parser": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.3.tgz", - "integrity": "sha512-YyRDR7On9H07ICFpRm/igcdjIqebXbvf4Cff+Pf0BrBys1i1EOzx9iFXNlAbdrLAR8jf7bkUYkDAr8pEy0q4Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-text-path": "^1.0.1", - "JSONStream": "^1.0.4", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "bin": { - "conventional-commits-parser": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/copy-anything": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.3.tgz", - "integrity": "sha512-GK6QUtisv4fNS+XcI7shX0Gx9ORg7QqIznyfho79JTnX1XhLiyZHfftvGiziqzRiEi/Bjhgpi+D2o7HxJFPnDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-what": "^3.12.0" - } - }, - "node_modules/core-js": { - "version": "3.23.4", - "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.23.4.tgz", - "integrity": "sha512-vjsKqRc1RyAJC3Ye2kYqgfdThb3zYnx9CrqoCcjMOENMtQPC7ZViBvlDxwYU/2z2NI/IPuiXw5mT4hWhddqjzQ==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" - }, - "node_modules/cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cross-spawn/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/css-render": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/css-render/-/css-render-0.15.10.tgz", - "integrity": "sha512-6j5acvm81sXTHJiF47FNNICtDpF74YoWk1xEK3qQvdqgW6vc+OXrPqflL6m8f5GE6XuFYrbACNEd17kraCSBAQ==", - "license": "MIT", - "dependencies": { - "@emotion/hash": "~0.8.0", - "@types/node": "~17.0.5", - "csstype": "~3.0.5" - } - }, - "node_modules/css-render/node_modules/@types/node": { - "version": "17.0.45", - "resolved": "https://registry.npmmirror.com/@types/node/-/node-17.0.45.tgz", - "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==", - "license": "MIT" - }, - "node_modules/css-render/node_modules/csstype": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", - "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==", - "license": "MIT" - }, - "node_modules/css-unit-converter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.2.tgz", - "integrity": "sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==", - "dev": true, - "license": "MIT" - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true, - "license": "MIT" - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true, - "license": "MIT" - }, - "node_modules/csstype": { - "version": "2.6.19", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.19.tgz", - "integrity": "sha512-ZVxXaNy28/k3kJg0Fou5MiYpp88j7H9hLZp8PDC3jV0WFjfH5E9xHb56L0W59cPbKbcHXeP4qyT8PrHp8t6LcQ==", - "license": "MIT" - }, - "node_modules/cz-conventional-changelog": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.2.0.tgz", - "integrity": "sha512-yAYxeGpVi27hqIilG1nh4A9Bnx4J3Ov+eXy4koL3drrR+IO9GaWPsKjik20ht608Asqi8TQPf0mczhEeyAtMzg==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.1", - "commitizen": "^4.0.3", - "conventional-commit-types": "^3.0.0", - "lodash.map": "^4.5.1", - "longest": "^2.0.1", - "word-wrap": "^1.0.3" - }, - "engines": { - "node": ">= 10" - }, - "optionalDependencies": { - "@commitlint/load": ">6.1.1" - } - }, - "node_modules/cz-conventional-changelog/node_modules/@commitlint/execute-rule": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-15.0.0.tgz", - "integrity": "sha512-pyE4ApxjbWhb1TXz5vRiGwI2ssdMMgZbaaheZq1/7WC0xRnqnIhE1yUC1D2q20qPtvkZPstTYvMiRVtF+DvjUg==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=v12" - } - }, - "node_modules/cz-conventional-changelog/node_modules/@commitlint/load": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-15.0.0.tgz", - "integrity": "sha512-Ak1YPeOhvxmY3ioe0o6m1yLGvUAYb4BdfGgShU8jiTCmU3Mnmms0Xh/kfQz8AybhezCC3AmVTyBLaBZxOHR8kg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@commitlint/execute-rule": "^15.0.0", - "@commitlint/resolve-extends": "^15.0.0", - "@commitlint/types": "^15.0.0", - "@endemolshinegroup/cosmiconfig-typescript-loader": "^3.0.2", - "chalk": "^4.0.0", - "cosmiconfig": "^7.0.0", - "lodash": "^4.17.19", - "resolve-from": "^5.0.0", - "typescript": "^4.4.3" - }, - "engines": { - "node": ">=v12" - } - }, - "node_modules/cz-conventional-changelog/node_modules/@commitlint/load/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/cz-conventional-changelog/node_modules/@commitlint/load/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/cz-conventional-changelog/node_modules/@commitlint/load/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/cz-conventional-changelog/node_modules/@commitlint/load/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/cz-conventional-changelog/node_modules/@commitlint/load/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cz-conventional-changelog/node_modules/@commitlint/load/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cz-conventional-changelog/node_modules/@commitlint/resolve-extends": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-15.0.0.tgz", - "integrity": "sha512-7apfRJjgJsKja7lHsPfEFixKjA/fk/UeD3owkOw1174yYu4u8xBDLSeU3IinGPdMuF9m245eX8wo7vLUy+EBSg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "import-fresh": "^3.0.0", - "lodash": "^4.17.19", - "resolve-from": "^5.0.0", - "resolve-global": "^1.0.0" - }, - "engines": { - "node": ">=v12" - } - }, - "node_modules/cz-conventional-changelog/node_modules/@commitlint/types": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-15.0.0.tgz", - "integrity": "sha512-OMSLX+QJnyNoTwws54ULv9sOvuw9GdVezln76oyUd4YbMMJyaav62aSXDuCdWyL2sm9hTkSzyEi52PNaIj/vqw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "chalk": "^4.0.0" - }, - "engines": { - "node": ">=v12" - } - }, - "node_modules/cz-conventional-changelog/node_modules/@commitlint/types/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/cz-conventional-changelog/node_modules/@commitlint/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/cz-conventional-changelog/node_modules/@commitlint/types/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/cz-conventional-changelog/node_modules/@commitlint/types/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/cz-conventional-changelog/node_modules/@commitlint/types/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cz-conventional-changelog/node_modules/@commitlint/types/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cz-conventional-changelog/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cz-conventional-changelog/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cz-conventional-changelog/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/cz-conventional-changelog/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true, - "license": "MIT" - }, - "node_modules/cz-conventional-changelog/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/cz-conventional-changelog/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/dargs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/date-fns": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", - "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==", - "license": "MIT", - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, - "node_modules/date-fns-tz": { - "version": "1.3.6", - "resolved": "https://registry.npmmirror.com/date-fns-tz/-/date-fns-tz-1.3.6.tgz", - "integrity": "sha512-C8q7mErvG4INw1ZwAFmPlGjEo5Sv4udjKVbTc03zpP9cu6cp5AemFzKhz0V68LGcWEtX5mJudzzg3G04emIxLA==", - "license": "MIT", - "peerDependencies": { - "date-fns": ">=2.0.0" - } - }, - "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "license": "MIT", - "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", - "dev": true, - "license": "MIT" - }, - "node_modules/deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "license": "MIT", - "dependencies": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "license": "MIT", - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true, - "license": "MIT" - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegate": { - "version": "3.2.0", - "resolved": "https://registry.npmmirror.com/delegate/-/delegate-3.2.0.tgz", - "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/detect-indent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", - "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/detective": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", - "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn-node": "^1.6.1", - "defined": "^1.0.0", - "minimist": "^1.1.1" - }, - "bin": { - "detective": "bin/detective.js" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true, - "license": "MIT" - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "node_modules/dom-serializer/node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/dom-serializer/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dev": true, - "license": "MIT", - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "1" - } - }, - "node_modules/domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dev": true, - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dot-prop/node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=10" - } - }, - "node_modules/dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/echarts": { - "version": "5.3.3", - "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.3.3.tgz", - "integrity": "sha512-BRw2serInRwO5SIwRviZ6Xgm5Lb7irgz+sLiFMmy/HOaf4SQ+7oYqxKzRHAKp4xHQ05AuHw1xvoQWJjDQq/FGw==", - "license": "Apache-2.0", - "dependencies": { - "tslib": "2.3.0", - "zrender": "5.3.2" - } - }, - "node_modules/echarts/node_modules/tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", - "license": "0BSD" - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true, - "license": "MIT" - }, - "node_modules/ejs": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", - "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "jake": "^10.6.1" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.235", - "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.235.tgz", - "integrity": "sha512-eNU2SmVZYTzYVA5aAWmhAJbdVil5/8H5nMq6kGD0Yxd4k2uKIuT8YmS46I0QXY7iOoPPcb6jjem9/2xyuH5+XQ==", - "dev": true - }, - "node_modules/element-resize-detector": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/element-resize-detector/-/element-resize-detector-1.2.4.tgz", - "integrity": "sha512-Fl5Ftk6WwXE0wqCgNoseKWndjzZlDCwuPTcoVZfCP9R3EHQF8qUtr3YUPNETegRBOKqQKPW3n4kiIWngGi8tKg==", - "license": "MIT", - "dependencies": { - "batch-processor": "1.0.0" - } - }, - "node_modules/email-addresses": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz", - "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==", - "dev": true, - "license": "MIT" - }, - "node_modules/emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.10.0", - "resolved": "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", - "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", - "dev": true, - "peer": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" - }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/esbuild": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.15.6.tgz", - "integrity": "sha512-sgLOv3l4xklvXzzczhRwKRotyrfyZ2i1fCS6PTOLPd9wevDPArGU8HFtHrHCOcsMwTjLjzGm15gvC8uxVzQf+w==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "peer": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/linux-loong64": "0.15.6", - "esbuild-android-64": "0.15.6", - "esbuild-android-arm64": "0.15.6", - "esbuild-darwin-64": "0.15.6", - "esbuild-darwin-arm64": "0.15.6", - "esbuild-freebsd-64": "0.15.6", - "esbuild-freebsd-arm64": "0.15.6", - "esbuild-linux-32": "0.15.6", - "esbuild-linux-64": "0.15.6", - "esbuild-linux-arm": "0.15.6", - "esbuild-linux-arm64": "0.15.6", - "esbuild-linux-mips64le": "0.15.6", - "esbuild-linux-ppc64le": "0.15.6", - "esbuild-linux-riscv64": "0.15.6", - "esbuild-linux-s390x": "0.15.6", - "esbuild-netbsd-64": "0.15.6", - "esbuild-openbsd-64": "0.15.6", - "esbuild-sunos-64": "0.15.6", - "esbuild-windows-32": "0.15.6", - "esbuild-windows-64": "0.15.6", - "esbuild-windows-arm64": "0.15.6" - } - }, - "node_modules/esbuild-android-64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.15.6.tgz", - "integrity": "sha512-Z1CHSgB1crVQi2LKSBwSkpaGtaloVz0ZIYcRMsvHc3uSXcR/x5/bv9wcZspvH/25lIGTaViosciS/NS09ERmVA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-android-arm64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.6.tgz", - "integrity": "sha512-mvM+gqNxqKm2pCa3dnjdRzl7gIowuc4ga7P7c3yHzs58Im8v/Lfk1ixSgQ2USgIywT48QWaACRa3F4MG7djpSw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-darwin-64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.6.tgz", - "integrity": "sha512-BsfVt3usScAfGlXJiGtGamwVEOTM8AiYiw1zqDWhGv6BncLXCnTg1As+90mxWewdTZKq3iIy8s9g8CKkrrAXVw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-darwin-arm64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.6.tgz", - "integrity": "sha512-CnrAeJaEpPakUobhqO4wVSA4Zm6TPaI5UY4EsI62j9mTrjIyQPXA1n4Ju6Iu5TVZRnEqV6q8blodgYJ6CJuwCA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-freebsd-64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.6.tgz", - "integrity": "sha512-+qFdmqi+jkAsxsNJkaWVrnxEUUI50nu6c3MBVarv3RCDCbz7ZS1a4ZrdkwEYFnKcVWu6UUE0Kkb1SQ1yGEG6sg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-freebsd-arm64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.6.tgz", - "integrity": "sha512-KtQkQOhnNciXm2yrTYZMD3MOm2zBiiwFSU+dkwNbcfDumzzUprr1x70ClTdGuZwieBS1BM/k0KajRQX7r504Xw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-32": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.15.6.tgz", - "integrity": "sha512-IAkDNz3TpxwISTGVdQijwyHBZrbFgLlRi5YXcvaEHtgbmayLSDcJmH5nV1MFgo/x2QdKcHBkOYHdjhKxUAcPwg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.29.tgz", - "integrity": "sha512-iaEuLhssReAKE7HMwxwFJFn7D/EXEs43fFy5CJeA4DGmU6JHh0qVJD2p/UP46DvUXLRKXsXw0i+kv5TdJ1w5pg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.6.tgz", - "integrity": "sha512-xZ0Bq2aivsthDjA/ytQZzxrxIZbG0ATJYMJxNeOIBc1zUjpbVpzBKgllOZMsTSXMHFHGrow6TnCcgwqY0+oEoQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.6.tgz", - "integrity": "sha512-aovDkclFa6C9EdZVBuOXxqZx83fuoq8097xZKhEPSygwuy4Lxs8J4anHG7kojAsR+31lfUuxzOo2tHxv7EiNHA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-mips64le": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.6.tgz", - "integrity": "sha512-wVpW8wkWOGizsCqCwOR/G3SHwhaecpGy3fic9BF1r7vq4djLjUcA8KunDaBCjJ6TgLQFhJ98RjDuyEf8AGjAvw==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-ppc64le": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.6.tgz", - "integrity": "sha512-z6w6gsPH/Y77uchocluDC8tkCg9rfkcPTePzZKNr879bF4tu7j9t255wuNOCE396IYEGxY7y8u2HJ9i7kjCLVw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-riscv64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.6.tgz", - "integrity": "sha512-pfK/3MJcmbfU399TnXW5RTPS1S+ID6ra+CVj9TFZ2s0q9Ja1F5A1VirUUvViPkjiw+Kq3zveyn6U09Wg1zJXrw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-s390x": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.6.tgz", - "integrity": "sha512-OZeeDu32liefcwAE63FhVqM4heWTC8E3MglOC7SK0KYocDdY/6jyApw0UDkDHlcEK9mW6alX/SH9r3PDjcCo/Q==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-netbsd-64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.6.tgz", - "integrity": "sha512-kaxw61wcHMyiEsSsi5ut1YYs/hvTC2QkxJwyRvC2Cnsz3lfMLEu8zAjpBKWh9aU/N0O/gsRap4wTur5GRuSvBA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-node-loader": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/esbuild-node-loader/-/esbuild-node-loader-0.1.1.tgz", - "integrity": "sha512-n24xYzMfKmPupUZgs0QYBr52HUSh1M1vDtBfkEVa6pdENqo5+U5WP+zaj4Iw2MinuYk1axLW8+NVutrBCkrdmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.12.6" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/esbuild-node-loader/node_modules/esbuild": { - "version": "0.12.29", - "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.12.29.tgz", - "integrity": "sha512-w/XuoBCSwepyiZtIRsKsetiLDUVGPVw1E/R3VTFSecIy8UR7Cq3SOtwKHJMFoVqqVG36aGkzh4e8BvpO1Fdc7g==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - } - }, - "node_modules/esbuild-openbsd-64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.6.tgz", - "integrity": "sha512-CuoY60alzYfIZapUHqFXqXbj88bbRJu8Fp9okCSHRX2zWIcGz4BXAHXiG7dlCye5nFVrY72psesLuWdusyf2qw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-register": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-2.6.0.tgz", - "integrity": "sha512-2u4AtnCXP5nivtIxZryiZOUcEQkOzFS7UhAqibUEmaTAThJ48gDLYTBF/Fsz+5r0hbV1jrFE6PQvPDUrKZNt/Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.12.8", - "jsonc-parser": "^3.0.0" - } - }, - "node_modules/esbuild-register/node_modules/esbuild": { - "version": "0.12.29", - "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.12.29.tgz", - "integrity": "sha512-w/XuoBCSwepyiZtIRsKsetiLDUVGPVw1E/R3VTFSecIy8UR7Cq3SOtwKHJMFoVqqVG36aGkzh4e8BvpO1Fdc7g==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - } - }, - "node_modules/esbuild-sunos-64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.6.tgz", - "integrity": "sha512-1ceefLdPWcd1nW/ZLruPEYxeUEAVX0YHbG7w+BB4aYgfknaLGotI/ZvPWUZpzhC8l1EybrVlz++lm3E6ODIJOg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-32": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.15.6.tgz", - "integrity": "sha512-pBqdOsKqCD5LRYiwF29PJRDJZi7/Wgkz46u3d17MRFmrLFcAZDke3nbdDa1c8YgY78RiemudfCeAemN8EBlIpA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.29.tgz", - "integrity": "sha512-X9cW/Wl95QjsH8WUyr3NqbmfdU72jCp71cH3pwPvI4CgBM2IeOUDdbt6oIGljPu2bf5eGDIo8K3Y3vvXCCTd8A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-arm64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.6.tgz", - "integrity": "sha512-DB3G2x9OvFEa00jV+OkDBYpufq5x/K7a6VW6E2iM896DG4ZnAvJKQksOsCPiM1DUaa+DrijXAQ/ZOcKAqf/3Hg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild/node_modules/esbuild-linux-64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.15.6.tgz", - "integrity": "sha512-gQPksyrEYfA4LJwyfTQWAZaVZCx4wpaLrSzo2+Xc9QLC+i/sMWmX31jBjrn4nLJCd79KvwCinto36QC7BEIU/A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild/node_modules/esbuild-windows-64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.15.6.tgz", - "integrity": "sha512-KpPOh4aTOo//g9Pk2oVAzXMpc9Sz9n5A9sZTmWqDSXCiiachfFhbuFlsKBGATYCVitXfmBIJ4nNYYWSOdz4hQg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true, - "license": "MIT" - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-prettier": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", - "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", - "dev": true, - "license": "MIT", - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-define-config": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/eslint-define-config/-/eslint-define-config-1.0.9.tgz", - "integrity": "sha512-LRzNlRo9sv43BAXY+nhZIUCZLRisTMEXXSqlGc2uZ8emAGyJv3FDSew2MIVRMwThexEjVxjNmeqduaexJ/GT3Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/eslint-plugin-jest": { - "version": "24.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-24.7.0.tgz", - "integrity": "sha512-wUxdF2bAZiYSKBclsUMrYHH6WxiBreNjyDxbRv345TIvPeoCEgPNEn3Sa+ZrSqsf1Dl9SqqSREXMHExlMMu1DA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/experimental-utils": "^4.0.1" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": ">= 4", - "eslint": ">=5" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-prettier": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz", - "integrity": "sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g==", - "dev": true, - "license": "MIT", - "dependencies": { - "prettier-linter-helpers": "^1.0.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "peerDependencies": { - "eslint": ">=5.0.0", - "prettier": ">=1.13.0" - }, - "peerDependenciesMeta": { - "eslint-config-prettier": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-vue": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.20.0.tgz", - "integrity": "sha512-oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-utils": "^2.1.0", - "natural-compare": "^1.4.0", - "semver": "^6.3.0", - "vue-eslint-parser": "^7.10.0" - }, - "engines": { - "node": ">=8.10" - }, - "peerDependencies": { - "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-scope/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint/node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", - "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/eslint/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/esno": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/esno/-/esno-0.7.3.tgz", - "integrity": "sha512-ONTHZLBipMC9uK9oqASzqYGCrjcqp/N0NXt/Q0WpYw/Ikm9he+rYER2ATx6czaFcMvwrbIXBlNe9hSEiTrNKow==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "esbuild": "^0.12.8", - "esbuild-node-loader": "^0.1.1", - "esbuild-register": "^2.6.0" - }, - "bin": { - "esmo": "esmo.mjs", - "esno": "esno.js" - } - }, - "node_modules/esno/node_modules/esbuild": { - "version": "0.12.29", - "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.12.29.tgz", - "integrity": "sha512-w/XuoBCSwepyiZtIRsKsetiLDUVGPVw1E/R3VTFSecIy8UR7Cq3SOtwKHJMFoVqqVG36aGkzh4e8BvpO1Fdc7g==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - } - }, - "node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/espree/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "license": "MIT" - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eventemitter3": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz", - "integrity": "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo=", - "license": "MIT" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmmirror.com/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/evtd": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/evtd/-/evtd-0.2.3.tgz", - "integrity": "sha512-tmiT1YUVqFjTY+BSBOAskL83xNx41iUfpvKP6Gcd/xMHjg3mnER98jXGXJyKnxCG19uPc6EhZiUC+MUyvoqCtw==", - "license": "MIT" - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/execall": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", - "integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==", - "dev": true, - "license": "MIT", - "dependencies": { - "clone-regexp": "^2.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "license": "MIT", - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expect": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "license": "MIT" - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "license": "MIT", - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/external-editor/node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "license": "MIT" - }, - "node_modules/fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "license": "Apache-2.0" - }, - "node_modules/fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true, - "license": "MIT" - }, - "node_modules/fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", - "dev": true, - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/filelist": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", - "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "minimatch": "^3.0.4" - } - }, - "node_modules/filename-reserved-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", - "integrity": "sha1-q/c9+rc10EVECr/qLZHzieu/oik=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/filenamify": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", - "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "filename-reserved-regex": "^2.0.0", - "strip-outer": "^1.0.1", - "trim-repeated": "^1.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "license": "MIT" - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-node-modules": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.1.2.tgz", - "integrity": "sha512-x+3P4mbtRPlSiVE1Qco0Z4YLU8WFiFcuWTf3m75OV9Uzcfs2Bg+O9N+r/K0AnmINBW06KpfqKwYJbFlFq4qNug==", - "dev": true, - "license": "MIT", - "dependencies": { - "findup-sync": "^4.0.0", - "merge": "^2.1.0" - } - }, - "node_modules/find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "dev": true, - "license": "MIT" - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/findup-sync": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz", - "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^4.0.2", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", - "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", - "dev": true, - "license": "ISC" - }, - "node_modules/follow-redirects": { - "version": "1.14.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.6.tgz", - "integrity": "sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://www.patreon.com/infusion" - } - }, - "node_modules/fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fs-extra/node_modules/graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true, - "license": "ISC" - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "license": "ISC" - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "license": "MIT" - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true, - "license": "MIT" - }, - "node_modules/gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", - "dependencies": { - "globule": "^1.0.0" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "dev": true, - "license": "ISC" - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/gh-pages": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-3.2.3.tgz", - "integrity": "sha512-jA1PbapQ1jqzacECfjUaO9gV8uBgU6XNMV0oXLtfCX3haGLe5Atq8BxlrADhbD6/UdG9j6tZLWAkAybndOXTJg==", - "dev": true, - "license": "MIT", - "dependencies": { - "async": "^2.6.1", - "commander": "^2.18.0", - "email-addresses": "^3.0.1", - "filenamify": "^4.3.0", - "find-cache-dir": "^3.3.1", - "fs-extra": "^8.1.0", - "globby": "^6.1.0" - }, - "bin": { - "gh-pages": "bin/gh-pages.js", - "gh-pages-clean": "bin/gh-pages-clean.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/gh-pages/node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "license": "MIT", - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gh-pages/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/gh-pages/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/gh-pages/node_modules/globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gh-pages/node_modules/graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true, - "license": "ISC" - }, - "node_modules/gh-pages/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/gh-pages/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/git-raw-commits": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.10.tgz", - "integrity": "sha512-sHhX5lsbG9SOO6yXdlwgEMQ/ljIn7qMpAbJZCGfXX2fq5T8M5SrDnpYk9/4HswTildcIqatsWa91vty6VhWSaQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "dargs": "^7.0.0", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "bin": { - "git-raw-commits": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true, - "peer": true - }, - "node_modules/global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", - "dev": true, - "license": "MIT", - "dependencies": { - "ini": "^1.3.4" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globjoin": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", - "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", - "dev": true, - "license": "MIT" - }, - "node_modules/globule": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.4.tgz", - "integrity": "sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==", - "dependencies": { - "glob": "~7.1.1", - "lodash": "^4.17.21", - "minimatch": "~3.0.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/globule/node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/gonzales-pe": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", - "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "gonzales": "bin/gonzales.js" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/good-listener": { - "version": "1.2.2", - "resolved": "https://registry.npmmirror.com/good-listener/-/good-listener-1.2.2.tgz", - "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", - "dependencies": { - "delegate": "^3.1.2" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", - "license": "ISC" - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" - }, - "node_modules/hash-sum": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", - "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", - "dev": true, - "license": "MIT" - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, - "node_modules/header-case": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", - "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "capital-case": "^1.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", - "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/highlight.js": { - "version": "11.6.0", - "resolved": "https://registry.npmmirror.com/highlight.js/-/highlight.js-11.6.0.tgz", - "integrity": "sha512-ig1eqDzJaB0pqEvlPVIpSSyMaO92bH1N2rJpLMN/nX396wTpDA4Eq0uK+7I/2XG17pFaaKE0kjV/XPeGt7Evjw==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "license": "MIT", - "dependencies": { - "parse-passwd": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hosted-git-info": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", - "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", - "dev": true, - "license": "MIT" - }, - "node_modules/hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", - "dev": true, - "license": "MIT" - }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true, - "license": "MIT" - }, - "node_modules/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", - "dev": true, - "license": "MIT", - "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/html-tags": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", - "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "license": "MIT", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/husky": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/husky/-/husky-6.0.0.tgz", - "integrity": "sha512-SQS2gDTB7tBN486QSoKPKQItZw97BMOd+Kdb6ghfpBc0yXyzrddI0oDV5MkDAbuB4X2mO3/nj60TRMcYxwzZeQ==", - "dev": true, - "license": "MIT", - "bin": { - "husky": "lib/bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "dev": true, - "license": "MIT", - "optional": true, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/import-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", - "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", - "dev": true, - "license": "MIT", - "dependencies": { - "import-from": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/import-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", - "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", - "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==", - "dev": true, - "license": "MIT", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true, - "license": "ISC" - }, - "node_modules/inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/inquirer/node_modules/ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/inquirer/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/inquirer/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true, - "license": "MIT" - }, - "node_modules/inquirer/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/string-width/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/string-width/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/inquirer/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" - }, - "node_modules/is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "license": "MIT" - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "dev": true, - "license": "MIT", - "dependencies": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, - "node_modules/is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", - "license": "MIT", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" - }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", - "dev": true, - "license": "MIT" - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", - "dev": true, - "license": "MIT", - "dependencies": { - "text-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "license": "MIT" - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true, - "license": "MIT" - }, - "node_modules/is-what": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", - "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "license": "ISC" - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jake": { - "version": "10.8.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", - "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "async": "0.9.x", - "chalk": "^2.4.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jake/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/jake/node_modules/async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", - "dev": true, - "license": "MIT" - }, - "node_modules/jake/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/jake/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/jake/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true, - "license": "MIT" - }, - "node_modules/jake/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/jake/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", - "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/core": "^27.5.1", - "import-local": "^3.0.2", - "jest-cli": "^27.5.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", - "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", - "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus/node_modules/@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-cli": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-config": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", - "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-config/node_modules/babel-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", - "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/jest-config/node_modules/babel-preset-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", - "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", - "dev": true, - "license": "MIT", - "dependencies": { - "babel-plugin-jest-hoist": "^27.5.1", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-docblock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", - "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-jsdom": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", - "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-jsdom/node_modules/@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-environment-node": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", - "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-node/node_modules/@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-haste-map/node_modules/@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-jasmine2": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", - "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-jasmine2/node_modules/@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-leak-detector": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", - "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-mock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", - "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-mock/node_modules/@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", - "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", - "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runner": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", - "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runner/node_modules/@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-runtime": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", - "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-serializer/node_modules/@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-snapshot": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", - "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-util/node_modules/@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-validate": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "leven": "^3.1.0", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watcher": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", - "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.5.1", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-watcher/node_modules/@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" - }, - "node_modules/jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dev": true, - "license": "MIT", - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "license": "MIT" - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" - }, - "node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonc-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", - "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", - "dev": true, - "license": "MIT" - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonfile/node_modules/graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true, - "license": "ISC", - "optional": true - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true, - "engines": [ - "node >= 0.2.0" - ], - "license": "MIT" - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "license": "(MIT OR Apache-2.0)", - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/klona": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", - "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/known-css-properties": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.21.0.tgz", - "integrity": "sha512-sZLUnTqimCkvkgRS+kbPlYW5o8q5w1cu+uIisKpEWkj31I8mx8kNG162DwRav8Zirkva6N5uoFsm9kzK4mUXjw==", - "dev": true, - "license": "MIT" - }, - "node_modules/less": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/less/-/less-4.1.2.tgz", - "integrity": "sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "copy-anything": "^2.0.1", - "parse-node-version": "^1.0.1", - "tslib": "^2.3.0" - }, - "bin": { - "lessc": "bin/lessc" - }, - "engines": { - "node": ">=6" - }, - "optionalDependencies": { - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "make-dir": "^2.1.0", - "mime": "^1.4.1", - "needle": "^2.5.2", - "source-map": "~0.6.0" - } - }, - "node_modules/less-loader": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-9.1.0.tgz", - "integrity": "sha512-/BPur/W4NaDBvw4A7pTGMtKpAsAnexeJdw2VWRVzWEQCNX2FboFa1GUIFwkzBFwX5x/q7M/Srtng96QnhV5wIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "klona": "^2.0.4" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "less": "^3.5.0 || ^4.0.0", - "webpack": "^5.0.0" - } - }, - "node_modules/less/node_modules/graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true, - "license": "ISC", - "optional": true - }, - "node_modules/less/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/less/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/less/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "license": "ISC", - "optional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/levn/node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/levn/node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lilconfig": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", - "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "license": "MIT" - }, - "node_modules/lint-staged": { - "version": "11.2.6", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.2.6.tgz", - "integrity": "sha512-Vti55pUnpvPE0J9936lKl0ngVeTdSZpEdTNhASbkaWX7J5R9OEifo1INBGQuGW4zmy6OG+TcWPJ3m5yuy5Q8Tg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cli-truncate": "2.1.0", - "colorette": "^1.4.0", - "commander": "^8.2.0", - "cosmiconfig": "^7.0.1", - "debug": "^4.3.2", - "enquirer": "^2.3.6", - "execa": "^5.1.1", - "listr2": "^3.12.2", - "micromatch": "^4.0.4", - "normalize-path": "^3.0.0", - "please-upgrade-node": "^3.2.0", - "string-argv": "0.3.1", - "stringify-object": "3.3.0", - "supports-color": "8.1.1" - }, - "bin": { - "lint-staged": "bin/lint-staged.js" - }, - "funding": { - "url": "https://opencollective.com/lint-staged" - } - }, - "node_modules/lint-staged/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/listr2": { - "version": "3.13.5", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.13.5.tgz", - "integrity": "sha512-3n8heFQDSk+NcwBn3CgxEibZGaRzx+pC64n3YjpMD1qguV4nWus3Al+Oo3KooqFKTQEJ1v7MmnbnyyNspgx3NA==", - "dev": true, - "license": "MIT", - "dependencies": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.16", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rfdc": "^1.3.0", - "rxjs": "^7.4.0", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "enquirer": ">= 2.3.0 < 3" - }, - "peerDependenciesMeta": { - "enquirer": { - "optional": true - } - } - }, - "node_modules/listr2/node_modules/colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", - "dev": true, - "license": "MIT" - }, - "node_modules/listr2/node_modules/rxjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz", - "integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "~2.1.0" - } - }, - "node_modules/listr2/node_modules/tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true, - "license": "0BSD" - }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/local-pkg": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.1.tgz", - "integrity": "sha512-lL87ytIGP2FU5PWwNDo0w3WhIo2gopIAxPg9RxDYF7m4rr5ahuZxP22xnJHIvaLTe4Z9P6uKKY2UHiwyB4pcrw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "license": "MIT" - }, - "node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "license": "MIT" - }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "license": "MIT" - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", - "license": "MIT" - }, - "node_modules/lodash.map": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", - "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.topath": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/lodash.topath/-/lodash.topath-4.5.2.tgz", - "integrity": "sha1-NhY1Hzu6YZlKCTGYlmC9AyVP0Ak=", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true, - "license": "MIT" - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-update/node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/longest": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz", - "integrity": "sha1-eB4YMpaqlPbU2RbcM10NF676I/g=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/longest-streak": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", - "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", - "license": "MIT", - "dependencies": { - "sourcemap-codec": "^1.4.4" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true, - "license": "ISC", - "optional": true - }, - "node_modules/make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mathml-tag-names": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", - "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/mdast-util-from-markdown": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", - "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-string": "^2.0.0", - "micromark": "~2.11.0", - "parse-entities": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-markdown": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz", - "integrity": "sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "longest-streak": "^2.0.0", - "mdast-util-to-string": "^2.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.0.0", - "zwitch": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", - "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz", - "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==", - "dev": true, - "license": "MIT" - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true, - "license": "MIT" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromark": { - "version": "2.11.4", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", - "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "debug": "^4.0.0", - "parse-entities": "^2.0.0" - } - }, - "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "license": "MIT", - "optional": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "license": "MIT", - "dependencies": { - "mime-db": "1.51.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true, - "license": "MIT" - }, - "node_modules/minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "license": "MIT", - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/minipass": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz", - "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", - "dependencies": { - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "optionalDependencies": { - "encoding": "^0.1.12" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/mitt": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-2.1.0.tgz", - "integrity": "sha512-ILj2TpLiysu2wkBbWjAmww7TkZb65aiQO+DkVdUTBpBXq+MHYiETENkKFMtsJZX1Lf4pe4QOrTSjIfUwN5lRdg==", - "license": "MIT" - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mockjs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mockjs/-/mockjs-1.1.0.tgz", - "integrity": "sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==", - "dependencies": { - "commander": "*" - }, - "bin": { - "random": "bin/random" - } - }, - "node_modules/modern-normalize": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/modern-normalize/-/modern-normalize-1.1.0.tgz", - "integrity": "sha512-2lMlY1Yc1+CUy0gw4H95uNN7vjbpoED7NNRSBHE25nWfLBdmMzFCsPshlzbxHz+gYMcBEUN8V4pU16prcdPSgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "license": "MIT" - }, - "node_modules/multimatch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", - "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/multimatch/node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true, - "license": "ISC" - }, - "node_modules/naive-ui": { - "version": "2.31.0", - "resolved": "https://registry.npmmirror.com/naive-ui/-/naive-ui-2.31.0.tgz", - "integrity": "sha512-70PHh1wDo6GP87MquQE4hHxMaISX6y/SWwmAzS86XfK+1gBCpQPcANHrmxsjPncRxk6Zq9CDeW6tzAqw6qUtfA==", - "license": "MIT", - "dependencies": { - "@css-render/plugin-bem": "^0.15.10", - "@css-render/vue3-ssr": "^0.15.10", - "@types/lodash": "^4.14.181", - "@types/lodash-es": "^4.17.6", - "async-validator": "^4.0.7", - "css-render": "^0.15.10", - "date-fns": "^2.28.0", - "date-fns-tz": "^1.3.3", - "evtd": "^0.2.3", - "highlight.js": "^11.5.0", - "lodash": "^4.17.21", - "lodash-es": "^4.17.21", - "seemly": "^0.3.4", - "treemate": "^0.3.11", - "vdirs": "^0.1.8", - "vooks": "^0.2.12", - "vueuc": "^0.4.47" - }, - "peerDependencies": { - "vue": "^3.0.0" - } - }, - "node_modules/naive-ui/node_modules/@types/lodash": { - "version": "4.14.181", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.181.tgz", - "integrity": "sha512-n3tyKthHJbkiWhDZs3DkhkCzt2MexYHXlX0td5iMplyfwketaOeKboEVBqzceH7juqvEg3q5oUoBFxSLu7zFag==", - "license": "MIT" - }, - "node_modules/nan": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz", - "integrity": "sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA==" - }, - "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true, - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true, - "license": "MIT" - }, - "node_modules/needle": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", - "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, - "engines": { - "node": ">= 4.4.x" - } - }, - "node_modules/needle/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/needle/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true, - "peer": true - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dev": true, - "license": "MIT", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-emoji": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", - "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash": "^4.17.21" - } - }, - "node_modules/node-gyp": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", - "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", - "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^9.1.0", - "nopt": "^5.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 10.12.0" - } - }, - "node_modules/node-gyp/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/node-gyp/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/node-gyp/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/node-gyp/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-gyp/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true, - "license": "MIT" - }, - "node_modules/node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", - "dev": true - }, - "node_modules/node-sass": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-7.0.3.tgz", - "integrity": "sha512-8MIlsY/4dXUkJDYht9pIWBhMil3uHmE8b/AdJPjmFn1nBx9X9BASzfzmsCy0uCCb8eqI3SYYzVPDswWqSx7gjw==", - "hasInstallScript": true, - "dependencies": { - "async-foreach": "^0.1.3", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "gaze": "^1.0.0", - "get-stdin": "^4.0.1", - "glob": "^7.0.3", - "lodash": "^4.17.15", - "meow": "^9.0.0", - "nan": "^2.13.2", - "node-gyp": "^8.4.1", - "npmlog": "^5.0.0", - "request": "^2.88.0", - "sass-graph": "^4.0.1", - "stdout-stream": "^1.4.0", - "true-case-path": "^1.0.2" - }, - "bin": { - "node-sass": "bin/node-sass" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/node-sass/node_modules/get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/node-sass/node_modules/meow": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", - "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize": "^1.2.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-selector": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", - "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=", - "dev": true, - "license": "MIT" - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "dependencies": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, - "node_modules/num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true, - "license": "MIT" - }, - "node_modules/nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/optionator/node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/optionator/node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dev": true, - "license": "MIT", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/parchment": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/parchment/-/parchment-1.1.4.tgz", - "integrity": "sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg==", - "license": "BSD-3-Clause" - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true, - "license": "MIT" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dev": true, - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/path-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", - "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "license": "MIT" - }, - "node_modules/path-to-regexp": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.0.tgz", - "integrity": "sha512-f66KywYG6+43afgE/8j/GoiNyygk/bnoCbps++3ErRKsIYkGGupyv07R2Ok5m9i67Iqc+T2g1eAUGUPzWhYTyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinia": { - "version": "2.0.16", - "resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.0.16.tgz", - "integrity": "sha512-9/LMVO+/epny1NBfC77vnps4g3JRezxhhoF1xLUk8mZkUIxVnwfEAIRiAX8mYBTD/KCwZqnDMqXc8w3eU0FQGg==", - "license": "MIT", - "dependencies": { - "@vue/devtools-api": "^6.1.4", - "vue-demi": "*" - }, - "funding": { - "url": "https://github.com/sponsors/posva" - }, - "peerDependencies": { - "@vue/composition-api": "^1.4.0", - "typescript": ">=4.4.4", - "vue": "^2.6.14 || ^3.2.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "license": "MIT", - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver-compare": "^1.0.0" - } - }, - "node_modules/postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-js": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-3.0.3.tgz", - "integrity": "sha512-gWnoWQXKFw65Hk/mi2+WTQTHdPD5UJdDXZmX073EY/B3BWnYjO4F4t0VneTCnCGQ5E5GsCdMkzPaTXwl3r5dJw==", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase-css": "^2.0.1", - "postcss": "^8.1.6" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-js/node_modules/nanoid": { - "version": "3.1.30", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", - "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", - "dev": true, - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/postcss-js/node_modules/postcss": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", - "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", - "dev": true, - "license": "MIT", - "dependencies": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-js/node_modules/source-map-js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", - "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-less": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-3.1.4.tgz", - "integrity": "sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss": "^7.0.14" - }, - "engines": { - "node": ">=6.14.4" - } - }, - "node_modules/postcss-less/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true, - "license": "ISC" - }, - "node_modules/postcss-less/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-load-config": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.0.tgz", - "integrity": "sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "import-cwd": "^3.0.0", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - }, - "engines": { - "node": ">= 10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-media-query-parser": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", - "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss-nested": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", - "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.6" - }, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-resolve-nested-selector": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", - "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss-safe-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz", - "integrity": "sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss": "^7.0.26" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-safe-parser/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true, - "license": "ISC" - }, - "node_modules/postcss-safe-parser/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-sass": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.4.4.tgz", - "integrity": "sha512-BYxnVYx4mQooOhr+zer0qWbSPYnarAy8ZT7hAQtbxtgVf8gy+LSLT/hHGe35h14/pZDTw1DsxdbrwxBN++H+fg==", - "dev": true, - "license": "MIT", - "dependencies": { - "gonzales-pe": "^4.3.0", - "postcss": "^7.0.21" - } - }, - "node_modules/postcss-sass/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true, - "license": "ISC" - }, - "node_modules/postcss-sass/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-scss": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-2.1.1.tgz", - "integrity": "sha512-jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss": "^7.0.6" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-scss/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true, - "license": "ISC" - }, - "node_modules/postcss-scss/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.8", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.8.tgz", - "integrity": "sha512-D5PG53d209Z1Uhcc0qAZ5U3t5HagH3cxu+WLZ22jt3gLUpXM4eXXfiO14jiDWST3NNooX/E8wISfOhZ9eIjGTQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-sorting": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-5.0.1.tgz", - "integrity": "sha512-Y9fUFkIhfrm6i0Ta3n+89j56EFqaNRdUKqXyRp6kvTcSXnmgEjaVowCXH+JBe9+YKWqd4nc28r2sgwnzJalccA==", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash": "^4.17.14", - "postcss": "^7.0.17" - }, - "engines": { - "node": ">=8.7.0" - } - }, - "node_modules/postcss-sorting/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true, - "license": "ISC" - }, - "node_modules/postcss-sorting/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "2.7.1", - "resolved": "https://registry.npmmirror.com/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pretty-quick": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-3.1.3.tgz", - "integrity": "sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^3.0.0", - "execa": "^4.0.0", - "find-up": "^4.1.0", - "ignore": "^5.1.4", - "mri": "^1.1.5", - "multimatch": "^4.0.0" - }, - "bin": { - "pretty-quick": "bin/pretty-quick.js" - }, - "engines": { - "node": ">=10.13" - }, - "peerDependencies": { - "prettier": ">=2.0.0" - } - }, - "node_modules/pretty-quick/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pretty-quick/node_modules/execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/pretty-quick/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pretty-quick/node_modules/human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=8.12.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==" - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "license": "MIT" - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/purgecss": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-4.1.3.tgz", - "integrity": "sha512-99cKy4s+VZoXnPxaoM23e5ABcP851nC2y2GROkkjS8eJaJtlciGavd7iYAw2V84WeBqggZ12l8ef44G99HmTaw==", - "dev": true, - "license": "MIT", - "dependencies": { - "commander": "^8.0.0", - "glob": "^7.1.7", - "postcss": "^8.3.5", - "postcss-selector-parser": "^6.0.6" - }, - "bin": { - "purgecss": "bin/purgecss.js" - } - }, - "node_modules/purgecss/node_modules/nanoid": { - "version": "3.1.30", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", - "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", - "dev": true, - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/purgecss/node_modules/postcss": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", - "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", - "dev": true, - "license": "MIT", - "dependencies": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/purgecss/node_modules/source-map-js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", - "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/quill": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/quill/-/quill-1.3.7.tgz", - "integrity": "sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==", - "license": "BSD-3-Clause", - "dependencies": { - "clone": "^2.1.1", - "deep-equal": "^1.0.1", - "eventemitter3": "^2.0.3", - "extend": "^3.0.2", - "parchment": "^1.1.4", - "quill-delta": "^3.6.2" - } - }, - "node_modules/quill-delta": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-4.2.2.tgz", - "integrity": "sha512-qjbn82b/yJzOjstBgkhtBjN2TNK+ZHP/BgUQO+j6bRhWQQdmj2lH6hXG7+nwwLF41Xgn//7/83lxs9n2BkTtTg==", - "license": "MIT", - "dependencies": { - "fast-diff": "1.2.0", - "lodash.clonedeep": "^4.5.0", - "lodash.isequal": "^4.5.0" - } - }, - "node_modules/quill/node_modules/fast-diff": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz", - "integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==", - "license": "Apache-2.0" - }, - "node_modules/quill/node_modules/quill-delta": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-3.6.3.tgz", - "integrity": "sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==", - "license": "MIT", - "dependencies": { - "deep-equal": "^1.0.1", - "extend": "^3.0.2", - "fast-diff": "1.1.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "peer": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "license": "MIT" - }, - "node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "license": "MIT", - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "license": "MIT", - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "license": "ISC" - }, - "node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "license": "MIT", - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/reduce-css-calc": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz", - "integrity": "sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg==", - "dev": true, - "license": "MIT", - "dependencies": { - "css-unit-converter": "^1.1.1", - "postcss-value-parser": "^3.3.0" - } - }, - "node_modules/reduce-css-calc/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/remark": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/remark/-/remark-13.0.0.tgz", - "integrity": "sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==", - "dev": true, - "license": "MIT", - "dependencies": { - "remark-parse": "^9.0.0", - "remark-stringify": "^9.0.0", - "unified": "^9.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-parse": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", - "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", - "dev": true, - "license": "MIT", - "dependencies": { - "mdast-util-from-markdown": "^0.8.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-stringify": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-9.0.1.tgz", - "integrity": "sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==", - "dev": true, - "license": "MIT", - "dependencies": { - "mdast-util-to-markdown": "^0.6.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/request/node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "license": "MIT", - "dependencies": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-dir/node_modules/global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "license": "MIT", - "dependencies": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-dir/node_modules/global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "license": "MIT", - "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-global": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", - "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==", - "dev": true, - "license": "MIT", - "dependencies": { - "global-dirs": "^0.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/restore-cursor/node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/restore-cursor/node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true, - "license": "MIT" - }, - "node_modules/rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", - "dev": true, - "license": "MIT" - }, - "node_modules/rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", - "dev": true, - "license": "MIT" - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "2.61.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.61.1.tgz", - "integrity": "sha512-BbTXlEvB8d+XFbK/7E5doIcRtxWPRiqr0eb5vQ0+2paMM04Ye4PZY5nHOQef2ix24l/L0SpLd5hwcH15QHPdvA==", - "dev": true, - "license": "MIT", - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/rxjs/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true, - "license": "0BSD" - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT" - }, - "node_modules/sass-graph": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-4.0.1.tgz", - "integrity": "sha512-5YCfmGBmxoIRYHnKK2AKzrAkCoQ8ozO+iumT8K4tXJXRVCPf+7s1/9KxTSW3Rbvf+7Y7b4FR3mWyLnQr3PHocA==", - "dependencies": { - "glob": "^7.0.0", - "lodash": "^4.17.11", - "scss-tokenizer": "^0.4.3", - "yargs": "^17.2.1" - }, - "bin": { - "sassgraph": "bin/sassgraph" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/sass-graph/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/sass-graph/node_modules/yargs": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.0.tgz", - "integrity": "sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g==", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/sass-graph/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "engines": { - "node": ">=12" - } - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true, - "license": "ISC", - "optional": true - }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "license": "ISC", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "peer": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/scss-tokenizer": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.4.3.tgz", - "integrity": "sha512-raKLgf1LI5QMQnG+RxHz6oK0sL3x3I4FN2UDLqgLOGO8hodECNnNh5BXn7fAyBxrA8zVzdQizQ6XjNJQ+uBwMw==", - "dependencies": { - "js-base64": "^2.4.9", - "source-map": "^0.7.3" - } - }, - "node_modules/scss-tokenizer/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/seemly": { - "version": "0.3.5", - "resolved": "https://registry.npmmirror.com/seemly/-/seemly-0.3.5.tgz", - "integrity": "sha512-Z0QAytAEpkAeWbQZBQ+zb+9YYn86+AFBdWA4y7FwFtJ+ZcIO55QEVdT0sJ0DxuX8FWD4UTuwaftz/UX+MmHlhw==", - "license": "MIT" - }, - "node_modules/select": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/select/-/select-1.1.2.tgz", - "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==" - }, - "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "dev": true, - "license": "MIT" - }, - "node_modules/sentence-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", - "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "peer": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true, - "license": "MIT" - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", - "dev": true, - "license": "MIT", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/socks": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.0.tgz", - "integrity": "sha512-scnOe9y4VuiNUULJN72GrM26BNOjVsfPXI+j+98PkyEfsIXroa5ofyjT+FzGvn/xHs73U2JtoBYAVx9Hl4quSA==", - "dependencies": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/sortablejs": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.14.0.tgz", - "integrity": "sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==", - "license": "MIT" - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "license": "MIT" - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "license": "Apache-2.0", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "license": "CC-BY-3.0" - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", - "license": "CC0-1.0" - }, - "node_modules/specificity": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz", - "integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==", - "dev": true, - "license": "MIT", - "bin": { - "specificity": "bin/specificity" - } - }, - "node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dev": true, - "license": "ISC", - "dependencies": { - "readable-stream": "^3.0.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/stdout-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", - "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", - "dependencies": { - "readable-stream": "^2.0.1" - } - }, - "node_modules/stdout-stream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/stdout-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/string-argv": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6.19" - } - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "license": "MIT", - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strip-outer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", - "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^1.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/style-search": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", - "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", - "dev": true, - "license": "ISC" - }, - "node_modules/stylelint": { - "version": "13.13.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-13.13.1.tgz", - "integrity": "sha512-Mv+BQr5XTUrKqAXmpqm6Ddli6Ief+AiPZkRsIrAoUKFuq/ElkUh9ZMYxXD0iQNZ5ADghZKLOWz1h7hTClB7zgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@stylelint/postcss-css-in-js": "^0.37.2", - "@stylelint/postcss-markdown": "^0.36.2", - "autoprefixer": "^9.8.6", - "balanced-match": "^2.0.0", - "chalk": "^4.1.1", - "cosmiconfig": "^7.0.0", - "debug": "^4.3.1", - "execall": "^2.0.0", - "fast-glob": "^3.2.5", - "fastest-levenshtein": "^1.0.12", - "file-entry-cache": "^6.0.1", - "get-stdin": "^8.0.0", - "global-modules": "^2.0.0", - "globby": "^11.0.3", - "globjoin": "^0.1.4", - "html-tags": "^3.1.0", - "ignore": "^5.1.8", - "import-lazy": "^4.0.0", - "imurmurhash": "^0.1.4", - "known-css-properties": "^0.21.0", - "lodash": "^4.17.21", - "log-symbols": "^4.1.0", - "mathml-tag-names": "^2.1.3", - "meow": "^9.0.0", - "micromatch": "^4.0.4", - "normalize-selector": "^0.2.0", - "postcss": "^7.0.35", - "postcss-html": "^0.36.0", - "postcss-less": "^3.1.4", - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-safe-parser": "^4.0.2", - "postcss-sass": "^0.4.4", - "postcss-scss": "^2.1.1", - "postcss-selector-parser": "^6.0.5", - "postcss-syntax": "^0.36.2", - "postcss-value-parser": "^4.1.0", - "resolve-from": "^5.0.0", - "slash": "^3.0.0", - "specificity": "^0.4.1", - "string-width": "^4.2.2", - "strip-ansi": "^6.0.0", - "style-search": "^0.1.0", - "sugarss": "^2.0.0", - "svg-tags": "^1.0.0", - "table": "^6.6.0", - "v8-compile-cache": "^2.3.0", - "write-file-atomic": "^3.0.3" - }, - "bin": { - "stylelint": "bin/stylelint.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" - } - }, - "node_modules/stylelint-config-prettier": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/stylelint-config-prettier/-/stylelint-config-prettier-8.0.2.tgz", - "integrity": "sha512-TN1l93iVTXpF9NJstlvP7nOu9zY2k+mN0NSFQ/VEGz15ZIP9ohdDZTtCWHs5LjctAhSAzaILULGbgiM0ItId3A==", - "dev": true, - "license": "MIT", - "bin": { - "stylelint-config-prettier": "bin/check.js", - "stylelint-config-prettier-check": "bin/check.js" - }, - "engines": { - "node": ">= 10", - "npm": ">= 5" - }, - "peerDependencies": { - "stylelint": ">=11.0.0" - } - }, - "node_modules/stylelint-config-recommended": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-5.0.0.tgz", - "integrity": "sha512-c8aubuARSu5A3vEHLBeOSJt1udOdS+1iue7BmJDTSXoCBmfEQmmWX+59vYIj3NQdJBY6a/QRv1ozVFpaB9jaqA==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "stylelint": "^13.13.0" - } - }, - "node_modules/stylelint-config-standard": { - "version": "22.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-22.0.0.tgz", - "integrity": "sha512-uQVNi87SHjqTm8+4NIP5NMAyY/arXrBgimaaT7skvRfE9u3JKXRK9KBkbr4pVmeciuCcs64kAdjlxfq6Rur7Hw==", - "dev": true, - "license": "MIT", - "dependencies": { - "stylelint-config-recommended": "^5.0.0" - }, - "peerDependencies": { - "stylelint": "^13.13.0" - } - }, - "node_modules/stylelint-order": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-4.1.0.tgz", - "integrity": "sha512-sVTikaDvMqg2aJjh4r48jsdfmqLT+nqB1MOsaBnvM3OwLx4S+WXcsxsgk5w18h/OZoxZCxuyXMh61iBHcj9Qiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash": "^4.17.15", - "postcss": "^7.0.31", - "postcss-sorting": "^5.0.1" - }, - "peerDependencies": { - "stylelint": "^10.0.1 || ^11.0.0 || ^12.0.0 || ^13.0.0" - } - }, - "node_modules/stylelint-order/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true, - "license": "ISC" - }, - "node_modules/stylelint-order/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/stylelint-scss": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-3.21.0.tgz", - "integrity": "sha512-CMI2wSHL+XVlNExpauy/+DbUcB/oUZLARDtMIXkpV/5yd8nthzylYd1cdHeDMJVBXeYHldsnebUX6MoV5zPW4A==", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash": "^4.17.15", - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "peerDependencies": { - "stylelint": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0" - } - }, - "node_modules/stylelint/node_modules/@stylelint/postcss-css-in-js": { - "version": "0.37.2", - "resolved": "https://registry.npmjs.org/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz", - "integrity": "sha512-nEhsFoJurt8oUmieT8qy4nk81WRHmJynmVwn/Vts08PL9fhgIsMhk1GId5yAN643OzqEEb5S/6At2TZW7pqPDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": ">=7.9.0" - }, - "peerDependencies": { - "postcss": ">=7.0.0", - "postcss-syntax": ">=0.36.2" - } - }, - "node_modules/stylelint/node_modules/@stylelint/postcss-markdown": { - "version": "0.36.2", - "resolved": "https://registry.npmjs.org/@stylelint/postcss-markdown/-/postcss-markdown-0.36.2.tgz", - "integrity": "sha512-2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "remark": "^13.0.0", - "unist-util-find-all-after": "^3.0.2" - }, - "peerDependencies": { - "postcss": ">=7.0.0", - "postcss-syntax": ">=0.36.2" - } - }, - "node_modules/stylelint/node_modules/autoprefixer": { - "version": "9.8.8", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", - "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001109", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "picocolors": "^0.2.1", - "postcss": "^7.0.32", - "postcss-value-parser": "^4.1.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - } - }, - "node_modules/stylelint/node_modules/meow": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", - "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize": "^1.2.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stylelint/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true, - "license": "ISC" - }, - "node_modules/stylelint/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/stylelint/node_modules/postcss-html": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.36.0.tgz", - "integrity": "sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==", - "dev": true, - "license": "MIT", - "dependencies": { - "htmlparser2": "^3.10.0" - }, - "peerDependencies": { - "postcss": ">=5.0.0", - "postcss-syntax": ">=0.36.0" - } - }, - "node_modules/stylelint/node_modules/postcss-syntax": { - "version": "0.36.2", - "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz", - "integrity": "sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "postcss": ">=5.0.0" - } - }, - "node_modules/sugarss": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-2.0.0.tgz", - "integrity": "sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss": "^7.0.2" - } - }, - "node_modules/sugarss/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true, - "license": "ISC" - }, - "node_modules/sugarss/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svg-tags": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", - "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", - "dev": true - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true, - "license": "MIT" - }, - "node_modules/table": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.5.tgz", - "integrity": "sha512-LFNeryOqiQHqCVKzhkymKwt6ozeRhlm8IL1mE8rNUurkir4heF6PzMyRgaTa4tlyPTGGgXuvVOF/OLWiH09Lqw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", - "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "license": "MIT" - }, - "node_modules/tailwindcss": { - "version": "2.2.19", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-2.2.19.tgz", - "integrity": "sha512-6Ui7JSVtXadtTUo2NtkBBacobzWiQYVjYW0ZnKaP9S1ZCKQ0w7KVNz+YSDI/j7O7KCMHbOkz94ZMQhbT9pOqjw==", - "dev": true, - "license": "MIT", - "dependencies": { - "arg": "^5.0.1", - "bytes": "^3.0.0", - "chalk": "^4.1.2", - "chokidar": "^3.5.2", - "color": "^4.0.1", - "cosmiconfig": "^7.0.1", - "detective": "^5.2.0", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.2.7", - "fs-extra": "^10.0.0", - "glob-parent": "^6.0.1", - "html-tags": "^3.1.0", - "is-color-stop": "^1.1.0", - "is-glob": "^4.0.1", - "lodash": "^4.17.21", - "lodash.topath": "^4.5.2", - "modern-normalize": "^1.1.0", - "node-emoji": "^1.11.0", - "normalize-path": "^3.0.0", - "object-hash": "^2.2.0", - "postcss-js": "^3.0.3", - "postcss-load-config": "^3.1.0", - "postcss-nested": "5.0.6", - "postcss-selector-parser": "^6.0.6", - "postcss-value-parser": "^4.1.0", - "pretty-hrtime": "^1.0.3", - "purgecss": "^4.0.3", - "quick-lru": "^5.1.1", - "reduce-css-calc": "^2.1.8", - "resolve": "^1.20.0", - "tmp": "^0.2.1" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "autoprefixer": "^10.0.2", - "postcss": "^8.0.9" - } - }, - "node_modules/tailwindcss/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terser": { - "version": "5.15.0", - "resolved": "https://registry.npmmirror.com/terser/-/terser-5.15.0.tgz", - "integrity": "sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA==", - "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.6", - "resolved": "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", - "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", - "dev": true, - "peer": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.14", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "terser": "^5.14.1" - }, - "engines": { - "node": ">= 10.13.0" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true, - "license": "MIT" - }, - "node_modules/throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true, - "license": "MIT" - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true, - "license": "MIT" - }, - "node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/tiny-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz", - "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" - }, - "node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" - } - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/treemate": { - "version": "0.3.11", - "resolved": "https://registry.npmmirror.com/treemate/-/treemate-0.3.11.tgz", - "integrity": "sha512-M8RGFoKtZ8dF+iwJfAJTOH/SM4KluKOKRJpjCMhI8bG3qB74zrFoArKZ62ll0Fr3mqkMJiQOmWYkdYgDeITYQg==", - "license": "MIT" - }, - "node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/trim-repeated": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", - "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^1.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/trough": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", - "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/true-case-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", - "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", - "dependencies": { - "glob": "^7.1.2" - } - }, - "node_modules/ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "typescript": ">=2.7" - } - }, - "node_modules/ts-node/node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true, - "license": "0BSD" - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true, - "license": "0BSD" - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" - }, - "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.8.2", - "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.8.2.tgz", - "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==", - "devOptional": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/unified": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", - "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unified/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/unist-util-find-all-after": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz", - "integrity": "sha512-xaTC/AGZ0rIM2gM28YVRAFPIZpzbpDtU3dRmp7EXlNVA8ziQc4hY3H7BHXM1J49nEmiqc3svnqMReW+PGqbZKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "unist-util-is": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-is": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unplugin": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-0.3.2.tgz", - "integrity": "sha512-5d0DMYNKZU+S9eZUiBfw6Co32eRg8myUgBPoWSqG/wDFCUE/WznfSsJnZWi1P9l69x4uLJqt2qVq1xW/AsXFrw==", - "dev": true, - "license": "MIT", - "dependencies": { - "webpack-virtual-modules": "^0.4.3" - }, - "peerDependencies": { - "esbuild": ">=0.13", - "rollup": "^2.50.0", - "vite": "^2.3.0", - "webpack": "4 || 5" - }, - "peerDependenciesMeta": { - "esbuild": { - "optional": true - }, - "rollup": { - "optional": true - }, - "vite": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/unplugin-vue-components": { - "version": "0.17.21", - "resolved": "https://registry.npmjs.org/unplugin-vue-components/-/unplugin-vue-components-0.17.21.tgz", - "integrity": "sha512-jkXksUF6zkNbzHQbw1DdrsQyVoMZGESRZDIGd9x7nUP+65nHdpBCY/JmlxSjKbuTrOwfMsk6FQFa0RpRueOCKg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@antfu/utils": "^0.4.0", - "@rollup/pluginutils": "^4.1.2", - "chokidar": "^3.5.2", - "debug": "^4.3.3", - "fast-glob": "^3.2.11", - "local-pkg": "^0.4.1", - "magic-string": "^0.25.7", - "minimatch": "^3.0.4", - "resolve": "^1.21.0", - "unplugin": "^0.3.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "@babel/parser": "^7.15.8", - "@babel/traverse": "^7.15.4", - "vue": "2 || 3" - }, - "peerDependenciesMeta": { - "@babel/parser": { - "optional": true - }, - "@babel/traverse": { - "optional": true - } - } - }, - "node_modules/unplugin-vue-components/node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/unplugin-vue-components/node_modules/is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "dev": true, - "license": "MIT", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unplugin-vue-components/node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", - "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", - "dev": true, - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist-lint": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/upper-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", - "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/upper-case-first": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", - "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "license": "MIT" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true, - "license": "MIT" - }, - "node_modules/v8-to-istanbul": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz", - "integrity": "sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==", - "dev": true, - "license": "ISC", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "license": "Apache-2.0", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/vdirs": { - "version": "0.1.8", - "resolved": "https://registry.npmmirror.com/vdirs/-/vdirs-0.1.8.tgz", - "integrity": "sha512-H9V1zGRLQZg9b+GdMk8MXDN2Lva0zx72MPahDKc30v+DtwKjfyOSXWRIX4t2mhDubM1H09gPhWeth/BJWPHGUw==", - "license": "MIT", - "dependencies": { - "evtd": "^0.2.2" - }, - "peerDependencies": { - "vue": "^3.0.11" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/vfile": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", - "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-message": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfonts": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/vfonts/-/vfonts-0.1.0.tgz", - "integrity": "sha512-vQBcvntBlnAPonAkGNM8iJ9NxE3PucA+V2W95xiN75YJKxirLJvOws2kEyOEO45T4N+YTbQOCR2m77Y05pfVhQ==", - "license": "MIT" - }, - "node_modules/vite": { - "version": "2.9.14", - "resolved": "https://registry.npmmirror.com/vite/-/vite-2.9.14.tgz", - "integrity": "sha512-P/UCjSpSMcE54r4mPak55hWAZPlyfS369svib/gpmz8/01L822lMPOJ/RYW6tLCe1RPvMvOsJ17erf55bKp4Hw==", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.14.27", - "postcss": "^8.4.13", - "resolve": "^1.22.0", - "rollup": "^2.59.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": ">=12.2.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - }, - "peerDependencies": { - "less": "*", - "sass": "*", - "stylus": "*" - }, - "peerDependenciesMeta": { - "less": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - } - } - }, - "node_modules/vite-plugin-compression": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/vite-plugin-compression/-/vite-plugin-compression-0.3.6.tgz", - "integrity": "sha512-aSskQCJsP3VQ8PsnY+vO7UfD5qoFMOEuzg0PG2E9Zqyx+ARmc3wr9KCgOFraZOFW1Y4UAa5BR0SMTjoxHRMJoQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.2", - "debug": "^4.3.2", - "fs-extra": "^10.0.0" - }, - "peerDependencies": { - "vite": ">=2.0.0" - } - }, - "node_modules/vite-plugin-html": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/vite-plugin-html/-/vite-plugin-html-2.1.2.tgz", - "integrity": "sha512-7HXkL6n7M2qDEaUV4Vnz8yM2glW4gV36d5HSBIM5gOoAG1PkuQb4Vv9FTPgPiQxq4sPRf/6IgABX0MeLVW+CyQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^4.1.2", - "dotenv": "^10.0.0", - "dotenv-expand": "^5.1.0", - "ejs": "^3.1.6", - "fs-extra": "^10.0.0", - "html-minifier-terser": "^6.1.0" - }, - "peerDependencies": { - "vite": ">=2.0.0" - } - }, - "node_modules/vite-plugin-mock": { - "version": "2.9.6", - "resolved": "https://registry.npmjs.org/vite-plugin-mock/-/vite-plugin-mock-2.9.6.tgz", - "integrity": "sha512-/Rm59oPppe/ncbkSrUuAxIQihlI2YcBmnbR4ST1RA2VzM1C0tEQc1KlbQvnUGhXECAGTaQN2JyasiwXP6EtKgg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/plugin-node-resolve": "^13.0.4", - "@types/mockjs": "^1.0.4", - "chalk": "^4.1.2", - "chokidar": "^3.5.2", - "connect": "^3.7.0", - "debug": "^4.3.2", - "esbuild": "0.11.3", - "fast-glob": "^3.2.7", - "path-to-regexp": "^6.2.0" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "mockjs": ">=1.1.0", - "vite": ">=2.0.0" - } - }, - "node_modules/vite-plugin-mock/node_modules/esbuild": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.11.3.tgz", - "integrity": "sha512-BzVRHcCtFepjS9WcqRjqoIxLqgpK21a8J4Zi4msSGxDxiXVO1IbcqT1KjhdDDnJxKfe7bvzZrvMEX+bVO0Elcw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - } - }, - "node_modules/vite-plugin-style-import": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/vite-plugin-style-import/-/vite-plugin-style-import-1.4.1.tgz", - "integrity": "sha512-lJCRvm7+So0hHdnSJiJPg9gD5mxtL6YY0jmhEph+k7ArpsyvqOh6han2kG5htbWWDZxHkUN9d1BuTFL//yCLLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^4.1.2", - "change-case": "^4.1.2", - "debug": "^4.3.3", - "es-module-lexer": "^0.9.3", - "fs-extra": "^10.0.0", - "magic-string": "^0.25.7" - }, - "peerDependencies": { - "vite": ">=2.0.0" - } - }, - "node_modules/vite/node_modules/esbuild": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.29.tgz", - "integrity": "sha512-SQS8cO8xFEqevYlrHt6exIhK853Me4nZ4aMW6ieysInLa0FMAL+AKs87HYNRtR2YWRcEIqoXAHh+Ytt5/66qpg==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "esbuild-android-64": "0.14.29", - "esbuild-android-arm64": "0.14.29", - "esbuild-darwin-64": "0.14.29", - "esbuild-darwin-arm64": "0.14.29", - "esbuild-freebsd-64": "0.14.29", - "esbuild-freebsd-arm64": "0.14.29", - "esbuild-linux-32": "0.14.29", - "esbuild-linux-64": "0.14.29", - "esbuild-linux-arm": "0.14.29", - "esbuild-linux-arm64": "0.14.29", - "esbuild-linux-mips64le": "0.14.29", - "esbuild-linux-ppc64le": "0.14.29", - "esbuild-linux-riscv64": "0.14.29", - "esbuild-linux-s390x": "0.14.29", - "esbuild-netbsd-64": "0.14.29", - "esbuild-openbsd-64": "0.14.29", - "esbuild-sunos-64": "0.14.29", - "esbuild-windows-32": "0.14.29", - "esbuild-windows-64": "0.14.29", - "esbuild-windows-arm64": "0.14.29" - } - }, - "node_modules/vite/node_modules/esbuild-android-64": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.29.tgz", - "integrity": "sha512-tJuaN33SVZyiHxRaVTo1pwW+rn3qetJX/SRuc/83rrKYtyZG0XfsQ1ao1nEudIt9w37ZSNXR236xEfm2C43sbw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/esbuild-android-arm64": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.29.tgz", - "integrity": "sha512-D74dCv6yYnMTlofVy1JKiLM5JdVSQd60/rQfJSDP9qvRAI0laPXIG/IXY1RG6jobmFMUfL38PbFnCqyI/6fPXg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/esbuild-darwin-64": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.29.tgz", - "integrity": "sha512-+CJaRvfTkzs9t+CjGa0Oa28WoXa7EeLutQhxus+fFcu0MHhsBhlmeWHac3Cc/Sf/xPi1b2ccDFfzGYJCfV0RrA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/esbuild-darwin-arm64": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.29.tgz", - "integrity": "sha512-5Wgz/+zK+8X2ZW7vIbwoZ613Vfr4A8HmIs1XdzRmdC1kG0n5EG5fvKk/jUxhNlrYPx1gSY7XadQ3l4xAManPSw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/esbuild-freebsd-64": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.29.tgz", - "integrity": "sha512-VTfS7Bm9QA12JK1YXF8+WyYOfvD7WMpbArtDj6bGJ5Sy5xp01c/q70Arkn596aGcGj0TvQRplaaCIrfBG1Wdtg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/esbuild-freebsd-arm64": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.29.tgz", - "integrity": "sha512-WP5L4ejwLWWvd3Fo2J5mlXvG3zQHaw5N1KxFGnUc4+2ZFZknP0ST63i0IQhpJLgEJwnQpXv2uZlU1iWZjFqEIg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/esbuild-linux-32": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.29.tgz", - "integrity": "sha512-4myeOvFmQBWdI2U1dEBe2DCSpaZyjdQtmjUY11Zu2eQg4ynqLb8Y5mNjNU9UN063aVsCYYfbs8jbken/PjyidA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/esbuild-linux-arm": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.29.tgz", - "integrity": "sha512-OXa9D9QL1hwrAnYYAHt/cXAuSCmoSqYfTW/0CEY0LgJNyTxJKtqc5mlwjAZAvgyjmha0auS/sQ0bXfGf2wAokQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/esbuild-linux-arm64": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.29.tgz", - "integrity": "sha512-KYf7s8wDfUy+kjKymW3twyGT14OABjGHRkm9gPJ0z4BuvqljfOOUbq9qT3JYFnZJHOgkr29atT//hcdD0Pi7Mw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/esbuild-linux-mips64le": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.29.tgz", - "integrity": "sha512-05jPtWQMsZ1aMGfHOvnR5KrTvigPbU35BtuItSSWLI2sJu5VrM8Pr9Owym4wPvA4153DFcOJ1EPN/2ujcDt54g==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/esbuild-linux-ppc64le": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.29.tgz", - "integrity": "sha512-FYhBqn4Ir9xG+f6B5VIQVbRuM4S6qwy29dDNYFPoxLRnwTEKToIYIUESN1qHyUmIbfO0YB4phG2JDV2JDN9Kgw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/esbuild-linux-riscv64": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.29.tgz", - "integrity": "sha512-eqZMqPehkb4nZcffnuOpXJQdGURGd6GXQ4ZsDHSWyIUaA+V4FpMBe+5zMPtXRD2N4BtyzVvnBko6K8IWWr36ew==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/esbuild-linux-s390x": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.29.tgz", - "integrity": "sha512-o7EYajF1rC/4ho7kpSG3gENVx0o2SsHm7cJ5fvewWB/TEczWU7teDgusGSujxCYcMottE3zqa423VTglNTYhjg==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/esbuild-netbsd-64": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.29.tgz", - "integrity": "sha512-/esN6tb6OBSot6+JxgeOZeBk6P8V/WdR3GKBFeFpSqhgw4wx7xWUqPrdx4XNpBVO7X4Ipw9SAqgBrWHlXfddww==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/esbuild-openbsd-64": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.29.tgz", - "integrity": "sha512-jUTdDzhEKrD0pLpjmk0UxwlfNJNg/D50vdwhrVcW/D26Vg0hVbthMfb19PJMatzclbK7cmgk1Nu0eNS+abzoHw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/esbuild-sunos-64": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.29.tgz", - "integrity": "sha512-EfhQN/XO+TBHTbkxwsxwA7EfiTHFe+MNDfxcf0nj97moCppD9JHPq48MLtOaDcuvrTYOcrMdJVeqmmeQ7doTcg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/esbuild-windows-32": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.29.tgz", - "integrity": "sha512-uoyb0YAJ6uWH4PYuYjfGNjvgLlb5t6b3zIaGmpWPOjgpr1Nb3SJtQiK4YCPGhONgfg2v6DcJgSbOteuKXhwqAw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/esbuild-windows-arm64": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.29.tgz", - "integrity": "sha512-+O/PI+68fbUZPpl3eXhqGHTGK7DjLcexNnyJqtLZXOFwoAjaXlS5UBCvVcR3o2va+AqZTj8o6URaz8D2K+yfQQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "dev": true, - "license": "MIT", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/vite/node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/vooks": { - "version": "0.2.12", - "resolved": "https://registry.npmjs.org/vooks/-/vooks-0.2.12.tgz", - "integrity": "sha512-iox0I3RZzxtKlcgYaStQYKEzWWGAduMmq+jS7OrNdQo1FgGfPMubGL3uGHOU9n97NIvfFDBGnpSvkWyb/NSn/Q==", - "license": "MIT", - "dependencies": { - "evtd": "^0.2.2" - }, - "peerDependencies": { - "vue": "^3.0.0" - } - }, - "node_modules/vue": { - "version": "3.2.37", - "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.37.tgz", - "integrity": "sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==", - "license": "MIT", - "dependencies": { - "@vue/compiler-dom": "3.2.37", - "@vue/compiler-sfc": "3.2.37", - "@vue/runtime-dom": "3.2.37", - "@vue/server-renderer": "3.2.37", - "@vue/shared": "3.2.37" - } - }, - "node_modules/vue-demi": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.12.1.tgz", - "integrity": "sha512-QL3ny+wX8c6Xm1/EZylbgzdoDolye+VpCXRhI2hug9dJTP3OUJ3lmiKN3CsVV3mOJKwFi0nsstbgob0vG7aoIw==", - "hasInstallScript": true, - "license": "MIT", - "bin": { - "vue-demi-fix": "bin/vue-demi-fix.js", - "vue-demi-switch": "bin/vue-demi-switch.js" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "@vue/composition-api": "^1.0.0-rc.1", - "vue": "^3.0.0-0 || ^2.6.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - } - } - }, - "node_modules/vue-eslint-parser": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz", - "integrity": "sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.1.1", - "eslint-scope": "^5.1.1", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.2.1", - "esquery": "^1.4.0", - "lodash": "^4.17.21", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8.10" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5.0.0" - } - }, - "node_modules/vue-eslint-parser/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/vue-eslint-parser/node_modules/espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/vue-router": { - "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.1.2.tgz", - "integrity": "sha512-5BP1qXFncVRwgV/XnqzsKApdMjQPqWIpoUBdL1ynz8HyLxIX/UDAx7Ql2BjmA5CXT/p61JfZvkpiFWFpaqcfag==", - "license": "MIT", - "dependencies": { - "@vue/devtools-api": "^6.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/posva" - }, - "peerDependencies": { - "vue": "^3.2.0" - } - }, - "node_modules/vue-types": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/vue-types/-/vue-types-4.1.1.tgz", - "integrity": "sha512-Jq2GZ/w6rExJbLA/h7nHBFLciu+YNekgox0DB64wN1snZ4IIJMq+qnqp1/vE4fc7vEjZcP5KGhLzkkSjIHLRzw==", - "license": "MIT", - "dependencies": { - "is-plain-object": "5.0.0" - }, - "engines": { - "node": ">=12.16.0" - }, - "peerDependencies": { - "vue": "^2.0.0 || ^3.0.0" - } - }, - "node_modules/vue3-json-viewer": { - "version": "2.2.2", - "resolved": "https://registry.npmmirror.com/vue3-json-viewer/-/vue3-json-viewer-2.2.2.tgz", - "integrity": "sha512-56l3XDGggnpwEqZieXsSMhNT4NhtO6d7zuSAxHo4i0UVxymyY2jRb7UMQOU1ztChKALZCAzX7DlgrsnEhxu77A==", - "dependencies": { - "clipboard": "^2.0.10" - }, - "peerDependencies": { - "vue": "^3.2.0" - } - }, - "node_modules/vuedraggable": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/vuedraggable/-/vuedraggable-4.1.0.tgz", - "integrity": "sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==", - "license": "MIT", - "dependencies": { - "sortablejs": "1.14.0" - }, - "peerDependencies": { - "vue": "^3.0.1" - } - }, - "node_modules/vueuc": { - "version": "0.4.47", - "resolved": "https://registry.npmmirror.com/vueuc/-/vueuc-0.4.47.tgz", - "integrity": "sha512-lBxGeTWLFp0O36SlcAeBrh29dxE/GboOH/0eUJhocUuE9DRrzUcVmwGau7v7ZWsxjivjJC3Qup7l9sCyA3it+g==", - "license": "MIT", - "dependencies": { - "@css-render/vue3-ssr": "^0.15.10", - "@juggle/resize-observer": "^3.3.1", - "css-render": "^0.15.10", - "evtd": "^0.2.2", - "seemly": "^0.3.1", - "vdirs": "^0.1.4", - "vooks": "^0.2.4" - }, - "peerDependencies": { - "vue": "^3.0.11" - } - }, - "node_modules/vueuc/node_modules/@types/node": { - "version": "14.18.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.2.tgz", - "integrity": "sha512-fqtSN5xn/bBzDxMT77C1rJg6CsH/R49E7qsGuvdPJa20HtV5zSTuLJPNfnlyVH3wauKnkHdLggTVkOW/xP9oQg==", - "license": "MIT" - }, - "node_modules/vueuc/node_modules/seemly": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/seemly/-/seemly-0.3.3.tgz", - "integrity": "sha512-mAyqemz41e9HiZPMXAn7NtTExJgztwco5cdZjrt/iViU/oFeav+Q8K1c93M/tIZZ00QkT65JMr4xXQk7Vv5hWQ==", - "license": "MIT", - "dependencies": { - "@types/jest": "^27.0.1" - } - }, - "node_modules/vueuc/node_modules/vdirs": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/vdirs/-/vdirs-0.1.4.tgz", - "integrity": "sha512-g2wJgE8hj/ruqEnGFEXFVC8IR4kRaPDr7Cl+SSy+A8kmNr47rL1l+0wMi51amlrTL6eQsRk+wcl4bjjfPXNzZQ==", - "license": "MIT", - "dependencies": { - "@types/node": "^14.14.10", - "evtd": "^0.2.2" - }, - "peerDependencies": { - "vue": "^3.0.11" - } - }, - "node_modules/vueuc/node_modules/vooks": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/vooks/-/vooks-0.2.10.tgz", - "integrity": "sha512-clZkEndDEUyUFP7u1dL0iijcW0p04Hhj50IVcakRrLjQkuZIr7sx6EX9oMyWgrYVjmfdX6vysnCg3OxsYl67jA==", - "license": "MIT", - "dependencies": { - "evtd": "^0.2.2" - }, - "peerDependencies": { - "vue": "^3.0.0" - } - }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "dev": true, - "peer": true, - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=10.4" - } - }, - "node_modules/webpack": { - "version": "5.74.0", - "resolved": "https://registry.npmmirror.com/webpack/-/webpack-5.74.0.tgz", - "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", - "dev": true, - "peer": true, - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack-virtual-modules": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.4.3.tgz", - "integrity": "sha512-5NUqC2JquIL2pBAAo/VfBP6KuGkHIZQXW/lNKupLPfhViwh8wNsu0BObtl09yuKZszeEUfbXz8xhrHvSG16Nqw==", - "dev": true, - "license": "MIT" - }, - "node_modules/webpack/node_modules/@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", - "dev": true, - "peer": true - }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "license": "MIT", - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true, - "license": "MIT" - }, - "node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "license": "ISC" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz", - "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true, - "license": "MIT" - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zrender": { - "version": "5.3.2", - "resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.3.2.tgz", - "integrity": "sha512-8IiYdfwHj2rx0UeIGZGGU4WEVSDEdeVCaIg/fomejg1Xu6OifAL1GVzIPHg2D+MyUkbNgPWji90t0a8IDk+39w==", - "license": "BSD-3-Clause", - "dependencies": { - "tslib": "2.3.0" - } - }, - "node_modules/zrender/node_modules/tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", - "license": "0BSD" - }, - "node_modules/zwitch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", - "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.0" - } - }, - "@antfu/utils": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.4.0.tgz", - "integrity": "sha512-gqkpvjkgFUu+s3kP+Ly33OKpo5zvVY3FDFhv5BIb98SncS3KD6DNxPfNDjwHIoyXbz1leWo1j8DtRLZ1D2Jv+Q==", - "dev": true, - "requires": { - "@types/throttle-debounce": "^2.1.0" - } - }, - "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "requires": { - "@babel/highlight": "^7.18.6" - } - }, - "@babel/compat-data": { - "version": "7.18.13", - "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.18.13.tgz", - "integrity": "sha512-5yUzC5LqyTFp2HLmDoxGQelcdYgSpP9xsnMWBphAscOdFrHSAVbLNzWiy32sVNDqJRDiJK6klfDnAgu6PAGSHw==", - "dev": true - }, - "@babel/core": { - "version": "7.18.13", - "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.18.13.tgz", - "integrity": "sha512-ZisbOvRRusFktksHSG6pjj1CSvkPkcZq/KHD45LAkVP/oiHJkNBZWfpvlLmX8OtHDG8IuzsFlVRWo08w7Qxn0A==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.13", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helpers": "^7.18.9", - "@babel/parser": "^7.18.13", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.13", - "@babel/types": "^7.18.13", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - } - }, - "@babel/generator": { - "version": "7.18.13", - "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.18.13.tgz", - "integrity": "sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ==", - "dev": true, - "requires": { - "@babel/types": "^7.18.13", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.18.9", - "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", - "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.20.2", - "semver": "^6.3.0" - } - }, - "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true - }, - "@babel/helper-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", - "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", - "dev": true, - "requires": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", - "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-transforms": { - "version": "7.18.9", - "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", - "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.5.tgz", - "integrity": "sha512-59KHWHXxVA9K4HNF4sbHCf+eJeFe0Te/ZFGqBT4OjXhrwvA04sGfaEGsVTdsjoszq0YTP49RC9UKe5g8uN2RwQ==", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-string-parser": { - "version": "7.18.10", - "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==" - }, - "@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true - }, - "@babel/helpers": { - "version": "7.18.9", - "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.18.9.tgz", - "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", - "dev": true, - "requires": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - } - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.18.13", - "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.18.13.tgz", - "integrity": "sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg==" - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.5.tgz", - "integrity": "sha512-42OGssv9NPk4QHKVgIHlzeLgPOW5rGgfV5jzG90AhcXXIv6hu/eqj63w4VgvRxdvZY3AlYeDgPiSJ3BqAd1Y6Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.5.tgz", - "integrity": "sha512-/d4//lZ1Vqb4mZ5xTep3dDK888j7BGM/iKqBmndBaoYAFPlPKrGU608VVBz5JeyAb6YQDjRu1UKqj86UhwWVgw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" - } - }, - "@babel/traverse": { - "version": "7.18.13", - "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.18.13.tgz", - "integrity": "sha512-N6kt9X1jRMLPxxxPYWi7tgvJRH/rtoU+dbKAPDM44RFHiMH8igdsaSBgFeskhSl/kLWLDUvIh1RXCrTmg0/zvA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.13", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.13", - "@babel/types": "^7.18.13", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.18.13", - "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.18.13.tgz", - "integrity": "sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@commitlint/cli": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-12.1.4.tgz", - "integrity": "sha512-ZR1WjXLvqEffYyBPT0XdnSxtt3Ty1TMoujEtseW5o3vPnkA1UNashAMjQVg/oELqfaiAMnDw8SERPMN0e/0kLg==", - "dev": true, - "requires": { - "@commitlint/format": "^12.1.4", - "@commitlint/lint": "^12.1.4", - "@commitlint/load": "^12.1.4", - "@commitlint/read": "^12.1.4", - "@commitlint/types": "^12.1.4", - "lodash": "^4.17.19", - "resolve-from": "5.0.0", - "resolve-global": "1.0.0", - "yargs": "^16.2.0" - } - }, - "@commitlint/config-conventional": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-12.1.4.tgz", - "integrity": "sha512-ZIdzmdy4o4WyqywMEpprRCrehjCSQrHkaRTVZV411GyLigFQHlEBSJITAihLAWe88Qy/8SyoIe5uKvAsV5vRqQ==", - "dev": true, - "requires": { - "conventional-changelog-conventionalcommits": "^4.3.1" - } - }, - "@commitlint/ensure": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-12.1.4.tgz", - "integrity": "sha512-MxHIBuAG9M4xl33qUfIeMSasbv3ktK0W+iygldBxZOL4QSYC2Gn66pZAQMnV9o3V+sVFHoAK2XUKqBAYrgbEqw==", - "dev": true, - "requires": { - "@commitlint/types": "^12.1.4", - "lodash": "^4.17.19" - } - }, - "@commitlint/execute-rule": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-12.1.4.tgz", - "integrity": "sha512-h2S1j8SXyNeABb27q2Ok2vD1WfxJiXvOttKuRA9Or7LN6OQoC/KtT3844CIhhWNteNMu/wE0gkTqGxDVAnJiHg==", - "dev": true - }, - "@commitlint/format": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-12.1.4.tgz", - "integrity": "sha512-h28ucMaoRjVvvgS6Bdf85fa/+ZZ/iu1aeWGCpURnQV7/rrVjkhNSjZwGlCOUd5kDV1EnZ5XdI7L18SUpRjs26g==", - "dev": true, - "requires": { - "@commitlint/types": "^12.1.4", - "chalk": "^4.0.0" - } - }, - "@commitlint/is-ignored": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-12.1.4.tgz", - "integrity": "sha512-uTu2jQU2SKvtIRVLOzMQo3KxDtO+iJ1p0olmncwrqy4AfPLgwoyCP2CiULq5M7xpR3+dE3hBlZXbZTQbD7ycIw==", - "dev": true, - "requires": { - "@commitlint/types": "^12.1.4", - "semver": "7.3.5" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@commitlint/lint": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-12.1.4.tgz", - "integrity": "sha512-1kZ8YDp4to47oIPFELUFGLiLumtPNKJigPFDuHt2+f3Q3IKdQ0uk53n3CPl4uoyso/Og/EZvb1mXjFR/Yce4cA==", - "dev": true, - "requires": { - "@commitlint/is-ignored": "^12.1.4", - "@commitlint/parse": "^12.1.4", - "@commitlint/rules": "^12.1.4", - "@commitlint/types": "^12.1.4" - } - }, - "@commitlint/load": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-12.1.4.tgz", - "integrity": "sha512-Keszi0IOjRzKfxT+qES/n+KZyLrxy79RQz8wWgssCboYjKEp+wC+fLCgbiMCYjI5k31CIzIOq/16J7Ycr0C0EA==", - "dev": true, - "requires": { - "@commitlint/execute-rule": "^12.1.4", - "@commitlint/resolve-extends": "^12.1.4", - "@commitlint/types": "^12.1.4", - "chalk": "^4.0.0", - "cosmiconfig": "^7.0.0", - "lodash": "^4.17.19", - "resolve-from": "^5.0.0" - } - }, - "@commitlint/message": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-12.1.4.tgz", - "integrity": "sha512-6QhalEKsKQ/Y16/cTk5NH4iByz26fqws2ub+AinHPtM7Io0jy4e3rym9iE+TkEqiqWZlUigZnTwbPvRJeSUBaA==", - "dev": true - }, - "@commitlint/parse": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-12.1.4.tgz", - "integrity": "sha512-yqKSAsK2V4X/HaLb/yYdrzs6oD/G48Ilt0EJ2Mp6RJeWYxG14w/Out6JrneWnr/cpzemyN5hExOg6+TB19H/Lw==", - "dev": true, - "requires": { - "@commitlint/types": "^12.1.4", - "conventional-changelog-angular": "^5.0.11", - "conventional-commits-parser": "^3.0.0" - } - }, - "@commitlint/read": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-12.1.4.tgz", - "integrity": "sha512-TnPQSJgD8Aod5Xeo9W4SaYKRZmIahukjcCWJ2s5zb3ZYSmj6C85YD9cR5vlRyrZjj78ItLUV/X4FMWWVIS38Jg==", - "dev": true, - "requires": { - "@commitlint/top-level": "^12.1.4", - "@commitlint/types": "^12.1.4", - "fs-extra": "^9.0.0", - "git-raw-commits": "^2.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true - } - } - }, - "@commitlint/resolve-extends": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-12.1.4.tgz", - "integrity": "sha512-R9CoUtsXLd6KSCfsZly04grsH6JVnWFmVtWgWs1KdDpdV+G3TSs37tColMFqglpkx3dsWu8dsPD56+D9YnJfqg==", - "dev": true, - "requires": { - "import-fresh": "^3.0.0", - "lodash": "^4.17.19", - "resolve-from": "^5.0.0", - "resolve-global": "^1.0.0" - } - }, - "@commitlint/rules": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-12.1.4.tgz", - "integrity": "sha512-W8m6ZSjg7RuIsIfzQiFHa48X5mcPXeKT9yjBxVmjHvYfS2FDBf1VxCQ7vO0JTVIdV4ohjZ0eKg/wxxUuZHJAZg==", - "dev": true, - "requires": { - "@commitlint/ensure": "^12.1.4", - "@commitlint/message": "^12.1.4", - "@commitlint/to-lines": "^12.1.4", - "@commitlint/types": "^12.1.4" - } - }, - "@commitlint/to-lines": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-12.1.4.tgz", - "integrity": "sha512-TParumvbi8bdx3EdLXz2MaX+e15ZgoCqNUgqHsRLwyqLUTRbqCVkzrfadG1UcMQk8/d5aMbb327ZKG3Q4BRorw==", - "dev": true - }, - "@commitlint/top-level": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-12.1.4.tgz", - "integrity": "sha512-d4lTJrOT/dXlpY+NIt4CUl77ciEzYeNVc0VFgUQ6VA+b1rqYD2/VWFjBlWVOrklxtSDeKyuEhs36RGrppEFAvg==", - "dev": true, - "requires": { - "find-up": "^5.0.0" - }, - "dependencies": { - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - } - } - }, - "@commitlint/types": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-12.1.4.tgz", - "integrity": "sha512-KRIjdnWNUx6ywz+SJvjmNCbQKcKP6KArhjZhY2l+CWKxak0d77SOjggkMwFTiSgLODOwmuLTbarR2ZfWPiPMlw==", - "dev": true, - "requires": { - "chalk": "^4.0.0" - } - }, - "@css-render/plugin-bem": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/@css-render/plugin-bem/-/plugin-bem-0.15.10.tgz", - "integrity": "sha512-V7b08sM2PWJlXI7BJiVIa0Sg30H3u/jHay4AclNXfF2yRFwwb4ZJjggsMfzwj3WSihAdNf2WTqvOU5qsOD80Dg==", - "requires": {} - }, - "@css-render/vue3-ssr": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/@css-render/vue3-ssr/-/vue3-ssr-0.15.10.tgz", - "integrity": "sha512-keGKnkB2nyVGoA8GezMKNsmvTGXEzgLOGGlgshwOTSEzd1dsROyZ2m/khJ9jV5zbzDM4rWeAWbWF0zwHemsJcw==", - "requires": {} - }, - "@emotion/hash": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", - "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" - }, - "@endemolshinegroup/cosmiconfig-typescript-loader": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz", - "integrity": "sha512-QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA==", - "dev": true, - "optional": true, - "requires": { - "lodash.get": "^4", - "make-error": "^1", - "ts-node": "^9", - "tslib": "^2" - } - }, - "@esbuild/linux-loong64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.15.6.tgz", - "integrity": "sha512-hqmVU2mUjH6J2ZivHphJ/Pdse2ZD+uGCHK0uvsiLDk/JnSedEVj77CiVUnbMKuU4tih1TZZL8tG9DExQg/GZsw==", - "dev": true, - "optional": true, - "peer": true - }, - "@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "globals": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", - "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - } - } - }, - "@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==" - }, - "@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jest/console": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", - "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0" - }, - "dependencies": { - "@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true - } - } - }, - "@jest/core": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", - "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", - "dev": true, - "requires": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true - } - } - }, - "@jest/environment": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", - "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", - "dev": true, - "requires": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1" - }, - "dependencies": { - "@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true - } - } - }, - "@jest/fake-timers": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", - "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "dependencies": { - "@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true - } - } - }, - "@jest/globals": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", - "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" - } - }, - "@jest/reporters": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", - "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, - "dependencies": { - "@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true - } - } - }, - "@jest/source-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", - "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", - "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", - "dev": true, - "requires": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", - "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", - "dev": true, - "requires": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" - } - }, - "@jest/transform": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", - "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - } - }, - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "dependencies": { - "@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true - } - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, - "@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@juggle/resize-observer": { - "version": "3.3.1", - "resolved": "https://registry.npmmirror.com/@juggle/resize-observer/-/resize-observer-3.3.1.tgz", - "integrity": "sha512-zMM9Ds+SawiUkakS7y94Ymqx+S0ORzpG3frZirN3l+UlXUmSUR7hF4wxCVqW+ei94JzV5kt0uXBcoOEAuiydrw==" - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "requires": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - }, - "dependencies": { - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, - "@rollup/plugin-node-resolve": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.1.1.tgz", - "integrity": "sha512-6QKtRevXLrmEig9UiMYt2fSvee9TyltGRfw+qSs6xjUnxwjOzTOqy+/Lpxsgjb8mJn1EQNbCDAvt89O4uzL5kw==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - }, - "dependencies": { - "@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dev": true, - "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - } - }, - "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true - } - } - }, - "@rollup/pluginutils": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.2.tgz", - "integrity": "sha512-ROn4qvkxP9SyPeHaf7uQC/GPFY6L/OWy9+bd9AwcjOAWQwxRscoEyAUD8qCY5o5iL4jqQwoLk2kaTKJPb/HwzQ==", - "dev": true, - "requires": { - "estree-walker": "^2.0.1", - "picomatch": "^2.2.2" - } - }, - "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" - }, - "@types/babel__core": { - "version": "7.1.17", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.17.tgz", - "integrity": "sha512-6zzkezS9QEIL8yCBvXWxPTJPNuMeECJVxSOhxNY/jfq9LxOTHivaYTqr37n9LknWWRTIkzqH2UilS5QFvfa90A==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/eslint": { - "version": "8.4.6", - "resolved": "https://registry.npmmirror.com/@types/eslint/-/eslint-8.4.6.tgz", - "integrity": "sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==", - "dev": true, - "peer": true, - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", - "dev": true, - "peer": true, - "requires": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true - }, - "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "requires": { - "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true - } - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/jest": { - "version": "27.0.3", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.0.3.tgz", - "integrity": "sha512-cmmwv9t7gBYt7hNKH5Spu7Kuu/DotGa+Ff+JGRKZ4db5eh8PnKS4LuebJ3YLUoyOyIHraTGyULn23YtEAm0VSg==", - "requires": { - "jest-diff": "^27.0.0", - "pretty-format": "^27.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==" - }, - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" - }, - "diff-sequences": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.4.0.tgz", - "integrity": "sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww==" - }, - "jest-diff": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.4.2.tgz", - "integrity": "sha512-ujc9ToyUZDh9KcqvQDkk/gkbf6zSaeEg9AiBxtttXW59H/AcqEYp1ciXAtJp+jXWva5nAf/ePtSsgWwE5mqp4Q==", - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.4.0", - "jest-get-type": "^27.4.0", - "pretty-format": "^27.4.2" - } - }, - "jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==" - }, - "pretty-format": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz", - "integrity": "sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==", - "requires": { - "@jest/types": "^27.4.2", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - } - } - } - }, - "@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", - "dev": true - }, - "@types/lodash": { - "version": "4.14.182", - "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.182.tgz", - "integrity": "sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==", - "dev": true - }, - "@types/lodash-es": { - "version": "4.17.6", - "resolved": "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.6.tgz", - "integrity": "sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==", - "requires": { - "@types/lodash": "*" - }, - "dependencies": { - "@types/lodash": { - "version": "4.14.178", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.178.tgz", - "integrity": "sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw==" - } - } - }, - "@types/mdast": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", - "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", - "dev": true, - "requires": { - "@types/unist": "*" - } - }, - "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true - }, - "@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==" - }, - "@types/mockjs": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@types/mockjs/-/mockjs-1.0.4.tgz", - "integrity": "sha512-gK20xPqJhzMIitechVbvfnAk+oBIxVRnWrihJpRYHMI6UHCB/cvWgJa+dy6trRwQLE3AbtAJnXpm7pn6blG8sA==", - "dev": true - }, - "@types/node": { - "version": "15.14.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", - "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", - "dev": true - }, - "@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==" - }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "@types/prettier": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.2.tgz", - "integrity": "sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA==", - "dev": true - }, - "@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "dev": true, - "requires": { - "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true - } - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/throttle-debounce": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@types/throttle-debounce/-/throttle-debounce-2.1.0.tgz", - "integrity": "sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ==", - "dev": true - }, - "@types/unist": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", - "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==", - "dev": true - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==" - }, - "@typescript-eslint/eslint-plugin": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", - "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==", - "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "4.33.0", - "@typescript-eslint/scope-manager": "4.33.0", - "debug": "^4.3.1", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", - "regexpp": "^3.1.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@typescript-eslint/experimental-utils": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", - "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, - "dependencies": { - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - } - }, - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, - "@typescript-eslint/parser": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", - "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", - "debug": "^4.3.1" - } - }, - "@typescript-eslint/scope-manager": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", - "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0" - } - }, - "@typescript-eslint/types": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", - "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", - "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@typescript-eslint/visitor-keys": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", - "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.33.0", - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, - "@vicons/antd": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@vicons/antd/-/antd-0.10.0.tgz", - "integrity": "sha512-F+pVt2cYJDoJw5Wvu5YzvqnpCoUPeYh272R/ZVK+2H6U/G0LCDvEWNQHXkbLBpCtu9FAq/yac0NNfg1i0a1DGg==" - }, - "@vicons/ionicons5": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@vicons/ionicons5/-/ionicons5-0.10.0.tgz", - "integrity": "sha512-AgOAI15sXiasLKozj9Nkrxdda8BoaFN4TaprFCcHbBMLFOUwk6QLLHRngC+X5YhYXVjLqMbQ6FtEbrPSPYIZEA==" - }, - "@vitejs/plugin-vue": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-1.10.2.tgz", - "integrity": "sha512-/QJ0Z9qfhAFtKRY+r57ziY4BSbGUTGsPRMpB/Ron3QPwBZM4OZAZHdTa4a8PafCwU5DTatXG8TMDoP8z+oDqJw==", - "dev": true, - "requires": {} - }, - "@vitejs/plugin-vue-jsx": { - "version": "1.3.10", - "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-1.3.10.tgz", - "integrity": "sha512-Cf5zznh4yNMiEMBfTOztaDVDmK1XXfgxClzOSUVUc8WAmHzogrCUeM8B05ABzuGtg0D1amfng+mUmSIOFGP3Pw==", - "dev": true, - "requires": { - "@babel/core": "^7.17.9", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-transform-typescript": "^7.16.8", - "@rollup/pluginutils": "^4.2.0", - "@vue/babel-plugin-jsx": "^1.1.1", - "hash-sum": "^2.0.0" - }, - "dependencies": { - "@babel/helper-create-class-features-plugin": { - "version": "7.17.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz", - "integrity": "sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz", - "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true - } - } - }, - "@babel/plugin-transform-typescript": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz", - "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-typescript": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true - } - } - }, - "@rollup/pluginutils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.0.tgz", - "integrity": "sha512-2WUyJNRkyH5p487pGnn4tWAsxhEFKN/pT8CMgHshd5H+IXkOnKvKZwsz5ZWz+YCXkleZRAU5kwbfgF8CPfDRqA==", - "dev": true, - "requires": { - "estree-walker": "^2.0.1", - "picomatch": "^2.2.2" - } - } - } - }, - "@vue/babel-helper-vue-transform-on": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz", - "integrity": "sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==", - "dev": true - }, - "@vue/babel-plugin-jsx": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz", - "integrity": "sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.0.0", - "@babel/template": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", - "@vue/babel-helper-vue-transform-on": "^1.0.2", - "camelcase": "^6.0.0", - "html-tags": "^3.1.0", - "svg-tags": "^1.0.0" - }, - "dependencies": { - "camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", - "dev": true - } - } - }, - "@vue/compiler-core": { - "version": "3.2.37", - "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.37.tgz", - "integrity": "sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==", - "requires": { - "@babel/parser": "^7.16.4", - "@vue/shared": "3.2.37", - "estree-walker": "^2.0.2", - "source-map": "^0.6.1" - } - }, - "@vue/compiler-dom": { - "version": "3.2.37", - "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.37.tgz", - "integrity": "sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==", - "requires": { - "@vue/compiler-core": "3.2.37", - "@vue/shared": "3.2.37" - } - }, - "@vue/compiler-sfc": { - "version": "3.2.37", - "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.37.tgz", - "integrity": "sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==", - "requires": { - "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.37", - "@vue/compiler-dom": "3.2.37", - "@vue/compiler-ssr": "3.2.37", - "@vue/reactivity-transform": "3.2.37", - "@vue/shared": "3.2.37", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7", - "postcss": "^8.1.10", - "source-map": "^0.6.1" - }, - "dependencies": { - "nanoid": { - "version": "3.1.30", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", - "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==" - }, - "postcss": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", - "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", - "requires": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" - } - }, - "source-map-js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", - "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==" - } - } - }, - "@vue/compiler-ssr": { - "version": "3.2.37", - "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.37.tgz", - "integrity": "sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==", - "requires": { - "@vue/compiler-dom": "3.2.37", - "@vue/shared": "3.2.37" - } - }, - "@vue/devtools-api": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.1.4.tgz", - "integrity": "sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ==" - }, - "@vue/eslint-config-typescript": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-7.0.0.tgz", - "integrity": "sha512-UxUlvpSrFOoF8aQ+zX1leYiEBEm7CZmXYn/ZEM1zwSadUzpamx56RB4+Htdjisv1mX2tOjBegNUqH3kz2OL+Aw==", - "dev": true, - "requires": { - "vue-eslint-parser": "^7.0.0" - } - }, - "@vue/reactivity": { - "version": "3.2.37", - "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.37.tgz", - "integrity": "sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==", - "requires": { - "@vue/shared": "3.2.37" - } - }, - "@vue/reactivity-transform": { - "version": "3.2.37", - "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.37.tgz", - "integrity": "sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==", - "requires": { - "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.37", - "@vue/shared": "3.2.37", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7" - } - }, - "@vue/runtime-core": { - "version": "3.2.37", - "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.37.tgz", - "integrity": "sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==", - "requires": { - "@vue/reactivity": "3.2.37", - "@vue/shared": "3.2.37" - } - }, - "@vue/runtime-dom": { - "version": "3.2.37", - "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.37.tgz", - "integrity": "sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==", - "requires": { - "@vue/runtime-core": "3.2.37", - "@vue/shared": "3.2.37", - "csstype": "^2.6.8" - } - }, - "@vue/server-renderer": { - "version": "3.2.37", - "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.37.tgz", - "integrity": "sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==", - "requires": { - "@vue/compiler-ssr": "3.2.37", - "@vue/shared": "3.2.37" - } - }, - "@vue/shared": { - "version": "3.2.37", - "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.37.tgz", - "integrity": "sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==" - }, - "@vueup/vue-quill": { - "version": "1.0.0-beta.8", - "resolved": "https://registry.npmjs.org/@vueup/vue-quill/-/vue-quill-1.0.0-beta.8.tgz", - "integrity": "sha512-3fnIdmnz2ba4dI4WIpudlYoev9r5hrL8NrvhzMXrBj5c5+uEBqM2P48Q+skwToFZjPJT+QDIKiQqY3CXJvpX/Q==", - "requires": { - "quill": "^1.3.7", - "quill-delta": "^4.2.2" - } - }, - "@vueuse/core": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-5.3.0.tgz", - "integrity": "sha512-bBL1/JMRHFWmbgQzUZHF4WOwlqfenR1B8+elriXsbnHlogQM5foSz9++WyDBR0YPIVgCJq7fvNLqd4T7+cjc5w==", - "requires": { - "@vueuse/shared": "5.3.0", - "vue-demi": "*" - } - }, - "@vueuse/shared": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-5.3.0.tgz", - "integrity": "sha512-qZfkPFH0qTScFpYiPOFpTcxWriRhlM3bgSzl3DFTgr/U0eZg3w2EFWaRZHdWeSvAUdNQyjOC4Toa8S0zJyEjHw==", - "requires": { - "vue-demi": "*" - } - }, - "@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", - "dev": true, - "peer": true, - "requires": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", - "dev": true, - "peer": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", - "dev": true, - "peer": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", - "dev": true, - "peer": true - }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", - "dev": true, - "peer": true, - "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", - "dev": true, - "peer": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", - "dev": true, - "peer": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", - "dev": true, - "peer": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", - "dev": true, - "peer": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", - "dev": true, - "peer": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", - "dev": true, - "peer": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", - "dev": true, - "peer": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", - "dev": true, - "peer": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", - "dev": true, - "peer": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", - "dev": true, - "peer": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true, - "peer": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true, - "peer": true - }, - "abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "dev": true - }, - "acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - } - } - }, - "acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmmirror.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true, - "peer": true, - "requires": {} - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "dev": true, - "requires": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - } - } - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - } - }, - "agentkeepalive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", - "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", - "requires": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peer": true, - "requires": {} - }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - }, - "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" - }, - "are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "arg": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz", - "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "array-differ": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", - "dev": true - }, - "array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", - "dev": true - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" - }, - "asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==" - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "integrity": "sha512-VUeSMD8nEGBWaZK4lizI1sf3yEC7pnAQ/mrI7pC2fBz2s/tq5jWWEngTwaf0Gruu/OoXRGLGg1XFqpYBiGTYJA==" - }, - "async-validator": { - "version": "4.2.5", - "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz", - "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true - }, - "autoprefixer": { - "version": "10.4.7", - "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.7.tgz", - "integrity": "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==", - "dev": true, - "requires": { - "browserslist": "^4.20.3", - "caniuse-lite": "^1.0.30001335", - "fraction.js": "^4.2.0", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - } - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==" - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "requires": { - "follow-redirects": "^1.14.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", - "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "bail": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", - "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", - "dev": true - }, - "balanced-match": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", - "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", - "dev": true - }, - "batch-processor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/batch-processor/-/batch-processor-1.0.0.tgz", - "integrity": "sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg=" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "blueimp-md5": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz", - "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - }, - "dependencies": { - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - } - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, - "browserslist": { - "version": "4.21.3", - "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.3.tgz", - "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001370", - "electron-to-chromium": "^1.4.202", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.5" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", - "dev": true - }, - "bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", - "dev": true - }, - "cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "requires": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - } - }, - "cachedir": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.2.0.tgz", - "integrity": "sha512-VvxA0xhNqIIfg0V9AmJkDg91DaJwryutH5rVEZAhcNi4iJFj9f+QxmAjgK1LT9I8OgToX27fypX6/MeCXVbBjQ==", - "dev": true - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dev": true, - "requires": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true - }, - "camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "dependencies": { - "map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==" - }, - "quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==" - } - } - }, - "caniuse-lite": { - "version": "1.0.30001385", - "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001385.tgz", - "integrity": "sha512-MpiCqJGhBkHgpyimE9GWmZTnyHyEEM35u115bD3QBrXpjvL/JgcP8cUhKJshfmg4OtEHFenifcK5sZayEw5tvQ==", - "dev": true - }, - "capital-case": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", - "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", - "dev": true, - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "change-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", - "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", - "dev": true, - "requires": { - "camel-case": "^4.1.2", - "capital-case": "^1.0.4", - "constant-case": "^3.0.4", - "dot-case": "^3.0.4", - "header-case": "^2.0.4", - "no-case": "^3.0.4", - "param-case": "^3.0.4", - "pascal-case": "^3.1.2", - "path-case": "^3.0.4", - "sentence-case": "^3.0.4", - "snake-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true - }, - "character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", - "dev": true - }, - "character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", - "dev": true - }, - "character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", - "dev": true - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" - }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true, - "peer": true - }, - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, - "clean-css": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.4.tgz", - "integrity": "sha512-nKseG8wCzEuji/4yrgM/5cthL9oTDc5UOQyFMvW/Q53oP6gLH690o1NbuTh6Y18nujr7BxlsFuS7gXLnLzKJGg==", - "dev": true, - "requires": { - "source-map": "~0.6.0" - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "requires": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - }, - "dependencies": { - "slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - } - } - }, - "cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "dev": true - }, - "clipboard": { - "version": "2.0.11", - "resolved": "https://registry.npmmirror.com/clipboard/-/clipboard-2.0.11.tgz", - "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", - "requires": { - "good-listener": "^1.2.2", - "select": "^1.1.2", - "tiny-emitter": "^2.0.0" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" - }, - "clone-regexp": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz", - "integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==", - "dev": true, - "requires": { - "is-regexp": "^2.0.0" - }, - "dependencies": { - "is-regexp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz", - "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==", - "dev": true - } - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "color": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/color/-/color-4.1.0.tgz", - "integrity": "sha512-o2rkkxyLGgYoeUy1OodXpbPAQNmlNBrirQ8ODO8QutzDiDMNdezSOZLNnusQ6pUpCQJUsaJIo9DZJKqa2HgH7A==", - "dev": true, - "requires": { - "color-convert": "^2.0.1", - "color-string": "^1.9.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "color-string": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz", - "integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==", - "dev": true, - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" - }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" - }, - "commitizen": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/commitizen/-/commitizen-4.2.4.tgz", - "integrity": "sha512-LlZChbDzg3Ir3O2S7jSo/cgWp5/QwylQVr59K4xayVq8S4/RdKzSyJkghAiZZHfhh5t4pxunUoyeg0ml1q/7aw==", - "dev": true, - "requires": { - "cachedir": "2.2.0", - "cz-conventional-changelog": "3.2.0", - "dedent": "0.7.0", - "detect-indent": "6.0.0", - "find-node-modules": "^2.1.2", - "find-root": "1.1.0", - "fs-extra": "8.1.0", - "glob": "7.1.4", - "inquirer": "6.5.2", - "is-utf8": "^0.2.1", - "lodash": "^4.17.20", - "minimist": "1.2.5", - "strip-bom": "4.0.0", - "strip-json-comments": "3.0.1" - }, - "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "strip-json-comments": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", - "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", - "dev": true - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - } - } - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "compare-func": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", - "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", - "dev": true, - "requires": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "connect": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", - "dev": true, - "requires": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" - }, - "constant-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", - "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", - "dev": true, - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case": "^2.0.2" - } - }, - "conventional-changelog-angular": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", - "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", - "dev": true, - "requires": { - "compare-func": "^2.0.0", - "q": "^1.5.1" - } - }, - "conventional-changelog-conventionalcommits": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.1.tgz", - "integrity": "sha512-lzWJpPZhbM1R0PIzkwzGBCnAkH5RKJzJfFQZcl/D+2lsJxAwGnDKBqn/F4C1RD31GJNn8NuKWQzAZDAVXPp2Mw==", - "dev": true, - "requires": { - "compare-func": "^2.0.0", - "lodash": "^4.17.15", - "q": "^1.5.1" - } - }, - "conventional-commit-types": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz", - "integrity": "sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==", - "dev": true - }, - "conventional-commits-parser": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.3.tgz", - "integrity": "sha512-YyRDR7On9H07ICFpRm/igcdjIqebXbvf4Cff+Pf0BrBys1i1EOzx9iFXNlAbdrLAR8jf7bkUYkDAr8pEy0q4Pw==", - "dev": true, - "requires": { - "is-text-path": "^1.0.1", - "JSONStream": "^1.0.4", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - } - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "copy-anything": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.3.tgz", - "integrity": "sha512-GK6QUtisv4fNS+XcI7shX0Gx9ORg7QqIznyfho79JTnX1XhLiyZHfftvGiziqzRiEi/Bjhgpi+D2o7HxJFPnDQ==", - "dev": true, - "requires": { - "is-what": "^3.12.0" - } - }, - "core-js": { - "version": "3.23.4", - "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.23.4.tgz", - "integrity": "sha512-vjsKqRc1RyAJC3Ye2kYqgfdThb3zYnx9CrqoCcjMOENMtQPC7ZViBvlDxwYU/2z2NI/IPuiXw5mT4hWhddqjzQ==", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" - }, - "cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true, - "optional": true - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "dependencies": { - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "dev": true - }, - "css-render": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/css-render/-/css-render-0.15.10.tgz", - "integrity": "sha512-6j5acvm81sXTHJiF47FNNICtDpF74YoWk1xEK3qQvdqgW6vc+OXrPqflL6m8f5GE6XuFYrbACNEd17kraCSBAQ==", - "requires": { - "@emotion/hash": "~0.8.0", - "@types/node": "~17.0.5", - "csstype": "~3.0.5" - }, - "dependencies": { - "@types/node": { - "version": "17.0.45", - "resolved": "https://registry.npmmirror.com/@types/node/-/node-17.0.45.tgz", - "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" - }, - "csstype": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", - "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==" - } - } - }, - "css-unit-converter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.2.tgz", - "integrity": "sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==", - "dev": true - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true - }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - } - } - }, - "csstype": { - "version": "2.6.19", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.19.tgz", - "integrity": "sha512-ZVxXaNy28/k3kJg0Fou5MiYpp88j7H9hLZp8PDC3jV0WFjfH5E9xHb56L0W59cPbKbcHXeP4qyT8PrHp8t6LcQ==" - }, - "cz-conventional-changelog": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.2.0.tgz", - "integrity": "sha512-yAYxeGpVi27hqIilG1nh4A9Bnx4J3Ov+eXy4koL3drrR+IO9GaWPsKjik20ht608Asqi8TQPf0mczhEeyAtMzg==", - "dev": true, - "requires": { - "@commitlint/load": ">6.1.1", - "chalk": "^2.4.1", - "commitizen": "^4.0.3", - "conventional-commit-types": "^3.0.0", - "lodash.map": "^4.5.1", - "longest": "^2.0.1", - "word-wrap": "^1.0.3" - }, - "dependencies": { - "@commitlint/execute-rule": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-15.0.0.tgz", - "integrity": "sha512-pyE4ApxjbWhb1TXz5vRiGwI2ssdMMgZbaaheZq1/7WC0xRnqnIhE1yUC1D2q20qPtvkZPstTYvMiRVtF+DvjUg==", - "dev": true, - "optional": true - }, - "@commitlint/load": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-15.0.0.tgz", - "integrity": "sha512-Ak1YPeOhvxmY3ioe0o6m1yLGvUAYb4BdfGgShU8jiTCmU3Mnmms0Xh/kfQz8AybhezCC3AmVTyBLaBZxOHR8kg==", - "dev": true, - "optional": true, - "requires": { - "@commitlint/execute-rule": "^15.0.0", - "@commitlint/resolve-extends": "^15.0.0", - "@commitlint/types": "^15.0.0", - "@endemolshinegroup/cosmiconfig-typescript-loader": "^3.0.2", - "chalk": "^4.0.0", - "cosmiconfig": "^7.0.0", - "lodash": "^4.17.19", - "resolve-from": "^5.0.0", - "typescript": "^4.4.3" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "optional": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "optional": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "optional": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "optional": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "optional": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@commitlint/resolve-extends": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-15.0.0.tgz", - "integrity": "sha512-7apfRJjgJsKja7lHsPfEFixKjA/fk/UeD3owkOw1174yYu4u8xBDLSeU3IinGPdMuF9m245eX8wo7vLUy+EBSg==", - "dev": true, - "optional": true, - "requires": { - "import-fresh": "^3.0.0", - "lodash": "^4.17.19", - "resolve-from": "^5.0.0", - "resolve-global": "^1.0.0" - } - }, - "@commitlint/types": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-15.0.0.tgz", - "integrity": "sha512-OMSLX+QJnyNoTwws54ULv9sOvuw9GdVezln76oyUd4YbMMJyaav62aSXDuCdWyL2sm9hTkSzyEi52PNaIj/vqw==", - "dev": true, - "optional": true, - "requires": { - "chalk": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "optional": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "optional": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "optional": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "optional": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "optional": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "dargs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - } - }, - "date-fns": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", - "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==" - }, - "date-fns-tz": { - "version": "1.3.6", - "resolved": "https://registry.npmmirror.com/date-fns-tz/-/date-fns-tz-1.3.6.tgz", - "integrity": "sha512-C8q7mErvG4INw1ZwAFmPlGjEo5Sv4udjKVbTc03zpP9cu6cp5AemFzKhz0V68LGcWEtX5mJudzzg3G04emIxLA==", - "requires": {} - }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - } - }, - "decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", - "dev": true - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", - "dev": true - }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "delegate": { - "version": "3.2.0", - "resolved": "https://registry.npmmirror.com/delegate/-/delegate-3.2.0.tgz", - "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" - }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true - }, - "detect-indent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", - "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==", - "dev": true - }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true - }, - "detective": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", - "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", - "dev": true, - "requires": { - "acorn-node": "^1.6.1", - "defined": "^1.0.0", - "minimist": "^1.1.1" - } - }, - "didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "optional": true - }, - "diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true - } - } - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true - }, - "domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dev": true, - "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true - } - } - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "dev": true, - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dev": true, - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "requires": { - "is-obj": "^2.0.0" - }, - "dependencies": { - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true - } - } - }, - "dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "dev": true - }, - "dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", - "dev": true - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "echarts": { - "version": "5.3.3", - "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.3.3.tgz", - "integrity": "sha512-BRw2serInRwO5SIwRviZ6Xgm5Lb7irgz+sLiFMmy/HOaf4SQ+7oYqxKzRHAKp4xHQ05AuHw1xvoQWJjDQq/FGw==", - "requires": { - "tslib": "2.3.0", - "zrender": "5.3.2" - }, - "dependencies": { - "tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" - } - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "ejs": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", - "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==", - "dev": true, - "requires": { - "jake": "^10.6.1" - } - }, - "electron-to-chromium": { - "version": "1.4.235", - "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.235.tgz", - "integrity": "sha512-eNU2SmVZYTzYVA5aAWmhAJbdVil5/8H5nMq6kGD0Yxd4k2uKIuT8YmS46I0QXY7iOoPPcb6jjem9/2xyuH5+XQ==", - "dev": true - }, - "element-resize-detector": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/element-resize-detector/-/element-resize-detector-1.2.4.tgz", - "integrity": "sha512-Fl5Ftk6WwXE0wqCgNoseKWndjzZlDCwuPTcoVZfCP9R3EHQF8qUtr3YUPNETegRBOKqQKPW3n4kiIWngGi8tKg==", - "requires": { - "batch-processor": "1.0.0" - } - }, - "email-addresses": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz", - "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==", - "dev": true - }, - "emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "requires": { - "iconv-lite": "^0.6.2" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "enhanced-resolve": { - "version": "5.10.0", - "resolved": "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", - "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", - "dev": true, - "peer": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" - } - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true - }, - "env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==" - }, - "err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" - }, - "errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "optional": true, - "requires": { - "prr": "~1.0.1" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", - "dev": true - }, - "esbuild": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.15.6.tgz", - "integrity": "sha512-sgLOv3l4xklvXzzczhRwKRotyrfyZ2i1fCS6PTOLPd9wevDPArGU8HFtHrHCOcsMwTjLjzGm15gvC8uxVzQf+w==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "@esbuild/linux-loong64": "0.15.6", - "esbuild-android-64": "0.15.6", - "esbuild-android-arm64": "0.15.6", - "esbuild-darwin-64": "0.15.6", - "esbuild-darwin-arm64": "0.15.6", - "esbuild-freebsd-64": "0.15.6", - "esbuild-freebsd-arm64": "0.15.6", - "esbuild-linux-32": "0.15.6", - "esbuild-linux-64": "0.15.6", - "esbuild-linux-arm": "0.15.6", - "esbuild-linux-arm64": "0.15.6", - "esbuild-linux-mips64le": "0.15.6", - "esbuild-linux-ppc64le": "0.15.6", - "esbuild-linux-riscv64": "0.15.6", - "esbuild-linux-s390x": "0.15.6", - "esbuild-netbsd-64": "0.15.6", - "esbuild-openbsd-64": "0.15.6", - "esbuild-sunos-64": "0.15.6", - "esbuild-windows-32": "0.15.6", - "esbuild-windows-64": "0.15.6", - "esbuild-windows-arm64": "0.15.6" - }, - "dependencies": { - "esbuild-linux-64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.15.6.tgz", - "integrity": "sha512-gQPksyrEYfA4LJwyfTQWAZaVZCx4wpaLrSzo2+Xc9QLC+i/sMWmX31jBjrn4nLJCd79KvwCinto36QC7BEIU/A==", - "dev": true, - "optional": true, - "peer": true - }, - "esbuild-windows-64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.15.6.tgz", - "integrity": "sha512-KpPOh4aTOo//g9Pk2oVAzXMpc9Sz9n5A9sZTmWqDSXCiiachfFhbuFlsKBGATYCVitXfmBIJ4nNYYWSOdz4hQg==", - "dev": true, - "optional": true, - "peer": true - } - } - }, - "esbuild-android-64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.15.6.tgz", - "integrity": "sha512-Z1CHSgB1crVQi2LKSBwSkpaGtaloVz0ZIYcRMsvHc3uSXcR/x5/bv9wcZspvH/25lIGTaViosciS/NS09ERmVA==", - "dev": true, - "optional": true, - "peer": true - }, - "esbuild-android-arm64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.6.tgz", - "integrity": "sha512-mvM+gqNxqKm2pCa3dnjdRzl7gIowuc4ga7P7c3yHzs58Im8v/Lfk1ixSgQ2USgIywT48QWaACRa3F4MG7djpSw==", - "dev": true, - "optional": true, - "peer": true - }, - "esbuild-darwin-64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.6.tgz", - "integrity": "sha512-BsfVt3usScAfGlXJiGtGamwVEOTM8AiYiw1zqDWhGv6BncLXCnTg1As+90mxWewdTZKq3iIy8s9g8CKkrrAXVw==", - "dev": true, - "optional": true, - "peer": true - }, - "esbuild-darwin-arm64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.6.tgz", - "integrity": "sha512-CnrAeJaEpPakUobhqO4wVSA4Zm6TPaI5UY4EsI62j9mTrjIyQPXA1n4Ju6Iu5TVZRnEqV6q8blodgYJ6CJuwCA==", - "dev": true, - "optional": true, - "peer": true - }, - "esbuild-freebsd-64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.6.tgz", - "integrity": "sha512-+qFdmqi+jkAsxsNJkaWVrnxEUUI50nu6c3MBVarv3RCDCbz7ZS1a4ZrdkwEYFnKcVWu6UUE0Kkb1SQ1yGEG6sg==", - "dev": true, - "optional": true, - "peer": true - }, - "esbuild-freebsd-arm64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.6.tgz", - "integrity": "sha512-KtQkQOhnNciXm2yrTYZMD3MOm2zBiiwFSU+dkwNbcfDumzzUprr1x70ClTdGuZwieBS1BM/k0KajRQX7r504Xw==", - "dev": true, - "optional": true, - "peer": true - }, - "esbuild-linux-32": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.15.6.tgz", - "integrity": "sha512-IAkDNz3TpxwISTGVdQijwyHBZrbFgLlRi5YXcvaEHtgbmayLSDcJmH5nV1MFgo/x2QdKcHBkOYHdjhKxUAcPwg==", - "dev": true, - "optional": true, - "peer": true - }, - "esbuild-linux-64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.29.tgz", - "integrity": "sha512-iaEuLhssReAKE7HMwxwFJFn7D/EXEs43fFy5CJeA4DGmU6JHh0qVJD2p/UP46DvUXLRKXsXw0i+kv5TdJ1w5pg==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.6.tgz", - "integrity": "sha512-xZ0Bq2aivsthDjA/ytQZzxrxIZbG0ATJYMJxNeOIBc1zUjpbVpzBKgllOZMsTSXMHFHGrow6TnCcgwqY0+oEoQ==", - "dev": true, - "optional": true, - "peer": true - }, - "esbuild-linux-arm64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.6.tgz", - "integrity": "sha512-aovDkclFa6C9EdZVBuOXxqZx83fuoq8097xZKhEPSygwuy4Lxs8J4anHG7kojAsR+31lfUuxzOo2tHxv7EiNHA==", - "dev": true, - "optional": true, - "peer": true - }, - "esbuild-linux-mips64le": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.6.tgz", - "integrity": "sha512-wVpW8wkWOGizsCqCwOR/G3SHwhaecpGy3fic9BF1r7vq4djLjUcA8KunDaBCjJ6TgLQFhJ98RjDuyEf8AGjAvw==", - "dev": true, - "optional": true, - "peer": true - }, - "esbuild-linux-ppc64le": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.6.tgz", - "integrity": "sha512-z6w6gsPH/Y77uchocluDC8tkCg9rfkcPTePzZKNr879bF4tu7j9t255wuNOCE396IYEGxY7y8u2HJ9i7kjCLVw==", - "dev": true, - "optional": true, - "peer": true - }, - "esbuild-linux-riscv64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.6.tgz", - "integrity": "sha512-pfK/3MJcmbfU399TnXW5RTPS1S+ID6ra+CVj9TFZ2s0q9Ja1F5A1VirUUvViPkjiw+Kq3zveyn6U09Wg1zJXrw==", - "dev": true, - "optional": true, - "peer": true - }, - "esbuild-linux-s390x": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.6.tgz", - "integrity": "sha512-OZeeDu32liefcwAE63FhVqM4heWTC8E3MglOC7SK0KYocDdY/6jyApw0UDkDHlcEK9mW6alX/SH9r3PDjcCo/Q==", - "dev": true, - "optional": true, - "peer": true - }, - "esbuild-netbsd-64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.6.tgz", - "integrity": "sha512-kaxw61wcHMyiEsSsi5ut1YYs/hvTC2QkxJwyRvC2Cnsz3lfMLEu8zAjpBKWh9aU/N0O/gsRap4wTur5GRuSvBA==", - "dev": true, - "optional": true, - "peer": true - }, - "esbuild-node-loader": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/esbuild-node-loader/-/esbuild-node-loader-0.1.1.tgz", - "integrity": "sha512-n24xYzMfKmPupUZgs0QYBr52HUSh1M1vDtBfkEVa6pdENqo5+U5WP+zaj4Iw2MinuYk1axLW8+NVutrBCkrdmA==", - "dev": true, - "requires": { - "esbuild": "^0.12.6" - }, - "dependencies": { - "esbuild": { - "version": "0.12.29", - "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.12.29.tgz", - "integrity": "sha512-w/XuoBCSwepyiZtIRsKsetiLDUVGPVw1E/R3VTFSecIy8UR7Cq3SOtwKHJMFoVqqVG36aGkzh4e8BvpO1Fdc7g==", - "dev": true - } - } - }, - "esbuild-openbsd-64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.6.tgz", - "integrity": "sha512-CuoY60alzYfIZapUHqFXqXbj88bbRJu8Fp9okCSHRX2zWIcGz4BXAHXiG7dlCye5nFVrY72psesLuWdusyf2qw==", - "dev": true, - "optional": true, - "peer": true - }, - "esbuild-register": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-2.6.0.tgz", - "integrity": "sha512-2u4AtnCXP5nivtIxZryiZOUcEQkOzFS7UhAqibUEmaTAThJ48gDLYTBF/Fsz+5r0hbV1jrFE6PQvPDUrKZNt/Q==", - "dev": true, - "requires": { - "esbuild": "^0.12.8", - "jsonc-parser": "^3.0.0" - }, - "dependencies": { - "esbuild": { - "version": "0.12.29", - "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.12.29.tgz", - "integrity": "sha512-w/XuoBCSwepyiZtIRsKsetiLDUVGPVw1E/R3VTFSecIy8UR7Cq3SOtwKHJMFoVqqVG36aGkzh4e8BvpO1Fdc7g==", - "dev": true - } - } - }, - "esbuild-sunos-64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.6.tgz", - "integrity": "sha512-1ceefLdPWcd1nW/ZLruPEYxeUEAVX0YHbG7w+BB4aYgfknaLGotI/ZvPWUZpzhC8l1EybrVlz++lm3E6ODIJOg==", - "dev": true, - "optional": true, - "peer": true - }, - "esbuild-windows-32": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.15.6.tgz", - "integrity": "sha512-pBqdOsKqCD5LRYiwF29PJRDJZi7/Wgkz46u3d17MRFmrLFcAZDke3nbdDa1c8YgY78RiemudfCeAemN8EBlIpA==", - "dev": true, - "optional": true, - "peer": true - }, - "esbuild-windows-64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.29.tgz", - "integrity": "sha512-X9cW/Wl95QjsH8WUyr3NqbmfdU72jCp71cH3pwPvI4CgBM2IeOUDdbt6oIGljPu2bf5eGDIo8K3Y3vvXCCTd8A==", - "dev": true, - "optional": true - }, - "esbuild-windows-arm64": { - "version": "0.15.6", - "resolved": "https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.6.tgz", - "integrity": "sha512-DB3G2x9OvFEa00jV+OkDBYpufq5x/K7a6VW6E2iM896DG4ZnAvJKQksOsCPiM1DUaa+DrijXAQ/ZOcKAqf/3Hg==", - "dev": true, - "optional": true, - "peer": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - } - } - }, - "eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "dev": true, - "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - }, - "globals": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", - "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - } - } - }, - "eslint-config-prettier": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", - "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", - "dev": true, - "requires": {} - }, - "eslint-define-config": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/eslint-define-config/-/eslint-define-config-1.0.9.tgz", - "integrity": "sha512-LRzNlRo9sv43BAXY+nhZIUCZLRisTMEXXSqlGc2uZ8emAGyJv3FDSew2MIVRMwThexEjVxjNmeqduaexJ/GT3Q==", - "dev": true - }, - "eslint-plugin-jest": { - "version": "24.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-24.7.0.tgz", - "integrity": "sha512-wUxdF2bAZiYSKBclsUMrYHH6WxiBreNjyDxbRv345TIvPeoCEgPNEn3Sa+ZrSqsf1Dl9SqqSREXMHExlMMu1DA==", - "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "^4.0.1" - } - }, - "eslint-plugin-prettier": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz", - "integrity": "sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g==", - "dev": true, - "requires": { - "prettier-linter-helpers": "^1.0.0" - } - }, - "eslint-plugin-vue": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.20.0.tgz", - "integrity": "sha512-oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw==", - "dev": true, - "requires": { - "eslint-utils": "^2.1.0", - "natural-compare": "^1.4.0", - "semver": "^6.3.0", - "vue-eslint-parser": "^7.10.0" - } - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "dependencies": { - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - } - } - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - }, - "esno": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/esno/-/esno-0.7.3.tgz", - "integrity": "sha512-ONTHZLBipMC9uK9oqASzqYGCrjcqp/N0NXt/Q0WpYw/Ikm9he+rYER2ATx6czaFcMvwrbIXBlNe9hSEiTrNKow==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "esbuild": "^0.12.8", - "esbuild-node-loader": "^0.1.1", - "esbuild-register": "^2.6.0" - }, - "dependencies": { - "esbuild": { - "version": "0.12.29", - "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.12.29.tgz", - "integrity": "sha512-w/XuoBCSwepyiZtIRsKsetiLDUVGPVw1E/R3VTFSecIy8UR7Cq3SOtwKHJMFoVqqVG36aGkzh4e8BvpO1Fdc7g==", - "dev": true - } - } - }, - "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, - "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - } - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "eventemitter3": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz", - "integrity": "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo=" - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmmirror.com/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "peer": true - }, - "evtd": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/evtd/-/evtd-0.2.3.tgz", - "integrity": "sha512-tmiT1YUVqFjTY+BSBOAskL83xNx41iUfpvKP6Gcd/xMHjg3mnER98jXGXJyKnxCG19uPc6EhZiUC+MUyvoqCtw==" - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "execall": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", - "integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==", - "dev": true, - "requires": { - "clone-regexp": "^2.1.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "expect": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "dependencies": { - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==" - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==" - }, - "fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", - "dev": true - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "filelist": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", - "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==", - "dev": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "filename-reserved-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", - "integrity": "sha1-q/c9+rc10EVECr/qLZHzieu/oik=", - "dev": true - }, - "filenamify": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", - "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", - "dev": true, - "requires": { - "filename-reserved-regex": "^2.0.0", - "strip-outer": "^1.0.1", - "trim-repeated": "^1.0.0" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-node-modules": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.1.2.tgz", - "integrity": "sha512-x+3P4mbtRPlSiVE1Qco0Z4YLU8WFiFcuWTf3m75OV9Uzcfs2Bg+O9N+r/K0AnmINBW06KpfqKwYJbFlFq4qNug==", - "dev": true, - "requires": { - "findup-sync": "^4.0.0", - "merge": "^2.1.0" - } - }, - "find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "dev": true - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "findup-sync": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz", - "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^4.0.2", - "resolve-dir": "^1.0.1" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", - "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", - "dev": true - }, - "follow-redirects": { - "version": "1.14.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.6.tgz", - "integrity": "sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A==" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==" - }, - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", - "dev": true - }, - "fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "dependencies": { - "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true - } - } - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "requires": { - "minipass": "^3.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - } - }, - "gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", - "requires": { - "globule": "^1.0.0" - } - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "dev": true - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "gh-pages": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-3.2.3.tgz", - "integrity": "sha512-jA1PbapQ1jqzacECfjUaO9gV8uBgU6XNMV0oXLtfCX3haGLe5Atq8BxlrADhbD6/UdG9j6tZLWAkAybndOXTJg==", - "dev": true, - "requires": { - "async": "^2.6.1", - "commander": "^2.18.0", - "email-addresses": "^3.0.1", - "filenamify": "^4.3.0", - "find-cache-dir": "^3.3.1", - "fs-extra": "^8.1.0", - "globby": "^6.1.0" - }, - "dependencies": { - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - } - } - }, - "git-raw-commits": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.10.tgz", - "integrity": "sha512-sHhX5lsbG9SOO6yXdlwgEMQ/ljIn7qMpAbJZCGfXX2fq5T8M5SrDnpYk9/4HswTildcIqatsWa91vty6VhWSaQ==", - "dev": true, - "requires": { - "dargs": "^7.0.0", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - } - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true, - "peer": true - }, - "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", - "dev": true, - "requires": { - "ini": "^1.3.4" - } - }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "requires": { - "global-prefix": "^3.0.0" - } - }, - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - } - }, - "globjoin": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", - "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", - "dev": true - }, - "globule": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.4.tgz", - "integrity": "sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==", - "requires": { - "glob": "~7.1.1", - "lodash": "^4.17.21", - "minimatch": "~3.0.2" - }, - "dependencies": { - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "gonzales-pe": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", - "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "good-listener": { - "version": "1.2.2", - "resolved": "https://registry.npmmirror.com/good-listener/-/good-listener-1.2.2.tgz", - "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", - "requires": { - "delegate": "^3.1.2" - } - }, - "graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==" - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==" - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" - }, - "hash-sum": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", - "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", - "dev": true - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "header-case": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", - "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", - "dev": true, - "requires": { - "capital-case": "^1.0.4", - "tslib": "^2.0.3" - } - }, - "hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", - "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", - "dev": true - }, - "highlight.js": { - "version": "11.6.0", - "resolved": "https://registry.npmmirror.com/highlight.js/-/highlight.js-11.6.0.tgz", - "integrity": "sha512-ig1eqDzJaB0pqEvlPVIpSSyMaO92bH1N2rJpLMN/nX396wTpDA4Eq0uK+7I/2XG17pFaaKE0kjV/XPeGt7Evjw==" - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hosted-git-info": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", - "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", - "dev": true - }, - "hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", - "dev": true - }, - "html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.5" - } - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", - "dev": true, - "requires": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - } - }, - "html-tags": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", - "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==", - "dev": true - }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "dev": true, - "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - } - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "requires": { - "ms": "^2.0.0" - } - }, - "husky": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/husky/-/husky-6.0.0.tgz", - "integrity": "sha512-SQS2gDTB7tBN486QSoKPKQItZw97BMOd+Kdb6ghfpBc0yXyzrddI0oDV5MkDAbuB4X2mO3/nj60TRMcYxwzZeQ==", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true - }, - "image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "dev": true, - "optional": true - }, - "import-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", - "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", - "dev": true, - "requires": { - "import-from": "^3.0.0" - } - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - } - } - }, - "import-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", - "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - } - }, - "import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "dev": true - }, - "import-local": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", - "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", - "dev": true, - "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" - }, - "is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", - "dev": true - }, - "is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", - "dev": true, - "requires": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - } - }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true - }, - "is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "dev": true, - "requires": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, - "is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", - "requires": { - "has": "^1.0.3" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", - "dev": true - }, - "is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" - }, - "is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - }, - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" - }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", - "dev": true - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", - "dev": true, - "requires": { - "text-extensions": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "is-what": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", - "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - } - }, - "istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jake": { - "version": "10.8.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", - "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", - "dev": true, - "requires": { - "async": "0.9.x", - "chalk": "^2.4.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", - "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", - "dev": true, - "requires": { - "@jest/core": "^27.5.1", - "import-local": "^3.0.2", - "jest-cli": "^27.5.1" - } - }, - "jest-changed-files": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", - "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - } - }, - "jest-circus": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", - "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "dependencies": { - "@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true - } - } - }, - "jest-cli": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", - "dev": true, - "requires": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - } - }, - "jest-config": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", - "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", - "dev": true, - "requires": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "babel-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", - "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", - "dev": true, - "requires": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - } - }, - "babel-preset-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", - "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^27.5.1", - "babel-preset-current-node-syntax": "^1.0.0" - } - } - } - }, - "jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - } - }, - "jest-docblock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", - "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" - } - }, - "jest-environment-jsdom": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", - "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" - }, - "dependencies": { - "@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true - } - } - }, - "jest-environment-node": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", - "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "dependencies": { - "@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true - } - } - }, - "jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "dev": true - }, - "jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "dependencies": { - "@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true - } - } - }, - "jest-jasmine2": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", - "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" - }, - "dependencies": { - "@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true - } - } - }, - "jest-leak-detector": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", - "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", - "dev": true, - "requires": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - } - }, - "jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - } - }, - "jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-mock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", - "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true - } - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "requires": {} - }, - "jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", - "dev": true - }, - "jest-resolve": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", - "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - } - }, - "jest-resolve-dependencies": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", - "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" - } - }, - "jest-runner": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", - "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", - "dev": true, - "requires": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "dependencies": { - "@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true - } - } - }, - "jest-runtime": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", - "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - } - }, - "jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - }, - "dependencies": { - "@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true - } - } - }, - "jest-snapshot": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", - "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", - "dev": true, - "requires": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "dependencies": { - "@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true - } - } - }, - "jest-validate": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "leven": "^3.1.0", - "pretty-format": "^27.5.1" - }, - "dependencies": { - "camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", - "dev": true - } - } - }, - "jest-watcher": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", - "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", - "dev": true, - "requires": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.5.1", - "string-length": "^4.0.1" - }, - "dependencies": { - "@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true - } - } - }, - "jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "@types/node": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", - "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==", - "dev": true - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" - }, - "jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dev": true, - "requires": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" - }, - "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true - }, - "jsonc-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", - "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", - "dev": true - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - }, - "dependencies": { - "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true, - "optional": true - } - } - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true - }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "klona": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", - "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", - "dev": true - }, - "known-css-properties": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.21.0.tgz", - "integrity": "sha512-sZLUnTqimCkvkgRS+kbPlYW5o8q5w1cu+uIisKpEWkj31I8mx8kNG162DwRav8Zirkva6N5uoFsm9kzK4mUXjw==", - "dev": true - }, - "less": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/less/-/less-4.1.2.tgz", - "integrity": "sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA==", - "dev": true, - "requires": { - "copy-anything": "^2.0.1", - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "make-dir": "^2.1.0", - "mime": "^1.4.1", - "needle": "^2.5.2", - "parse-node-version": "^1.0.1", - "source-map": "~0.6.0", - "tslib": "^2.3.0" - }, - "dependencies": { - "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true, - "optional": true - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "optional": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "optional": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "optional": true - } - } - }, - "less-loader": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-9.1.0.tgz", - "integrity": "sha512-/BPur/W4NaDBvw4A7pTGMtKpAsAnexeJdw2VWRVzWEQCNX2FboFa1GUIFwkzBFwX5x/q7M/Srtng96QnhV5wIA==", - "dev": true, - "requires": { - "klona": "^2.0.4" - } - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "dependencies": { - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - } - } - }, - "lilconfig": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", - "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==", - "dev": true - }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" - }, - "lint-staged": { - "version": "11.2.6", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.2.6.tgz", - "integrity": "sha512-Vti55pUnpvPE0J9936lKl0ngVeTdSZpEdTNhASbkaWX7J5R9OEifo1INBGQuGW4zmy6OG+TcWPJ3m5yuy5Q8Tg==", - "dev": true, - "requires": { - "cli-truncate": "2.1.0", - "colorette": "^1.4.0", - "commander": "^8.2.0", - "cosmiconfig": "^7.0.1", - "debug": "^4.3.2", - "enquirer": "^2.3.6", - "execa": "^5.1.1", - "listr2": "^3.12.2", - "micromatch": "^4.0.4", - "normalize-path": "^3.0.0", - "please-upgrade-node": "^3.2.0", - "string-argv": "0.3.1", - "stringify-object": "3.3.0", - "supports-color": "8.1.1" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "listr2": { - "version": "3.13.5", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.13.5.tgz", - "integrity": "sha512-3n8heFQDSk+NcwBn3CgxEibZGaRzx+pC64n3YjpMD1qguV4nWus3Al+Oo3KooqFKTQEJ1v7MmnbnyyNspgx3NA==", - "dev": true, - "requires": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.16", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rfdc": "^1.3.0", - "rxjs": "^7.4.0", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", - "dev": true - }, - "rxjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz", - "integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==", - "dev": true, - "requires": { - "tslib": "~2.1.0" - } - }, - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true - } - } - }, - "loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "dev": true, - "peer": true - }, - "local-pkg": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.1.tgz", - "integrity": "sha512-lL87ytIGP2FU5PWwNDo0w3WhIo2gopIAxPg9RxDYF7m4rr5ahuZxP22xnJHIvaLTe4Z9P6uKKY2UHiwyB4pcrw==", - "dev": true - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true, - "optional": true - }, - "lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" - }, - "lodash.map": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", - "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "lodash.topath": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/lodash.topath/-/lodash.topath-4.5.2.tgz", - "integrity": "sha1-NhY1Hzu6YZlKCTGYlmC9AyVP0Ak=", - "dev": true - }, - "lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true - }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - } - }, - "log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dev": true, - "requires": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "longest": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz", - "integrity": "sha1-eB4YMpaqlPbU2RbcM10NF676I/g=", - "dev": true - }, - "longest-streak": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", - "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", - "dev": true - }, - "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dev": true, - "requires": { - "tslib": "^2.0.3" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", - "requires": { - "sourcemap-codec": "^1.4.4" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true, - "optional": true - }, - "make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "requires": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - } - }, - "makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "requires": { - "tmpl": "1.0.5" - } - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" - }, - "mathml-tag-names": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", - "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", - "dev": true - }, - "mdast-util-from-markdown": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", - "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", - "dev": true, - "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-to-string": "^2.0.0", - "micromark": "~2.11.0", - "parse-entities": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - } - }, - "mdast-util-to-markdown": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz", - "integrity": "sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "longest-streak": "^2.0.0", - "mdast-util-to-string": "^2.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.0.0", - "zwitch": "^1.0.0" - } - }, - "mdast-util-to-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", - "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", - "dev": true - }, - "meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - } - }, - "merge": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz", - "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==", - "dev": true - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromark": { - "version": "2.11.4", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", - "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", - "dev": true, - "requires": { - "debug": "^4.0.0", - "parse-entities": "^2.0.0" - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "optional": true - }, - "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" - }, - "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "requires": { - "mime-db": "1.51.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - } - }, - "minipass": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz", - "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==", - "requires": { - "yallist": "^4.0.0" - } - }, - "minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", - "requires": { - "encoding": "^0.1.12", - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" - } - }, - "minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "requires": { - "minipass": "^3.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "mitt": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-2.1.0.tgz", - "integrity": "sha512-ILj2TpLiysu2wkBbWjAmww7TkZb65aiQO+DkVdUTBpBXq+MHYiETENkKFMtsJZX1Lf4pe4QOrTSjIfUwN5lRdg==" - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "mockjs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mockjs/-/mockjs-1.1.0.tgz", - "integrity": "sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==", - "requires": { - "commander": "*" - } - }, - "modern-normalize": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/modern-normalize/-/modern-normalize-1.1.0.tgz", - "integrity": "sha512-2lMlY1Yc1+CUy0gw4H95uNN7vjbpoED7NNRSBHE25nWfLBdmMzFCsPshlzbxHz+gYMcBEUN8V4pU16prcdPSgA==", - "dev": true - }, - "mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "multimatch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", - "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", - "dev": true, - "requires": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" - }, - "dependencies": { - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true - } - } - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "naive-ui": { - "version": "2.31.0", - "resolved": "https://registry.npmmirror.com/naive-ui/-/naive-ui-2.31.0.tgz", - "integrity": "sha512-70PHh1wDo6GP87MquQE4hHxMaISX6y/SWwmAzS86XfK+1gBCpQPcANHrmxsjPncRxk6Zq9CDeW6tzAqw6qUtfA==", - "requires": { - "@css-render/plugin-bem": "^0.15.10", - "@css-render/vue3-ssr": "^0.15.10", - "@types/lodash": "^4.14.181", - "@types/lodash-es": "^4.17.6", - "async-validator": "^4.0.7", - "css-render": "^0.15.10", - "date-fns": "^2.28.0", - "date-fns-tz": "^1.3.3", - "evtd": "^0.2.3", - "highlight.js": "^11.5.0", - "lodash": "^4.17.21", - "lodash-es": "^4.17.21", - "seemly": "^0.3.4", - "treemate": "^0.3.11", - "vdirs": "^0.1.8", - "vooks": "^0.2.12", - "vueuc": "^0.4.47" - }, - "dependencies": { - "@types/lodash": { - "version": "4.14.181", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.181.tgz", - "integrity": "sha512-n3tyKthHJbkiWhDZs3DkhkCzt2MexYHXlX0td5iMplyfwketaOeKboEVBqzceH7juqvEg3q5oUoBFxSLu7zFag==" - } - } - }, - "nan": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz", - "integrity": "sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA==" - }, - "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "needle": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", - "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", - "dev": true, - "optional": true, - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "optional": true - } - } - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true, - "peer": true - }, - "no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dev": true, - "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node-emoji": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", - "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", - "dev": true, - "requires": { - "lodash": "^4.17.21" - } - }, - "node-gyp": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", - "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", - "requires": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^9.1.0", - "nopt": "^5.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", - "dev": true - }, - "node-sass": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-7.0.3.tgz", - "integrity": "sha512-8MIlsY/4dXUkJDYht9pIWBhMil3uHmE8b/AdJPjmFn1nBx9X9BASzfzmsCy0uCCb8eqI3SYYzVPDswWqSx7gjw==", - "requires": { - "async-foreach": "^0.1.3", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "gaze": "^1.0.0", - "get-stdin": "^4.0.1", - "glob": "^7.0.3", - "lodash": "^4.17.15", - "meow": "^9.0.0", - "nan": "^2.13.2", - "node-gyp": "^8.4.1", - "npmlog": "^5.0.0", - "request": "^2.88.0", - "sass-graph": "^4.0.1", - "stdout-stream": "^1.4.0", - "true-case-path": "^1.0.2" - }, - "dependencies": { - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==" - }, - "meow": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", - "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", - "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize": "^1.2.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - } - } - } - }, - "nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "requires": { - "abbrev": "1" - } - }, - "normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "requires": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true - }, - "normalize-selector": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", - "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "requires": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true - }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", - "dev": true - }, - "object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" - }, - "object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "dependencies": { - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - } - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dev": true, - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "parchment": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/parchment/-/parchment-1.1.4.tgz", - "integrity": "sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg==" - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", - "dev": true, - "requires": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true - }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dev": true, - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "path-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", - "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", - "dev": true, - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "path-to-regexp": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.0.tgz", - "integrity": "sha512-f66KywYG6+43afgE/8j/GoiNyygk/bnoCbps++3ErRKsIYkGGupyv07R2Ok5m9i67Iqc+T2g1eAUGUPzWhYTyg==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinia": { - "version": "2.0.16", - "resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.0.16.tgz", - "integrity": "sha512-9/LMVO+/epny1NBfC77vnps4g3JRezxhhoF1xLUk8mZkUIxVnwfEAIRiAX8mYBTD/KCwZqnDMqXc8w3eU0FQGg==", - "requires": { - "@vue/devtools-api": "^6.1.4", - "vue-demi": "*" - } - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", - "dev": true, - "requires": { - "semver-compare": "^1.0.0" - } - }, - "postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", - "dev": true, - "requires": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "postcss-js": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-3.0.3.tgz", - "integrity": "sha512-gWnoWQXKFw65Hk/mi2+WTQTHdPD5UJdDXZmX073EY/B3BWnYjO4F4t0VneTCnCGQ5E5GsCdMkzPaTXwl3r5dJw==", - "dev": true, - "requires": { - "camelcase-css": "^2.0.1", - "postcss": "^8.1.6" - }, - "dependencies": { - "nanoid": { - "version": "3.1.30", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", - "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", - "dev": true - }, - "postcss": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", - "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", - "dev": true, - "requires": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" - } - }, - "source-map-js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", - "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", - "dev": true - } - } - }, - "postcss-less": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-3.1.4.tgz", - "integrity": "sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA==", - "dev": true, - "requires": { - "postcss": "^7.0.14" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - } - } - }, - "postcss-load-config": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.0.tgz", - "integrity": "sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==", - "dev": true, - "requires": { - "import-cwd": "^3.0.0", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - } - }, - "postcss-media-query-parser": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", - "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", - "dev": true - }, - "postcss-nested": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", - "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.6" - } - }, - "postcss-resolve-nested-selector": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", - "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", - "dev": true - }, - "postcss-safe-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz", - "integrity": "sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g==", - "dev": true, - "requires": { - "postcss": "^7.0.26" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - } - } - }, - "postcss-sass": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.4.4.tgz", - "integrity": "sha512-BYxnVYx4mQooOhr+zer0qWbSPYnarAy8ZT7hAQtbxtgVf8gy+LSLT/hHGe35h14/pZDTw1DsxdbrwxBN++H+fg==", - "dev": true, - "requires": { - "gonzales-pe": "^4.3.0", - "postcss": "^7.0.21" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - } - } - }, - "postcss-scss": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-2.1.1.tgz", - "integrity": "sha512-jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA==", - "dev": true, - "requires": { - "postcss": "^7.0.6" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - } - } - }, - "postcss-selector-parser": { - "version": "6.0.8", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.8.tgz", - "integrity": "sha512-D5PG53d209Z1Uhcc0qAZ5U3t5HagH3cxu+WLZ22jt3gLUpXM4eXXfiO14jiDWST3NNooX/E8wISfOhZ9eIjGTQ==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-sorting": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-5.0.1.tgz", - "integrity": "sha512-Y9fUFkIhfrm6i0Ta3n+89j56EFqaNRdUKqXyRp6kvTcSXnmgEjaVowCXH+JBe9+YKWqd4nc28r2sgwnzJalccA==", - "dev": true, - "requires": { - "lodash": "^4.17.14", - "postcss": "^7.0.17" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - } - } - }, - "postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "prettier": { - "version": "2.7.1", - "resolved": "https://registry.npmmirror.com/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", - "dev": true - }, - "prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "requires": { - "fast-diff": "^1.1.2" - } - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", - "dev": true - }, - "pretty-quick": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-3.1.3.tgz", - "integrity": "sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA==", - "dev": true, - "requires": { - "chalk": "^3.0.0", - "execa": "^4.0.0", - "find-up": "^4.1.0", - "ignore": "^5.1.4", - "mri": "^1.1.5", - "multimatch": "^4.0.0" - }, - "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true - } - } - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==" - }, - "promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "requires": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - } - }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true, - "optional": true - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "purgecss": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-4.1.3.tgz", - "integrity": "sha512-99cKy4s+VZoXnPxaoM23e5ABcP851nC2y2GROkkjS8eJaJtlciGavd7iYAw2V84WeBqggZ12l8ef44G99HmTaw==", - "dev": true, - "requires": { - "commander": "^8.0.0", - "glob": "^7.1.7", - "postcss": "^8.3.5", - "postcss-selector-parser": "^6.0.6" - }, - "dependencies": { - "nanoid": { - "version": "3.1.30", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", - "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", - "dev": true - }, - "postcss": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", - "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", - "dev": true, - "requires": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" - } - }, - "source-map-js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", - "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", - "dev": true - } - } - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - }, - "qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "requires": { - "side-channel": "^1.0.4" - } - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true - }, - "quill": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/quill/-/quill-1.3.7.tgz", - "integrity": "sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==", - "requires": { - "clone": "^2.1.1", - "deep-equal": "^1.0.1", - "eventemitter3": "^2.0.3", - "extend": "^3.0.2", - "parchment": "^1.1.4", - "quill-delta": "^3.6.2" - }, - "dependencies": { - "fast-diff": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz", - "integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==" - }, - "quill-delta": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-3.6.3.tgz", - "integrity": "sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==", - "requires": { - "deep-equal": "^1.0.1", - "extend": "^3.0.2", - "fast-diff": "1.1.2" - } - } - } - }, - "quill-delta": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-4.2.2.tgz", - "integrity": "sha512-qjbn82b/yJzOjstBgkhtBjN2TNK+ZHP/BgUQO+j6bRhWQQdmj2lH6hXG7+nwwLF41Xgn//7/83lxs9n2BkTtTg==", - "requires": { - "fast-diff": "1.2.0", - "lodash.clonedeep": "^4.5.0", - "lodash.isequal": "^4.5.0" - } - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "peer": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" - } - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - } - }, - "reduce-css-calc": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz", - "integrity": "sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg==", - "dev": true, - "requires": { - "css-unit-converter": "^1.1.1", - "postcss-value-parser": "^3.3.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", - "dev": true - }, - "remark": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/remark/-/remark-13.0.0.tgz", - "integrity": "sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==", - "dev": true, - "requires": { - "remark-parse": "^9.0.0", - "remark-stringify": "^9.0.0", - "unified": "^9.1.0" - } - }, - "remark-parse": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", - "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", - "dev": true, - "requires": { - "mdast-util-from-markdown": "^0.8.0" - } - }, - "remark-stringify": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-9.0.1.tgz", - "integrity": "sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==", - "dev": true, - "requires": { - "mdast-util-to-markdown": "^0.6.0" - } - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "dependencies": { - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - } - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "resolve-global": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", - "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==", - "dev": true, - "requires": { - "global-dirs": "^0.1.1" - } - }, - "resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "dependencies": { - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - } - } - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==" - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true - }, - "rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", - "dev": true - }, - "rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - } - }, - "rollup": { - "version": "2.61.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.61.1.tgz", - "integrity": "sha512-BbTXlEvB8d+XFbK/7E5doIcRtxWPRiqr0eb5vQ0+2paMM04Ye4PZY5nHOQef2ix24l/L0SpLd5hwcH15QHPdvA==", - "dev": true, - "requires": { - "fsevents": "~2.3.2" - } - }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sass-graph": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-4.0.1.tgz", - "integrity": "sha512-5YCfmGBmxoIRYHnKK2AKzrAkCoQ8ozO+iumT8K4tXJXRVCPf+7s1/9KxTSW3Rbvf+7Y7b4FR3mWyLnQr3PHocA==", - "requires": { - "glob": "^7.0.0", - "lodash": "^4.17.11", - "scss-tokenizer": "^0.4.3", - "yargs": "^17.2.1" - }, - "dependencies": { - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "yargs": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.0.tgz", - "integrity": "sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g==", - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" - } - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true, - "optional": true - }, - "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "requires": { - "xmlchars": "^2.2.0" - } - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "peer": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "scss-tokenizer": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.4.3.tgz", - "integrity": "sha512-raKLgf1LI5QMQnG+RxHz6oK0sL3x3I4FN2UDLqgLOGO8hodECNnNh5BXn7fAyBxrA8zVzdQizQ6XjNJQ+uBwMw==", - "requires": { - "js-base64": "^2.4.9", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==" - } - } - }, - "seemly": { - "version": "0.3.5", - "resolved": "https://registry.npmmirror.com/seemly/-/seemly-0.3.5.tgz", - "integrity": "sha512-Z0QAytAEpkAeWbQZBQ+zb+9YYn86+AFBdWA4y7FwFtJ+ZcIO55QEVdT0sJ0DxuX8FWD4UTuwaftz/UX+MmHlhw==" - }, - "select": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/select/-/select-1.1.2.tgz", - "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "dev": true - }, - "sentence-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", - "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", - "dev": true, - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "peer": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dev": true, - "requires": { - "is-arrayish": "^0.3.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true - } - } - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" - }, - "snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", - "dev": true, - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "socks": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.0.tgz", - "integrity": "sha512-scnOe9y4VuiNUULJN72GrM26BNOjVsfPXI+j+98PkyEfsIXroa5ofyjT+FzGvn/xHs73U2JtoBYAVx9Hl4quSA==", - "requires": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - } - }, - "socks-proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", - "requires": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - } - }, - "sortablejs": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.14.0.tgz", - "integrity": "sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" - }, - "specificity": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz", - "integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==", - "dev": true - }, - "split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dev": true, - "requires": { - "readable-stream": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "requires": { - "minipass": "^3.1.1" - } - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - }, - "stdout-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", - "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", - "requires": { - "readable-stream": "^2.0.1" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - } - } - }, - "string-argv": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", - "dev": true - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "dev": true, - "requires": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "requires": { - "min-indent": "^1.0.0" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "strip-outer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", - "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.2" - } - }, - "style-search": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", - "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", - "dev": true - }, - "stylelint": { - "version": "13.13.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-13.13.1.tgz", - "integrity": "sha512-Mv+BQr5XTUrKqAXmpqm6Ddli6Ief+AiPZkRsIrAoUKFuq/ElkUh9ZMYxXD0iQNZ5ADghZKLOWz1h7hTClB7zgQ==", - "dev": true, - "requires": { - "@stylelint/postcss-css-in-js": "^0.37.2", - "@stylelint/postcss-markdown": "^0.36.2", - "autoprefixer": "^9.8.6", - "balanced-match": "^2.0.0", - "chalk": "^4.1.1", - "cosmiconfig": "^7.0.0", - "debug": "^4.3.1", - "execall": "^2.0.0", - "fast-glob": "^3.2.5", - "fastest-levenshtein": "^1.0.12", - "file-entry-cache": "^6.0.1", - "get-stdin": "^8.0.0", - "global-modules": "^2.0.0", - "globby": "^11.0.3", - "globjoin": "^0.1.4", - "html-tags": "^3.1.0", - "ignore": "^5.1.8", - "import-lazy": "^4.0.0", - "imurmurhash": "^0.1.4", - "known-css-properties": "^0.21.0", - "lodash": "^4.17.21", - "log-symbols": "^4.1.0", - "mathml-tag-names": "^2.1.3", - "meow": "^9.0.0", - "micromatch": "^4.0.4", - "normalize-selector": "^0.2.0", - "postcss": "^7.0.35", - "postcss-html": "^0.36.0", - "postcss-less": "^3.1.4", - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-safe-parser": "^4.0.2", - "postcss-sass": "^0.4.4", - "postcss-scss": "^2.1.1", - "postcss-selector-parser": "^6.0.5", - "postcss-syntax": "^0.36.2", - "postcss-value-parser": "^4.1.0", - "resolve-from": "^5.0.0", - "slash": "^3.0.0", - "specificity": "^0.4.1", - "string-width": "^4.2.2", - "strip-ansi": "^6.0.0", - "style-search": "^0.1.0", - "sugarss": "^2.0.0", - "svg-tags": "^1.0.0", - "table": "^6.6.0", - "v8-compile-cache": "^2.3.0", - "write-file-atomic": "^3.0.3" - }, - "dependencies": { - "@stylelint/postcss-css-in-js": { - "version": "0.37.2", - "resolved": "https://registry.npmjs.org/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz", - "integrity": "sha512-nEhsFoJurt8oUmieT8qy4nk81WRHmJynmVwn/Vts08PL9fhgIsMhk1GId5yAN643OzqEEb5S/6At2TZW7pqPDA==", - "dev": true, - "requires": { - "@babel/core": ">=7.9.0" - } - }, - "@stylelint/postcss-markdown": { - "version": "0.36.2", - "resolved": "https://registry.npmjs.org/@stylelint/postcss-markdown/-/postcss-markdown-0.36.2.tgz", - "integrity": "sha512-2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ==", - "dev": true, - "requires": { - "remark": "^13.0.0", - "unist-util-find-all-after": "^3.0.2" - } - }, - "autoprefixer": { - "version": "9.8.8", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", - "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", - "dev": true, - "requires": { - "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001109", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "picocolors": "^0.2.1", - "postcss": "^7.0.32", - "postcss-value-parser": "^4.1.0" - } - }, - "meow": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", - "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", - "dev": true, - "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize": "^1.2.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - } - }, - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - }, - "postcss-html": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.36.0.tgz", - "integrity": "sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==", - "dev": true, - "requires": { - "htmlparser2": "^3.10.0" - } - }, - "postcss-syntax": { - "version": "0.36.2", - "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz", - "integrity": "sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==", - "dev": true, - "requires": {} - } - } - }, - "stylelint-config-prettier": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/stylelint-config-prettier/-/stylelint-config-prettier-8.0.2.tgz", - "integrity": "sha512-TN1l93iVTXpF9NJstlvP7nOu9zY2k+mN0NSFQ/VEGz15ZIP9ohdDZTtCWHs5LjctAhSAzaILULGbgiM0ItId3A==", - "dev": true, - "requires": {} - }, - "stylelint-config-recommended": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-5.0.0.tgz", - "integrity": "sha512-c8aubuARSu5A3vEHLBeOSJt1udOdS+1iue7BmJDTSXoCBmfEQmmWX+59vYIj3NQdJBY6a/QRv1ozVFpaB9jaqA==", - "dev": true, - "requires": {} - }, - "stylelint-config-standard": { - "version": "22.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-22.0.0.tgz", - "integrity": "sha512-uQVNi87SHjqTm8+4NIP5NMAyY/arXrBgimaaT7skvRfE9u3JKXRK9KBkbr4pVmeciuCcs64kAdjlxfq6Rur7Hw==", - "dev": true, - "requires": { - "stylelint-config-recommended": "^5.0.0" - } - }, - "stylelint-order": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-4.1.0.tgz", - "integrity": "sha512-sVTikaDvMqg2aJjh4r48jsdfmqLT+nqB1MOsaBnvM3OwLx4S+WXcsxsgk5w18h/OZoxZCxuyXMh61iBHcj9Qiw==", - "dev": true, - "requires": { - "lodash": "^4.17.15", - "postcss": "^7.0.31", - "postcss-sorting": "^5.0.1" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - } - } - }, - "stylelint-scss": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-3.21.0.tgz", - "integrity": "sha512-CMI2wSHL+XVlNExpauy/+DbUcB/oUZLARDtMIXkpV/5yd8nthzylYd1cdHeDMJVBXeYHldsnebUX6MoV5zPW4A==", - "dev": true, - "requires": { - "lodash": "^4.17.15", - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - } - }, - "sugarss": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-2.0.0.tgz", - "integrity": "sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==", - "dev": true, - "requires": { - "postcss": "^7.0.2" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - } - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "svg-tags": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", - "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", - "dev": true - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "table": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.5.tgz", - "integrity": "sha512-LFNeryOqiQHqCVKzhkymKwt6ozeRhlm8IL1mE8rNUurkir4heF6PzMyRgaTa4tlyPTGGgXuvVOF/OLWiH09Lqw==", - "dev": true, - "requires": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "ajv": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", - "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } - } - }, - "tailwindcss": { - "version": "2.2.19", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-2.2.19.tgz", - "integrity": "sha512-6Ui7JSVtXadtTUo2NtkBBacobzWiQYVjYW0ZnKaP9S1ZCKQ0w7KVNz+YSDI/j7O7KCMHbOkz94ZMQhbT9pOqjw==", - "dev": true, - "requires": { - "arg": "^5.0.1", - "bytes": "^3.0.0", - "chalk": "^4.1.2", - "chokidar": "^3.5.2", - "color": "^4.0.1", - "cosmiconfig": "^7.0.1", - "detective": "^5.2.0", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.2.7", - "fs-extra": "^10.0.0", - "glob-parent": "^6.0.1", - "html-tags": "^3.1.0", - "is-color-stop": "^1.1.0", - "is-glob": "^4.0.1", - "lodash": "^4.17.21", - "lodash.topath": "^4.5.2", - "modern-normalize": "^1.1.0", - "node-emoji": "^1.11.0", - "normalize-path": "^3.0.0", - "object-hash": "^2.2.0", - "postcss-js": "^3.0.3", - "postcss-load-config": "^3.1.0", - "postcss-nested": "5.0.6", - "postcss-selector-parser": "^6.0.6", - "postcss-value-parser": "^4.1.0", - "pretty-hrtime": "^1.0.3", - "purgecss": "^4.0.3", - "quick-lru": "^5.1.1", - "reduce-css-calc": "^2.1.8", - "resolve": "^1.20.0", - "tmp": "^0.2.1" - }, - "dependencies": { - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - } - } - }, - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "peer": true - }, - "tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - } - }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, - "terser": { - "version": "5.15.0", - "resolved": "https://registry.npmmirror.com/terser/-/terser-5.15.0.tgz", - "integrity": "sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA==", - "dev": true, - "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } - } - }, - "terser-webpack-plugin": { - "version": "5.3.6", - "resolved": "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", - "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", - "dev": true, - "peer": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.14", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "terser": "^5.14.1" - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "text-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", - "dev": true - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "requires": { - "readable-stream": "3" - } - }, - "tiny-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz", - "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" - }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "requires": { - "rimraf": "^3.0.0" - } - }, - "tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", - "dev": true, - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - }, - "dependencies": { - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - } - } - }, - "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "treemate": { - "version": "0.3.11", - "resolved": "https://registry.npmmirror.com/treemate/-/treemate-0.3.11.tgz", - "integrity": "sha512-M8RGFoKtZ8dF+iwJfAJTOH/SM4KluKOKRJpjCMhI8bG3qB74zrFoArKZ62ll0Fr3mqkMJiQOmWYkdYgDeITYQg==" - }, - "trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==" - }, - "trim-repeated": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", - "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.2" - } - }, - "trough": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", - "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", - "dev": true - }, - "true-case-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", - "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", - "requires": { - "glob": "^7.1.2" - } - }, - "ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", - "dev": true, - "optional": true, - "requires": { - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - }, - "dependencies": { - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true, - "optional": true - } - } - }, - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==" - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "4.8.2", - "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.8.2.tgz", - "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==", - "devOptional": true - }, - "unified": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", - "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", - "dev": true, - "requires": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" - }, - "dependencies": { - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true - } - } - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "unist-util-find-all-after": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz", - "integrity": "sha512-xaTC/AGZ0rIM2gM28YVRAFPIZpzbpDtU3dRmp7EXlNVA8ziQc4hY3H7BHXM1J49nEmiqc3svnqMReW+PGqbZKQ==", - "dev": true, - "requires": { - "unist-util-is": "^4.0.0" - } - }, - "unist-util-is": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", - "dev": true - }, - "unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", - "dev": true, - "requires": { - "@types/unist": "^2.0.2" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true - }, - "unplugin": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-0.3.2.tgz", - "integrity": "sha512-5d0DMYNKZU+S9eZUiBfw6Co32eRg8myUgBPoWSqG/wDFCUE/WznfSsJnZWi1P9l69x4uLJqt2qVq1xW/AsXFrw==", - "dev": true, - "requires": { - "webpack-virtual-modules": "^0.4.3" - } - }, - "unplugin-vue-components": { - "version": "0.17.21", - "resolved": "https://registry.npmjs.org/unplugin-vue-components/-/unplugin-vue-components-0.17.21.tgz", - "integrity": "sha512-jkXksUF6zkNbzHQbw1DdrsQyVoMZGESRZDIGd9x7nUP+65nHdpBCY/JmlxSjKbuTrOwfMsk6FQFa0RpRueOCKg==", - "dev": true, - "requires": { - "@antfu/utils": "^0.4.0", - "@rollup/pluginutils": "^4.1.2", - "chokidar": "^3.5.2", - "debug": "^4.3.3", - "fast-glob": "^3.2.11", - "local-pkg": "^0.4.1", - "magic-string": "^0.25.7", - "minimatch": "^3.0.4", - "resolve": "^1.21.0", - "unplugin": "^0.3.0" - }, - "dependencies": { - "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, - "requires": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - } - } - }, - "update-browserslist-db": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", - "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "upper-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", - "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", - "dev": true, - "requires": { - "tslib": "^2.0.3" - } - }, - "upper-case-first": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", - "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", - "dev": true, - "requires": { - "tslib": "^2.0.3" - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "v8-to-istanbul": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz", - "integrity": "sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "vdirs": { - "version": "0.1.8", - "resolved": "https://registry.npmmirror.com/vdirs/-/vdirs-0.1.8.tgz", - "integrity": "sha512-H9V1zGRLQZg9b+GdMk8MXDN2Lva0zx72MPahDKc30v+DtwKjfyOSXWRIX4t2mhDubM1H09gPhWeth/BJWPHGUw==", - "requires": { - "evtd": "^0.2.2" - } - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vfile": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", - "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" - } - }, - "vfile-message": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - } - }, - "vfonts": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/vfonts/-/vfonts-0.1.0.tgz", - "integrity": "sha512-vQBcvntBlnAPonAkGNM8iJ9NxE3PucA+V2W95xiN75YJKxirLJvOws2kEyOEO45T4N+YTbQOCR2m77Y05pfVhQ==" - }, - "vite": { - "version": "2.9.14", - "resolved": "https://registry.npmmirror.com/vite/-/vite-2.9.14.tgz", - "integrity": "sha512-P/UCjSpSMcE54r4mPak55hWAZPlyfS369svib/gpmz8/01L822lMPOJ/RYW6tLCe1RPvMvOsJ17erf55bKp4Hw==", - "dev": true, - "requires": { - "esbuild": "^0.14.27", - "fsevents": "~2.3.2", - "postcss": "^8.4.13", - "resolve": "^1.22.0", - "rollup": "^2.59.0" - }, - "dependencies": { - "esbuild": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.29.tgz", - "integrity": "sha512-SQS8cO8xFEqevYlrHt6exIhK853Me4nZ4aMW6ieysInLa0FMAL+AKs87HYNRtR2YWRcEIqoXAHh+Ytt5/66qpg==", - "dev": true, - "requires": { - "esbuild-android-64": "0.14.29", - "esbuild-android-arm64": "0.14.29", - "esbuild-darwin-64": "0.14.29", - "esbuild-darwin-arm64": "0.14.29", - "esbuild-freebsd-64": "0.14.29", - "esbuild-freebsd-arm64": "0.14.29", - "esbuild-linux-32": "0.14.29", - "esbuild-linux-64": "0.14.29", - "esbuild-linux-arm": "0.14.29", - "esbuild-linux-arm64": "0.14.29", - "esbuild-linux-mips64le": "0.14.29", - "esbuild-linux-ppc64le": "0.14.29", - "esbuild-linux-riscv64": "0.14.29", - "esbuild-linux-s390x": "0.14.29", - "esbuild-netbsd-64": "0.14.29", - "esbuild-openbsd-64": "0.14.29", - "esbuild-sunos-64": "0.14.29", - "esbuild-windows-32": "0.14.29", - "esbuild-windows-64": "0.14.29", - "esbuild-windows-arm64": "0.14.29" - } - }, - "esbuild-android-64": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.29.tgz", - "integrity": "sha512-tJuaN33SVZyiHxRaVTo1pwW+rn3qetJX/SRuc/83rrKYtyZG0XfsQ1ao1nEudIt9w37ZSNXR236xEfm2C43sbw==", - "dev": true, - "optional": true - }, - "esbuild-android-arm64": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.29.tgz", - "integrity": "sha512-D74dCv6yYnMTlofVy1JKiLM5JdVSQd60/rQfJSDP9qvRAI0laPXIG/IXY1RG6jobmFMUfL38PbFnCqyI/6fPXg==", - "dev": true, - "optional": true - }, - "esbuild-darwin-64": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.29.tgz", - "integrity": "sha512-+CJaRvfTkzs9t+CjGa0Oa28WoXa7EeLutQhxus+fFcu0MHhsBhlmeWHac3Cc/Sf/xPi1b2ccDFfzGYJCfV0RrA==", - "dev": true, - "optional": true - }, - "esbuild-darwin-arm64": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.29.tgz", - "integrity": "sha512-5Wgz/+zK+8X2ZW7vIbwoZ613Vfr4A8HmIs1XdzRmdC1kG0n5EG5fvKk/jUxhNlrYPx1gSY7XadQ3l4xAManPSw==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-64": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.29.tgz", - "integrity": "sha512-VTfS7Bm9QA12JK1YXF8+WyYOfvD7WMpbArtDj6bGJ5Sy5xp01c/q70Arkn596aGcGj0TvQRplaaCIrfBG1Wdtg==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-arm64": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.29.tgz", - "integrity": "sha512-WP5L4ejwLWWvd3Fo2J5mlXvG3zQHaw5N1KxFGnUc4+2ZFZknP0ST63i0IQhpJLgEJwnQpXv2uZlU1iWZjFqEIg==", - "dev": true, - "optional": true - }, - "esbuild-linux-32": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.29.tgz", - "integrity": "sha512-4myeOvFmQBWdI2U1dEBe2DCSpaZyjdQtmjUY11Zu2eQg4ynqLb8Y5mNjNU9UN063aVsCYYfbs8jbken/PjyidA==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.29.tgz", - "integrity": "sha512-OXa9D9QL1hwrAnYYAHt/cXAuSCmoSqYfTW/0CEY0LgJNyTxJKtqc5mlwjAZAvgyjmha0auS/sQ0bXfGf2wAokQ==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm64": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.29.tgz", - "integrity": "sha512-KYf7s8wDfUy+kjKymW3twyGT14OABjGHRkm9gPJ0z4BuvqljfOOUbq9qT3JYFnZJHOgkr29atT//hcdD0Pi7Mw==", - "dev": true, - "optional": true - }, - "esbuild-linux-mips64le": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.29.tgz", - "integrity": "sha512-05jPtWQMsZ1aMGfHOvnR5KrTvigPbU35BtuItSSWLI2sJu5VrM8Pr9Owym4wPvA4153DFcOJ1EPN/2ujcDt54g==", - "dev": true, - "optional": true - }, - "esbuild-linux-ppc64le": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.29.tgz", - "integrity": "sha512-FYhBqn4Ir9xG+f6B5VIQVbRuM4S6qwy29dDNYFPoxLRnwTEKToIYIUESN1qHyUmIbfO0YB4phG2JDV2JDN9Kgw==", - "dev": true, - "optional": true - }, - "esbuild-linux-riscv64": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.29.tgz", - "integrity": "sha512-eqZMqPehkb4nZcffnuOpXJQdGURGd6GXQ4ZsDHSWyIUaA+V4FpMBe+5zMPtXRD2N4BtyzVvnBko6K8IWWr36ew==", - "dev": true, - "optional": true - }, - "esbuild-linux-s390x": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.29.tgz", - "integrity": "sha512-o7EYajF1rC/4ho7kpSG3gENVx0o2SsHm7cJ5fvewWB/TEczWU7teDgusGSujxCYcMottE3zqa423VTglNTYhjg==", - "dev": true, - "optional": true - }, - "esbuild-netbsd-64": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.29.tgz", - "integrity": "sha512-/esN6tb6OBSot6+JxgeOZeBk6P8V/WdR3GKBFeFpSqhgw4wx7xWUqPrdx4XNpBVO7X4Ipw9SAqgBrWHlXfddww==", - "dev": true, - "optional": true - }, - "esbuild-openbsd-64": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.29.tgz", - "integrity": "sha512-jUTdDzhEKrD0pLpjmk0UxwlfNJNg/D50vdwhrVcW/D26Vg0hVbthMfb19PJMatzclbK7cmgk1Nu0eNS+abzoHw==", - "dev": true, - "optional": true - }, - "esbuild-sunos-64": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.29.tgz", - "integrity": "sha512-EfhQN/XO+TBHTbkxwsxwA7EfiTHFe+MNDfxcf0nj97moCppD9JHPq48MLtOaDcuvrTYOcrMdJVeqmmeQ7doTcg==", - "dev": true, - "optional": true - }, - "esbuild-windows-32": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.29.tgz", - "integrity": "sha512-uoyb0YAJ6uWH4PYuYjfGNjvgLlb5t6b3zIaGmpWPOjgpr1Nb3SJtQiK4YCPGhONgfg2v6DcJgSbOteuKXhwqAw==", - "dev": true, - "optional": true - }, - "esbuild-windows-arm64": { - "version": "0.14.29", - "resolved": "https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.29.tgz", - "integrity": "sha512-+O/PI+68fbUZPpl3eXhqGHTGK7DjLcexNnyJqtLZXOFwoAjaXlS5UBCvVcR3o2va+AqZTj8o6URaz8D2K+yfQQ==", - "dev": true, - "optional": true - }, - "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, - "requires": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - } - } - }, - "vite-plugin-compression": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/vite-plugin-compression/-/vite-plugin-compression-0.3.6.tgz", - "integrity": "sha512-aSskQCJsP3VQ8PsnY+vO7UfD5qoFMOEuzg0PG2E9Zqyx+ARmc3wr9KCgOFraZOFW1Y4UAa5BR0SMTjoxHRMJoQ==", - "dev": true, - "requires": { - "chalk": "^4.1.2", - "debug": "^4.3.2", - "fs-extra": "^10.0.0" - } - }, - "vite-plugin-html": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/vite-plugin-html/-/vite-plugin-html-2.1.2.tgz", - "integrity": "sha512-7HXkL6n7M2qDEaUV4Vnz8yM2glW4gV36d5HSBIM5gOoAG1PkuQb4Vv9FTPgPiQxq4sPRf/6IgABX0MeLVW+CyQ==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^4.1.2", - "dotenv": "^10.0.0", - "dotenv-expand": "^5.1.0", - "ejs": "^3.1.6", - "fs-extra": "^10.0.0", - "html-minifier-terser": "^6.1.0" - } - }, - "vite-plugin-mock": { - "version": "2.9.6", - "resolved": "https://registry.npmjs.org/vite-plugin-mock/-/vite-plugin-mock-2.9.6.tgz", - "integrity": "sha512-/Rm59oPppe/ncbkSrUuAxIQihlI2YcBmnbR4ST1RA2VzM1C0tEQc1KlbQvnUGhXECAGTaQN2JyasiwXP6EtKgg==", - "dev": true, - "requires": { - "@rollup/plugin-node-resolve": "^13.0.4", - "@types/mockjs": "^1.0.4", - "chalk": "^4.1.2", - "chokidar": "^3.5.2", - "connect": "^3.7.0", - "debug": "^4.3.2", - "esbuild": "0.11.3", - "fast-glob": "^3.2.7", - "path-to-regexp": "^6.2.0" - }, - "dependencies": { - "esbuild": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.11.3.tgz", - "integrity": "sha512-BzVRHcCtFepjS9WcqRjqoIxLqgpK21a8J4Zi4msSGxDxiXVO1IbcqT1KjhdDDnJxKfe7bvzZrvMEX+bVO0Elcw==", - "dev": true - } - } - }, - "vite-plugin-style-import": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/vite-plugin-style-import/-/vite-plugin-style-import-1.4.1.tgz", - "integrity": "sha512-lJCRvm7+So0hHdnSJiJPg9gD5mxtL6YY0jmhEph+k7ArpsyvqOh6han2kG5htbWWDZxHkUN9d1BuTFL//yCLLQ==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^4.1.2", - "change-case": "^4.1.2", - "debug": "^4.3.3", - "es-module-lexer": "^0.9.3", - "fs-extra": "^10.0.0", - "magic-string": "^0.25.7" - } - }, - "vooks": { - "version": "0.2.12", - "resolved": "https://registry.npmjs.org/vooks/-/vooks-0.2.12.tgz", - "integrity": "sha512-iox0I3RZzxtKlcgYaStQYKEzWWGAduMmq+jS7OrNdQo1FgGfPMubGL3uGHOU9n97NIvfFDBGnpSvkWyb/NSn/Q==", - "requires": { - "evtd": "^0.2.2" - } - }, - "vue": { - "version": "3.2.37", - "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.37.tgz", - "integrity": "sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==", - "requires": { - "@vue/compiler-dom": "3.2.37", - "@vue/compiler-sfc": "3.2.37", - "@vue/runtime-dom": "3.2.37", - "@vue/server-renderer": "3.2.37", - "@vue/shared": "3.2.37" - } - }, - "vue-demi": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.12.1.tgz", - "integrity": "sha512-QL3ny+wX8c6Xm1/EZylbgzdoDolye+VpCXRhI2hug9dJTP3OUJ3lmiKN3CsVV3mOJKwFi0nsstbgob0vG7aoIw==", - "requires": {} - }, - "vue-eslint-parser": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz", - "integrity": "sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "eslint-scope": "^5.1.1", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.2.1", - "esquery": "^1.4.0", - "lodash": "^4.17.21", - "semver": "^6.3.0" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" - } - } - } - }, - "vue-router": { - "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.1.2.tgz", - "integrity": "sha512-5BP1qXFncVRwgV/XnqzsKApdMjQPqWIpoUBdL1ynz8HyLxIX/UDAx7Ql2BjmA5CXT/p61JfZvkpiFWFpaqcfag==", - "requires": { - "@vue/devtools-api": "^6.1.4" - } - }, - "vue-types": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/vue-types/-/vue-types-4.1.1.tgz", - "integrity": "sha512-Jq2GZ/w6rExJbLA/h7nHBFLciu+YNekgox0DB64wN1snZ4IIJMq+qnqp1/vE4fc7vEjZcP5KGhLzkkSjIHLRzw==", - "requires": { - "is-plain-object": "5.0.0" - } - }, - "vue3-json-viewer": { - "version": "2.2.2", - "resolved": "https://registry.npmmirror.com/vue3-json-viewer/-/vue3-json-viewer-2.2.2.tgz", - "integrity": "sha512-56l3XDGggnpwEqZieXsSMhNT4NhtO6d7zuSAxHo4i0UVxymyY2jRb7UMQOU1ztChKALZCAzX7DlgrsnEhxu77A==", - "requires": { - "clipboard": "^2.0.10" - } - }, - "vuedraggable": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/vuedraggable/-/vuedraggable-4.1.0.tgz", - "integrity": "sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==", - "requires": { - "sortablejs": "1.14.0" - } - }, - "vueuc": { - "version": "0.4.47", - "resolved": "https://registry.npmmirror.com/vueuc/-/vueuc-0.4.47.tgz", - "integrity": "sha512-lBxGeTWLFp0O36SlcAeBrh29dxE/GboOH/0eUJhocUuE9DRrzUcVmwGau7v7ZWsxjivjJC3Qup7l9sCyA3it+g==", - "requires": { - "@css-render/vue3-ssr": "^0.15.10", - "@juggle/resize-observer": "^3.3.1", - "css-render": "^0.15.10", - "evtd": "^0.2.2", - "seemly": "^0.3.1", - "vdirs": "^0.1.4", - "vooks": "^0.2.4" - }, - "dependencies": { - "@types/node": { - "version": "14.18.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.2.tgz", - "integrity": "sha512-fqtSN5xn/bBzDxMT77C1rJg6CsH/R49E7qsGuvdPJa20HtV5zSTuLJPNfnlyVH3wauKnkHdLggTVkOW/xP9oQg==" - }, - "seemly": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/seemly/-/seemly-0.3.3.tgz", - "integrity": "sha512-mAyqemz41e9HiZPMXAn7NtTExJgztwco5cdZjrt/iViU/oFeav+Q8K1c93M/tIZZ00QkT65JMr4xXQk7Vv5hWQ==", - "requires": { - "@types/jest": "^27.0.1" - } - }, - "vdirs": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/vdirs/-/vdirs-0.1.4.tgz", - "integrity": "sha512-g2wJgE8hj/ruqEnGFEXFVC8IR4kRaPDr7Cl+SSy+A8kmNr47rL1l+0wMi51amlrTL6eQsRk+wcl4bjjfPXNzZQ==", - "requires": { - "@types/node": "^14.14.10", - "evtd": "^0.2.2" - } - }, - "vooks": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/vooks/-/vooks-0.2.10.tgz", - "integrity": "sha512-clZkEndDEUyUFP7u1dL0iijcW0p04Hhj50IVcakRrLjQkuZIr7sx6EX9oMyWgrYVjmfdX6vysnCg3OxsYl67jA==", - "requires": { - "evtd": "^0.2.2" - } - } - } - }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, - "requires": { - "xml-name-validator": "^3.0.0" - } - }, - "walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "requires": { - "makeerror": "1.0.12" - } - }, - "watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "dev": true, - "peer": true, - "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - } - }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true - }, - "webpack": { - "version": "5.74.0", - "resolved": "https://registry.npmmirror.com/webpack/-/webpack-5.74.0.tgz", - "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", - "dev": true, - "peer": true, - "requires": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "dependencies": { - "@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", - "dev": true, - "peer": true - } - } - }, - "webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, - "peer": true - }, - "webpack-virtual-modules": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.4.3.tgz", - "integrity": "sha512-5NUqC2JquIL2pBAAo/VfBP6KuGkHIZQXW/lNKupLPfhViwh8wNsu0BObtl09yuKZszeEUfbXz8xhrHvSG16Nqw==", - "dev": true - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz", - "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==", - "dev": true, - "requires": {} - }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "optional": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - }, - "zrender": { - "version": "5.3.2", - "resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.3.2.tgz", - "integrity": "sha512-8IiYdfwHj2rx0UeIGZGGU4WEVSDEdeVCaIg/fomejg1Xu6OifAL1GVzIPHg2D+MyUkbNgPWji90t0a8IDk+39w==", - "requires": { - "tslib": "2.3.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" - } - } - }, - "zwitch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", - "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", - "dev": true - } - } -} diff --git a/web/package.json b/web/package.json index 59581a3..d005cc8 100644 --- a/web/package.json +++ b/web/package.json @@ -1,10 +1,10 @@ { "name": "hotgo", - "version": "1.8.1", + "version": "2.1.0", "author": { - "name": "Ahjung", - "email": "735878602@qq.com", - "url": "https://github.com/jekip/naive-ui-admin" + "name": "MengShuai", + "email": "133814250@qq.com", + "url": "https://github.com/bufanyun/hotgo" }, "private": true, "scripts": { @@ -42,7 +42,7 @@ "lodash-es": "^4.17.21", "mitt": "^2.1.0", "mockjs": "^1.1.0", - "naive-ui": "^2.28.4", + "naive-ui": "^2.34.3", "node-sass": "^7.0.3", "pinia": "^2.0.14", "qs": "^6.10.3", @@ -109,6 +109,10 @@ } }, "keywords": [ + "hotgo", + "hg", + "gf", + "goframe", "vue", "naive-ui", "naive-ui-admin", @@ -120,13 +124,13 @@ ], "repository": { "type": "git", - "url": "git+https://github.com/jekip/naive-ui-admin.git" + "url": "git+https://github.com/bufanyun/hotgo.git" }, "license": "MIT", "bugs": { - "url": "https://github.com/jekip/naive-ui-admin/issues" + "url": "https://github.com/bufanyun/hotgo/issues" }, - "homepage": "https://github.com/jekip/naive-ui-admin", + "homepage": "https://github.com/bufanyun/hotgo", "engines": { "node": "^12 || >=14" } diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml deleted file mode 100644 index 39541cb..0000000 --- a/web/pnpm-lock.yaml +++ /dev/null @@ -1,7612 +0,0 @@ -lockfileVersion: 5.3 - -specifiers: - '@commitlint/cli': ^12.1.4 - '@commitlint/config-conventional': ^12.1.4 - '@types/lodash': ^4.14.182 - '@types/node': ^15.14.9 - '@typescript-eslint/eslint-plugin': ^4.33.0 - '@typescript-eslint/parser': ^4.33.0 - '@vicons/antd': ^0.10.0 - '@vicons/ionicons5': ^0.10.0 - '@vitejs/plugin-vue': ^1.10.2 - '@vitejs/plugin-vue-jsx': ^1.3.10 - '@vue/compiler-sfc': ^3.2.33 - '@vue/eslint-config-typescript': ^7.0.0 - '@vueup/vue-quill': ^1.0.0-beta.8 - '@vueuse/core': ^5.3.0 - autoprefixer: ^10.4.7 - axios: ^0.21.4 - blueimp-md5: ^2.19.0 - commitizen: ^4.2.4 - core-js: ^3.22.5 - date-fns: ^2.28.0 - dotenv: ^10.0.0 - echarts: ^5.3.2 - element-resize-detector: ^1.2.4 - eslint: ^7.32.0 - eslint-config-prettier: ^8.5.0 - eslint-define-config: 1.0.9 - eslint-plugin-jest: ^24.7.0 - eslint-plugin-prettier: ^3.4.1 - eslint-plugin-vue: ^7.20.0 - esno: ^0.7.3 - gh-pages: ^3.2.3 - husky: ^6.0.0 - jest: ^27.5.1 - less: ^4.1.2 - less-loader: ^9.1.0 - lint-staged: ^11.2.6 - lodash: ^4.17.21 - lodash-es: ^4.17.21 - mitt: ^2.1.0 - mockjs: ^1.1.0 - naive-ui: ^2.28.4 - pinia: ^2.0.14 - postcss: ^8.4.13 - prettier: ^2.6.2 - pretty-quick: ^3.1.3 - qs: ^6.10.3 - rimraf: ^3.0.2 - stylelint: ^13.13.1 - stylelint-config-prettier: ^8.0.2 - stylelint-config-standard: ^22.0.0 - stylelint-order: ^4.1.0 - stylelint-scss: ^3.21.0 - tailwindcss: ^2.2.19 - typescript: ^4.6.4 - unplugin-vue-components: ^0.17.21 - vfonts: ^0.1.0 - vite: ^2.9.8 - vite-plugin-compression: ^0.3.6 - vite-plugin-html: ^2.1.2 - vite-plugin-mock: ^2.9.6 - vite-plugin-style-import: ^1.4.1 - vue: ^3.2.33 - vue-eslint-parser: ^7.11.0 - vue-router: ^4.0.15 - vue-types: ^4.1.1 - vuedraggable: ^4.1.0 - -dependencies: - '@vicons/antd': 0.10.0 - '@vicons/ionicons5': 0.10.0 - '@vueup/vue-quill': 1.0.0-beta.8_vue@3.2.33 - '@vueuse/core': 5.3.0_vue@3.2.33 - axios: 0.21.4 - blueimp-md5: 2.19.0 - date-fns: 2.28.0 - echarts: 5.3.2 - element-resize-detector: 1.2.4 - lodash: 4.17.21 - lodash-es: 4.17.21 - mitt: 2.1.0 - mockjs: 1.1.0 - naive-ui: 2.28.4_vue@3.2.33 - pinia: 2.0.14_typescript@4.6.4+vue@3.2.33 - qs: 6.10.3 - vfonts: 0.1.0 - vue: 3.2.33 - vue-router: 4.0.15_vue@3.2.33 - vue-types: 4.1.1_vue@3.2.33 - vuedraggable: 4.1.0_vue@3.2.33 - -devDependencies: - '@commitlint/cli': 12.1.4 - '@commitlint/config-conventional': 12.1.4 - '@types/lodash': 4.14.182 - '@types/node': 15.14.9 - '@typescript-eslint/eslint-plugin': 4.33.0_5e731fab734ce085fc02cd0ecce6c061 - '@typescript-eslint/parser': 4.33.0_eslint@7.32.0+typescript@4.6.4 - '@vitejs/plugin-vue': 1.10.2_vite@2.9.8 - '@vitejs/plugin-vue-jsx': 1.3.10 - '@vue/compiler-sfc': 3.2.33 - '@vue/eslint-config-typescript': 7.0.0_f2c1c083ca9f8be5792c7dca889a98e3 - autoprefixer: 10.4.7_postcss@8.4.13 - commitizen: 4.2.4 - core-js: 3.22.5 - dotenv: 10.0.0 - eslint: 7.32.0 - eslint-config-prettier: 8.5.0_eslint@7.32.0 - eslint-define-config: 1.0.9 - eslint-plugin-jest: 24.7.0_d82317357d846caee0597ee585a8a89b - eslint-plugin-prettier: 3.4.1_2544802fe0b6e1e28814bd742f96f471 - eslint-plugin-vue: 7.20.0_eslint@7.32.0 - esno: 0.7.3 - gh-pages: 3.2.3 - husky: 6.0.0 - jest: 27.5.1 - less: 4.1.2 - less-loader: 9.1.0_less@4.1.2 - lint-staged: 11.2.6 - postcss: 8.4.13 - prettier: 2.6.2 - pretty-quick: 3.1.3_prettier@2.6.2 - rimraf: 3.0.2 - stylelint: 13.13.1 - stylelint-config-prettier: 8.0.2_stylelint@13.13.1 - stylelint-config-standard: 22.0.0_stylelint@13.13.1 - stylelint-order: 4.1.0_stylelint@13.13.1 - stylelint-scss: 3.21.0_stylelint@13.13.1 - tailwindcss: 2.2.19_1479244b7b1ab8346eed707106c1912f - typescript: 4.6.4 - unplugin-vue-components: 0.17.21_vite@2.9.8+vue@3.2.33 - vite: 2.9.8_less@4.1.2 - vite-plugin-compression: 0.3.6_vite@2.9.8 - vite-plugin-html: 2.1.2_vite@2.9.8 - vite-plugin-mock: 2.9.6_mockjs@1.1.0+vite@2.9.8 - vite-plugin-style-import: 1.4.1_vite@2.9.8 - vue-eslint-parser: 7.11.0_eslint@7.32.0 - -packages: - - /@ampproject/remapping/2.2.0: - resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/gen-mapping': 0.1.1 - '@jridgewell/trace-mapping': 0.3.11 - dev: true - - /@antfu/utils/0.4.0: - resolution: {integrity: sha512-gqkpvjkgFUu+s3kP+Ly33OKpo5zvVY3FDFhv5BIb98SncS3KD6DNxPfNDjwHIoyXbz1leWo1j8DtRLZ1D2Jv+Q==} - dependencies: - '@types/throttle-debounce': 2.1.0 - dev: true - - /@babel/code-frame/7.12.11: - resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} - dependencies: - '@babel/highlight': 7.17.9 - dev: true - - /@babel/code-frame/7.16.7: - resolution: {integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.17.9 - dev: true - - /@babel/compat-data/7.17.10: - resolution: {integrity: sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/core/7.17.10: - resolution: {integrity: sha512-liKoppandF3ZcBnIYFjfSDHZLKdLHGJRkoWtG8zQyGJBQfIYobpnVGI5+pLBNtS6psFLDzyq8+h5HiVljW9PNA==} - engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': 2.2.0 - '@babel/code-frame': 7.16.7 - '@babel/generator': 7.17.10 - '@babel/helper-compilation-targets': 7.17.10_@babel+core@7.17.10 - '@babel/helper-module-transforms': 7.17.7 - '@babel/helpers': 7.17.9 - '@babel/parser': 7.17.10 - '@babel/template': 7.16.7 - '@babel/traverse': 7.17.10 - '@babel/types': 7.17.10 - convert-source-map: 1.8.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.1 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/generator/7.17.10: - resolution: {integrity: sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.17.10 - '@jridgewell/gen-mapping': 0.1.1 - jsesc: 2.5.2 - dev: true - - /@babel/helper-annotate-as-pure/7.16.7: - resolution: {integrity: sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.17.10 - dev: true - - /@babel/helper-compilation-targets/7.17.10_@babel+core@7.17.10: - resolution: {integrity: sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/compat-data': 7.17.10 - '@babel/core': 7.17.10 - '@babel/helper-validator-option': 7.16.7 - browserslist: 4.20.3 - semver: 6.3.0 - dev: true - - /@babel/helper-create-class-features-plugin/7.17.9_@babel+core@7.17.10: - resolution: {integrity: sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.17.10 - '@babel/helper-annotate-as-pure': 7.16.7 - '@babel/helper-environment-visitor': 7.16.7 - '@babel/helper-function-name': 7.17.9 - '@babel/helper-member-expression-to-functions': 7.17.7 - '@babel/helper-optimise-call-expression': 7.16.7 - '@babel/helper-replace-supers': 7.16.7 - '@babel/helper-split-export-declaration': 7.16.7 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/helper-environment-visitor/7.16.7: - resolution: {integrity: sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.17.10 - dev: true - - /@babel/helper-function-name/7.17.9: - resolution: {integrity: sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.16.7 - '@babel/types': 7.17.10 - dev: true - - /@babel/helper-hoist-variables/7.16.7: - resolution: {integrity: sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.17.10 - dev: true - - /@babel/helper-member-expression-to-functions/7.17.7: - resolution: {integrity: sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.17.10 - dev: true - - /@babel/helper-module-imports/7.16.7: - resolution: {integrity: sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.17.10 - dev: true - - /@babel/helper-module-transforms/7.17.7: - resolution: {integrity: sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-environment-visitor': 7.16.7 - '@babel/helper-module-imports': 7.16.7 - '@babel/helper-simple-access': 7.17.7 - '@babel/helper-split-export-declaration': 7.16.7 - '@babel/helper-validator-identifier': 7.16.7 - '@babel/template': 7.16.7 - '@babel/traverse': 7.17.10 - '@babel/types': 7.17.10 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/helper-optimise-call-expression/7.16.7: - resolution: {integrity: sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.17.10 - dev: true - - /@babel/helper-plugin-utils/7.16.7: - resolution: {integrity: sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-replace-supers/7.16.7: - resolution: {integrity: sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-environment-visitor': 7.16.7 - '@babel/helper-member-expression-to-functions': 7.17.7 - '@babel/helper-optimise-call-expression': 7.16.7 - '@babel/traverse': 7.17.10 - '@babel/types': 7.17.10 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/helper-simple-access/7.17.7: - resolution: {integrity: sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.17.10 - dev: true - - /@babel/helper-split-export-declaration/7.16.7: - resolution: {integrity: sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.17.10 - dev: true - - /@babel/helper-validator-identifier/7.16.7: - resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-validator-option/7.16.7: - resolution: {integrity: sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helpers/7.17.9: - resolution: {integrity: sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.16.7 - '@babel/traverse': 7.17.10 - '@babel/types': 7.17.10 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/highlight/7.17.9: - resolution: {integrity: sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.16.7 - chalk: 2.4.2 - js-tokens: 4.0.0 - dev: true - - /@babel/parser/7.17.10: - resolution: {integrity: sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==} - engines: {node: '>=6.0.0'} - hasBin: true - - /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.17.10: - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.10 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.17.10: - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.10 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.17.10: - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.10 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.17.10: - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.10 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.17.10: - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.10 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-syntax-jsx/7.16.7_@babel+core@7.17.10: - resolution: {integrity: sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.10 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.17.10: - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.10 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.17.10: - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.10 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.17.10: - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.10 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.17.10: - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.10 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.17.10: - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.10 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.17.10: - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.10 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.17.10: - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.10 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-syntax-typescript/7.17.10_@babel+core@7.17.10: - resolution: {integrity: sha512-xJefea1DWXW09pW4Tm9bjwVlPDyYA2it3fWlmEjpYz6alPvTUjL0EOzNzI/FEOyI3r4/J7uVH5UqKgl1TQ5hqQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.10 - '@babel/helper-plugin-utils': 7.16.7 - dev: true - - /@babel/plugin-transform-typescript/7.16.8_@babel+core@7.17.10: - resolution: {integrity: sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.17.10 - '@babel/helper-create-class-features-plugin': 7.17.9_@babel+core@7.17.10 - '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-syntax-typescript': 7.17.10_@babel+core@7.17.10 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/template/7.16.7: - resolution: {integrity: sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.16.7 - '@babel/parser': 7.17.10 - '@babel/types': 7.17.10 - dev: true - - /@babel/traverse/7.17.10: - resolution: {integrity: sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.16.7 - '@babel/generator': 7.17.10 - '@babel/helper-environment-visitor': 7.16.7 - '@babel/helper-function-name': 7.17.9 - '@babel/helper-hoist-variables': 7.16.7 - '@babel/helper-split-export-declaration': 7.16.7 - '@babel/parser': 7.17.10 - '@babel/types': 7.17.10 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/types/7.17.10: - resolution: {integrity: sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.16.7 - to-fast-properties: 2.0.0 - dev: true - - /@bcoe/v8-coverage/0.2.3: - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - dev: true - - /@commitlint/cli/12.1.4: - resolution: {integrity: sha512-ZR1WjXLvqEffYyBPT0XdnSxtt3Ty1TMoujEtseW5o3vPnkA1UNashAMjQVg/oELqfaiAMnDw8SERPMN0e/0kLg==} - engines: {node: '>=v10'} - hasBin: true - dependencies: - '@commitlint/format': 12.1.4 - '@commitlint/lint': 12.1.4 - '@commitlint/load': 12.1.4 - '@commitlint/read': 12.1.4 - '@commitlint/types': 12.1.4 - lodash: 4.17.21 - resolve-from: 5.0.0 - resolve-global: 1.0.0 - yargs: 16.2.0 - dev: true - - /@commitlint/config-conventional/12.1.4: - resolution: {integrity: sha512-ZIdzmdy4o4WyqywMEpprRCrehjCSQrHkaRTVZV411GyLigFQHlEBSJITAihLAWe88Qy/8SyoIe5uKvAsV5vRqQ==} - engines: {node: '>=v10'} - dependencies: - conventional-changelog-conventionalcommits: 4.6.3 - dev: true - - /@commitlint/config-validator/16.2.1: - resolution: {integrity: sha512-hogSe0WGg7CKmp4IfNbdNES3Rq3UEI4XRPB8JL4EPgo/ORq5nrGTVzxJh78omibNuB8Ho4501Czb1Er1MoDWpw==} - engines: {node: '>=v12'} - dependencies: - '@commitlint/types': 16.2.1 - ajv: 6.12.6 - dev: true - optional: true - - /@commitlint/ensure/12.1.4: - resolution: {integrity: sha512-MxHIBuAG9M4xl33qUfIeMSasbv3ktK0W+iygldBxZOL4QSYC2Gn66pZAQMnV9o3V+sVFHoAK2XUKqBAYrgbEqw==} - engines: {node: '>=v10'} - dependencies: - '@commitlint/types': 12.1.4 - lodash: 4.17.21 - dev: true - - /@commitlint/execute-rule/12.1.4: - resolution: {integrity: sha512-h2S1j8SXyNeABb27q2Ok2vD1WfxJiXvOttKuRA9Or7LN6OQoC/KtT3844CIhhWNteNMu/wE0gkTqGxDVAnJiHg==} - engines: {node: '>=v10'} - dev: true - - /@commitlint/execute-rule/16.2.1: - resolution: {integrity: sha512-oSls82fmUTLM6cl5V3epdVo4gHhbmBFvCvQGHBRdQ50H/690Uq1Dyd7hXMuKITCIdcnr9umyDkr8r5C6HZDF3g==} - engines: {node: '>=v12'} - dev: true - optional: true - - /@commitlint/format/12.1.4: - resolution: {integrity: sha512-h28ucMaoRjVvvgS6Bdf85fa/+ZZ/iu1aeWGCpURnQV7/rrVjkhNSjZwGlCOUd5kDV1EnZ5XdI7L18SUpRjs26g==} - engines: {node: '>=v10'} - dependencies: - '@commitlint/types': 12.1.4 - chalk: 4.1.2 - dev: true - - /@commitlint/is-ignored/12.1.4: - resolution: {integrity: sha512-uTu2jQU2SKvtIRVLOzMQo3KxDtO+iJ1p0olmncwrqy4AfPLgwoyCP2CiULq5M7xpR3+dE3hBlZXbZTQbD7ycIw==} - engines: {node: '>=v10'} - dependencies: - '@commitlint/types': 12.1.4 - semver: 7.3.5 - dev: true - - /@commitlint/lint/12.1.4: - resolution: {integrity: sha512-1kZ8YDp4to47oIPFELUFGLiLumtPNKJigPFDuHt2+f3Q3IKdQ0uk53n3CPl4uoyso/Og/EZvb1mXjFR/Yce4cA==} - engines: {node: '>=v10'} - dependencies: - '@commitlint/is-ignored': 12.1.4 - '@commitlint/parse': 12.1.4 - '@commitlint/rules': 12.1.4 - '@commitlint/types': 12.1.4 - dev: true - - /@commitlint/load/12.1.4: - resolution: {integrity: sha512-Keszi0IOjRzKfxT+qES/n+KZyLrxy79RQz8wWgssCboYjKEp+wC+fLCgbiMCYjI5k31CIzIOq/16J7Ycr0C0EA==} - engines: {node: '>=v10'} - dependencies: - '@commitlint/execute-rule': 12.1.4 - '@commitlint/resolve-extends': 12.1.4 - '@commitlint/types': 12.1.4 - chalk: 4.1.2 - cosmiconfig: 7.0.1 - lodash: 4.17.21 - resolve-from: 5.0.0 - dev: true - - /@commitlint/load/16.2.4: - resolution: {integrity: sha512-HjANm3/29ROV+zt4yfaY/K6gpr9Dbzgtlp0kSwZGW0poDXlD/yqVYgPQ6JolJzZii5FUz5R4yVLC15hVL/w60w==} - engines: {node: '>=v12'} - requiresBuild: true - dependencies: - '@commitlint/config-validator': 16.2.1 - '@commitlint/execute-rule': 16.2.1 - '@commitlint/resolve-extends': 16.2.1 - '@commitlint/types': 16.2.1 - '@types/node': 15.14.9 - chalk: 4.1.2 - cosmiconfig: 7.0.1 - cosmiconfig-typescript-loader: 1.0.9_45c533f94194dbe6bbe742a6dc894b44 - lodash: 4.17.21 - resolve-from: 5.0.0 - typescript: 4.6.4 - transitivePeerDependencies: - - '@swc/core' - - '@swc/wasm' - dev: true - optional: true - - /@commitlint/message/12.1.4: - resolution: {integrity: sha512-6QhalEKsKQ/Y16/cTk5NH4iByz26fqws2ub+AinHPtM7Io0jy4e3rym9iE+TkEqiqWZlUigZnTwbPvRJeSUBaA==} - engines: {node: '>=v10'} - dev: true - - /@commitlint/parse/12.1.4: - resolution: {integrity: sha512-yqKSAsK2V4X/HaLb/yYdrzs6oD/G48Ilt0EJ2Mp6RJeWYxG14w/Out6JrneWnr/cpzemyN5hExOg6+TB19H/Lw==} - engines: {node: '>=v10'} - dependencies: - '@commitlint/types': 12.1.4 - conventional-changelog-angular: 5.0.13 - conventional-commits-parser: 3.2.4 - dev: true - - /@commitlint/read/12.1.4: - resolution: {integrity: sha512-TnPQSJgD8Aod5Xeo9W4SaYKRZmIahukjcCWJ2s5zb3ZYSmj6C85YD9cR5vlRyrZjj78ItLUV/X4FMWWVIS38Jg==} - engines: {node: '>=v10'} - dependencies: - '@commitlint/top-level': 12.1.4 - '@commitlint/types': 12.1.4 - fs-extra: 9.1.0 - git-raw-commits: 2.0.11 - dev: true - - /@commitlint/resolve-extends/12.1.4: - resolution: {integrity: sha512-R9CoUtsXLd6KSCfsZly04grsH6JVnWFmVtWgWs1KdDpdV+G3TSs37tColMFqglpkx3dsWu8dsPD56+D9YnJfqg==} - engines: {node: '>=v10'} - dependencies: - import-fresh: 3.3.0 - lodash: 4.17.21 - resolve-from: 5.0.0 - resolve-global: 1.0.0 - dev: true - - /@commitlint/resolve-extends/16.2.1: - resolution: {integrity: sha512-NbbCMPKTFf2J805kwfP9EO+vV+XvnaHRcBy6ud5dF35dxMsvdJqke54W3XazXF1ZAxC4a3LBy4i/GNVBAthsEg==} - engines: {node: '>=v12'} - dependencies: - '@commitlint/config-validator': 16.2.1 - '@commitlint/types': 16.2.1 - import-fresh: 3.3.0 - lodash: 4.17.21 - resolve-from: 5.0.0 - resolve-global: 1.0.0 - dev: true - optional: true - - /@commitlint/rules/12.1.4: - resolution: {integrity: sha512-W8m6ZSjg7RuIsIfzQiFHa48X5mcPXeKT9yjBxVmjHvYfS2FDBf1VxCQ7vO0JTVIdV4ohjZ0eKg/wxxUuZHJAZg==} - engines: {node: '>=v10'} - dependencies: - '@commitlint/ensure': 12.1.4 - '@commitlint/message': 12.1.4 - '@commitlint/to-lines': 12.1.4 - '@commitlint/types': 12.1.4 - dev: true - - /@commitlint/to-lines/12.1.4: - resolution: {integrity: sha512-TParumvbi8bdx3EdLXz2MaX+e15ZgoCqNUgqHsRLwyqLUTRbqCVkzrfadG1UcMQk8/d5aMbb327ZKG3Q4BRorw==} - engines: {node: '>=v10'} - dev: true - - /@commitlint/top-level/12.1.4: - resolution: {integrity: sha512-d4lTJrOT/dXlpY+NIt4CUl77ciEzYeNVc0VFgUQ6VA+b1rqYD2/VWFjBlWVOrklxtSDeKyuEhs36RGrppEFAvg==} - engines: {node: '>=v10'} - dependencies: - find-up: 5.0.0 - dev: true - - /@commitlint/types/12.1.4: - resolution: {integrity: sha512-KRIjdnWNUx6ywz+SJvjmNCbQKcKP6KArhjZhY2l+CWKxak0d77SOjggkMwFTiSgLODOwmuLTbarR2ZfWPiPMlw==} - engines: {node: '>=v10'} - dependencies: - chalk: 4.1.2 - dev: true - - /@commitlint/types/16.2.1: - resolution: {integrity: sha512-7/z7pA7BM0i8XvMSBynO7xsB3mVQPUZbVn6zMIlp/a091XJ3qAXRXc+HwLYhiIdzzS5fuxxNIHZMGHVD4HJxdA==} - engines: {node: '>=v12'} - dependencies: - chalk: 4.1.2 - dev: true - optional: true - - /@cspotcode/source-map-consumer/0.8.0: - resolution: {integrity: sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==} - engines: {node: '>= 12'} - dev: true - optional: true - - /@cspotcode/source-map-support/0.7.0: - resolution: {integrity: sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==} - engines: {node: '>=12'} - dependencies: - '@cspotcode/source-map-consumer': 0.8.0 - dev: true - optional: true - - /@css-render/plugin-bem/0.15.9_css-render@0.15.9: - resolution: {integrity: sha512-xASEmYIX91Pow7YPzpAZ0eyrRNINVX7j9ITNbLt88gJHRLap3P1dv3hTSLtUZTxYXVHTklZ/SfJQ9FIO3jRahg==} - peerDependencies: - css-render: ~0.15.9 - dependencies: - css-render: 0.15.9 - dev: false - - /@css-render/vue3-ssr/0.15.9_vue@3.2.33: - resolution: {integrity: sha512-b3wvEIZYjToOEAV/oUqVtcg+MPF/iSZB9VmVF7fMAAAfvVTc2kB4TZDhGZCMkGjGZxOUm1jia7q/Z9FJnJGLKw==} - peerDependencies: - vue: ^3.0.11 - dependencies: - vue: 3.2.33 - dev: false - - /@emotion/hash/0.8.0: - resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} - dev: false - - /@eslint/eslintrc/0.4.3: - resolution: {integrity: sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.4 - espree: 7.3.1 - globals: 13.14.0 - ignore: 4.0.6 - import-fresh: 3.3.0 - js-yaml: 3.14.1 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@humanwhocodes/config-array/0.5.0: - resolution: {integrity: sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==} - engines: {node: '>=10.10.0'} - dependencies: - '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@humanwhocodes/object-schema/1.2.1: - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} - dev: true - - /@istanbuljs/load-nyc-config/1.1.0: - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} - dependencies: - camelcase: 5.3.1 - find-up: 4.1.0 - get-package-type: 0.1.0 - js-yaml: 3.14.1 - resolve-from: 5.0.0 - dev: true - - /@istanbuljs/schema/0.1.3: - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} - dev: true - - /@jest/console/27.5.1: - resolution: {integrity: sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - '@types/node': 17.0.32 - chalk: 4.1.2 - jest-message-util: 27.5.1 - jest-util: 27.5.1 - slash: 3.0.0 - dev: true - - /@jest/core/27.5.1: - resolution: {integrity: sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/console': 27.5.1 - '@jest/reporters': 27.5.1 - '@jest/test-result': 27.5.1 - '@jest/transform': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 15.14.9 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - emittery: 0.8.1 - exit: 0.1.2 - graceful-fs: 4.2.10 - jest-changed-files: 27.5.1 - jest-config: 27.5.1 - jest-haste-map: 27.5.1 - jest-message-util: 27.5.1 - jest-regex-util: 27.5.1 - jest-resolve: 27.5.1 - jest-resolve-dependencies: 27.5.1 - jest-runner: 27.5.1 - jest-runtime: 27.5.1 - jest-snapshot: 27.5.1 - jest-util: 27.5.1 - jest-validate: 27.5.1 - jest-watcher: 27.5.1 - micromatch: 4.0.5 - rimraf: 3.0.2 - slash: 3.0.0 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - - /@jest/environment/27.5.1: - resolution: {integrity: sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/fake-timers': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 17.0.32 - jest-mock: 27.5.1 - dev: true - - /@jest/fake-timers/27.5.1: - resolution: {integrity: sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - '@sinonjs/fake-timers': 8.1.0 - '@types/node': 17.0.32 - jest-message-util: 27.5.1 - jest-mock: 27.5.1 - jest-util: 27.5.1 - dev: true - - /@jest/globals/27.5.1: - resolution: {integrity: sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.5.1 - '@jest/types': 27.5.1 - expect: 27.5.1 - dev: true - - /@jest/reporters/27.5.1: - resolution: {integrity: sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 27.5.1 - '@jest/test-result': 27.5.1 - '@jest/transform': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 17.0.32 - chalk: 4.1.2 - collect-v8-coverage: 1.0.1 - exit: 0.1.2 - glob: 7.2.0 - graceful-fs: 4.2.10 - istanbul-lib-coverage: 3.2.0 - istanbul-lib-instrument: 5.2.0 - istanbul-lib-report: 3.0.0 - istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.4 - jest-haste-map: 27.5.1 - jest-resolve: 27.5.1 - jest-util: 27.5.1 - jest-worker: 27.5.1 - slash: 3.0.0 - source-map: 0.6.1 - string-length: 4.0.2 - terminal-link: 2.1.1 - v8-to-istanbul: 8.1.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@jest/source-map/27.5.1: - resolution: {integrity: sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - callsites: 3.1.0 - graceful-fs: 4.2.10 - source-map: 0.6.1 - dev: true - - /@jest/test-result/27.5.1: - resolution: {integrity: sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/console': 27.5.1 - '@jest/types': 27.5.1 - '@types/istanbul-lib-coverage': 2.0.4 - collect-v8-coverage: 1.0.1 - dev: true - - /@jest/test-sequencer/27.5.1: - resolution: {integrity: sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/test-result': 27.5.1 - graceful-fs: 4.2.10 - jest-haste-map: 27.5.1 - jest-runtime: 27.5.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@jest/transform/27.5.1: - resolution: {integrity: sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/core': 7.17.10 - '@jest/types': 27.5.1 - babel-plugin-istanbul: 6.1.1 - chalk: 4.1.2 - convert-source-map: 1.8.0 - fast-json-stable-stringify: 2.1.0 - graceful-fs: 4.2.10 - jest-haste-map: 27.5.1 - jest-regex-util: 27.5.1 - jest-util: 27.5.1 - micromatch: 4.0.5 - pirates: 4.0.5 - slash: 3.0.0 - source-map: 0.6.1 - write-file-atomic: 3.0.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@jest/types/27.5.1: - resolution: {integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@types/istanbul-lib-coverage': 2.0.4 - '@types/istanbul-reports': 3.0.1 - '@types/node': 17.0.32 - '@types/yargs': 16.0.4 - chalk: 4.1.2 - dev: true - - /@jridgewell/gen-mapping/0.1.1: - resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.1.1 - '@jridgewell/sourcemap-codec': 1.4.13 - dev: true - - /@jridgewell/resolve-uri/3.0.7: - resolution: {integrity: sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==} - engines: {node: '>=6.0.0'} - dev: true - - /@jridgewell/set-array/1.1.1: - resolution: {integrity: sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==} - engines: {node: '>=6.0.0'} - dev: true - - /@jridgewell/sourcemap-codec/1.4.13: - resolution: {integrity: sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==} - dev: true - - /@jridgewell/trace-mapping/0.3.11: - resolution: {integrity: sha512-RllI476aSMsxzeI9TtlSMoNTgHDxEmnl6GkkHwhr0vdL8W+0WuesyI8Vd3rBOfrwtPXbPxdT9ADJdiOKgzxPQA==} - dependencies: - '@jridgewell/resolve-uri': 3.0.7 - '@jridgewell/sourcemap-codec': 1.4.13 - dev: true - - /@juggle/resize-observer/3.3.1: - resolution: {integrity: sha512-zMM9Ds+SawiUkakS7y94Ymqx+S0ORzpG3frZirN3l+UlXUmSUR7hF4wxCVqW+ei94JzV5kt0uXBcoOEAuiydrw==} - dev: false - - /@nodelib/fs.scandir/2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - dev: true - - /@nodelib/fs.stat/2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - dev: true - - /@nodelib/fs.walk/1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.13.0 - dev: true - - /@rollup/plugin-node-resolve/13.3.0: - resolution: {integrity: sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==} - engines: {node: '>= 10.0.0'} - peerDependencies: - rollup: ^2.42.0 - dependencies: - '@rollup/pluginutils': 3.1.0 - '@types/resolve': 1.17.1 - deepmerge: 4.2.2 - is-builtin-module: 3.1.0 - is-module: 1.0.0 - resolve: 1.22.0 - dev: true - - /@rollup/pluginutils/3.1.0: - resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} - engines: {node: '>= 8.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0 - dependencies: - '@types/estree': 0.0.39 - estree-walker: 1.0.1 - picomatch: 2.3.1 - dev: true - - /@rollup/pluginutils/4.2.1: - resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} - engines: {node: '>= 8.0.0'} - dependencies: - estree-walker: 2.0.2 - picomatch: 2.3.1 - dev: true - - /@sinonjs/commons/1.8.3: - resolution: {integrity: sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==} - dependencies: - type-detect: 4.0.8 - dev: true - - /@sinonjs/fake-timers/8.1.0: - resolution: {integrity: sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==} - dependencies: - '@sinonjs/commons': 1.8.3 - dev: true - - /@stylelint/postcss-css-in-js/0.37.3_4f7b71a942b8b7a555b8adf78f88122b: - resolution: {integrity: sha512-scLk3cSH1H9KggSniseb2KNAU5D9FWc3H7BxCSAIdtU9OWIyw0zkEZ9qEKHryRM+SExYXRKNb7tOOVNAsQ3iwg==} - peerDependencies: - postcss: '>=7.0.0' - postcss-syntax: '>=0.36.2' - dependencies: - '@babel/core': 7.17.10 - postcss: 7.0.39 - postcss-syntax: 0.36.2_postcss@7.0.39 - transitivePeerDependencies: - - supports-color - dev: true - - /@stylelint/postcss-markdown/0.36.2_4f7b71a942b8b7a555b8adf78f88122b: - resolution: {integrity: sha512-2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ==} - deprecated: 'Use the original unforked package instead: postcss-markdown' - peerDependencies: - postcss: '>=7.0.0' - postcss-syntax: '>=0.36.2' - dependencies: - postcss: 7.0.39 - postcss-syntax: 0.36.2_postcss@7.0.39 - remark: 13.0.0 - unist-util-find-all-after: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@tootallnate/once/1.1.2: - resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} - engines: {node: '>= 6'} - dev: true - - /@tsconfig/node10/1.0.8: - resolution: {integrity: sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==} - dev: true - optional: true - - /@tsconfig/node12/1.0.9: - resolution: {integrity: sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==} - dev: true - optional: true - - /@tsconfig/node14/1.0.1: - resolution: {integrity: sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==} - dev: true - optional: true - - /@tsconfig/node16/1.0.2: - resolution: {integrity: sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==} - dev: true - optional: true - - /@types/babel__core/7.1.19: - resolution: {integrity: sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==} - dependencies: - '@babel/parser': 7.17.10 - '@babel/types': 7.17.10 - '@types/babel__generator': 7.6.4 - '@types/babel__template': 7.4.1 - '@types/babel__traverse': 7.17.1 - dev: true - - /@types/babel__generator/7.6.4: - resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} - dependencies: - '@babel/types': 7.17.10 - dev: true - - /@types/babel__template/7.4.1: - resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} - dependencies: - '@babel/parser': 7.17.10 - '@babel/types': 7.17.10 - dev: true - - /@types/babel__traverse/7.17.1: - resolution: {integrity: sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==} - dependencies: - '@babel/types': 7.17.10 - dev: true - - /@types/estree/0.0.39: - resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} - dev: true - - /@types/graceful-fs/4.1.5: - resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} - dependencies: - '@types/node': 17.0.32 - dev: true - - /@types/istanbul-lib-coverage/2.0.4: - resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} - dev: true - - /@types/istanbul-lib-report/3.0.0: - resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==} - dependencies: - '@types/istanbul-lib-coverage': 2.0.4 - dev: true - - /@types/istanbul-reports/3.0.1: - resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==} - dependencies: - '@types/istanbul-lib-report': 3.0.0 - dev: true - - /@types/jest/27.5.0: - resolution: {integrity: sha512-9RBFx7r4k+msyj/arpfaa0WOOEcaAZNmN+j80KFbFCoSqCJGHTz7YMAMGQW9Xmqm5w6l5c25vbSjMwlikJi5+g==} - dependencies: - jest-matcher-utils: 27.5.1 - pretty-format: 27.5.1 - dev: false - - /@types/json-schema/7.0.11: - resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} - dev: true - - /@types/lodash-es/4.17.6: - resolution: {integrity: sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==} - dependencies: - '@types/lodash': 4.14.182 - dev: false - - /@types/lodash/4.14.182: - resolution: {integrity: sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==} - - /@types/mdast/3.0.10: - resolution: {integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==} - dependencies: - '@types/unist': 2.0.6 - dev: true - - /@types/minimatch/3.0.5: - resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} - dev: true - - /@types/minimist/1.2.2: - resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} - dev: true - - /@types/mockjs/1.0.6: - resolution: {integrity: sha512-Yu5YlqbYZyqsd6LjO4e8ONJDN9pTSnciHDcRP4teNOh/au2b8helFhgRx+3w8xsTFEnwr9jtfTVJbAx+eYmlHA==} - dev: true - - /@types/node/15.14.9: - resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==} - dev: true - - /@types/node/17.0.32: - resolution: {integrity: sha512-eAIcfAvhf/BkHcf4pkLJ7ECpBAhh9kcxRBpip9cTiO+hf+aJrsxYxBeS6OXvOd9WqNAJmavXVpZvY1rBjNsXmw==} - - /@types/normalize-package-data/2.4.1: - resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} - dev: true - - /@types/parse-json/4.0.0: - resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} - dev: true - - /@types/prettier/2.6.0: - resolution: {integrity: sha512-G/AdOadiZhnJp0jXCaBQU449W2h716OW/EoXeYkCytxKL06X1WCXB4DZpp8TpZ8eyIJVS1cw4lrlkkSYU21cDw==} - dev: true - - /@types/resolve/1.17.1: - resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} - dependencies: - '@types/node': 17.0.32 - dev: true - - /@types/stack-utils/2.0.1: - resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} - dev: true - - /@types/throttle-debounce/2.1.0: - resolution: {integrity: sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ==} - dev: true - - /@types/unist/2.0.6: - resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} - dev: true - - /@types/yargs-parser/21.0.0: - resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} - dev: true - - /@types/yargs/16.0.4: - resolution: {integrity: sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==} - dependencies: - '@types/yargs-parser': 21.0.0 - dev: true - - /@typescript-eslint/eslint-plugin/4.33.0_5e731fab734ce085fc02cd0ecce6c061: - resolution: {integrity: sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - '@typescript-eslint/parser': ^4.0.0 - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/experimental-utils': 4.33.0_eslint@7.32.0+typescript@4.6.4 - '@typescript-eslint/parser': 4.33.0_eslint@7.32.0+typescript@4.6.4 - '@typescript-eslint/scope-manager': 4.33.0 - debug: 4.3.4 - eslint: 7.32.0 - functional-red-black-tree: 1.0.1 - ignore: 5.2.0 - regexpp: 3.2.0 - semver: 7.3.7 - tsutils: 3.21.0_typescript@4.6.4 - typescript: 4.6.4 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/experimental-utils/4.33.0_eslint@7.32.0+typescript@4.6.4: - resolution: {integrity: sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - eslint: '*' - dependencies: - '@types/json-schema': 7.0.11 - '@typescript-eslint/scope-manager': 4.33.0 - '@typescript-eslint/types': 4.33.0 - '@typescript-eslint/typescript-estree': 4.33.0_typescript@4.6.4 - eslint: 7.32.0 - eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@7.32.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/parser/4.33.0_eslint@7.32.0+typescript@4.6.4: - resolution: {integrity: sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 4.33.0 - '@typescript-eslint/types': 4.33.0 - '@typescript-eslint/typescript-estree': 4.33.0_typescript@4.6.4 - debug: 4.3.4 - eslint: 7.32.0 - typescript: 4.6.4 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/scope-manager/4.33.0: - resolution: {integrity: sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - dependencies: - '@typescript-eslint/types': 4.33.0 - '@typescript-eslint/visitor-keys': 4.33.0 - dev: true - - /@typescript-eslint/types/4.33.0: - resolution: {integrity: sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - dev: true - - /@typescript-eslint/typescript-estree/4.33.0_typescript@4.6.4: - resolution: {integrity: sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 4.33.0 - '@typescript-eslint/visitor-keys': 4.33.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.3.7 - tsutils: 3.21.0_typescript@4.6.4 - typescript: 4.6.4 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/visitor-keys/4.33.0: - resolution: {integrity: sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - dependencies: - '@typescript-eslint/types': 4.33.0 - eslint-visitor-keys: 2.1.0 - dev: true - - /@vicons/antd/0.10.0: - resolution: {integrity: sha512-F+pVt2cYJDoJw5Wvu5YzvqnpCoUPeYh272R/ZVK+2H6U/G0LCDvEWNQHXkbLBpCtu9FAq/yac0NNfg1i0a1DGg==} - dev: false - - /@vicons/ionicons5/0.10.0: - resolution: {integrity: sha512-AgOAI15sXiasLKozj9Nkrxdda8BoaFN4TaprFCcHbBMLFOUwk6QLLHRngC+X5YhYXVjLqMbQ6FtEbrPSPYIZEA==} - dev: false - - /@vitejs/plugin-vue-jsx/1.3.10: - resolution: {integrity: sha512-Cf5zznh4yNMiEMBfTOztaDVDmK1XXfgxClzOSUVUc8WAmHzogrCUeM8B05ABzuGtg0D1amfng+mUmSIOFGP3Pw==} - engines: {node: '>=12.0.0'} - dependencies: - '@babel/core': 7.17.10 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.17.10 - '@babel/plugin-transform-typescript': 7.16.8_@babel+core@7.17.10 - '@rollup/pluginutils': 4.2.1 - '@vue/babel-plugin-jsx': 1.1.1_@babel+core@7.17.10 - hash-sum: 2.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@vitejs/plugin-vue/1.10.2_vite@2.9.8: - resolution: {integrity: sha512-/QJ0Z9qfhAFtKRY+r57ziY4BSbGUTGsPRMpB/Ron3QPwBZM4OZAZHdTa4a8PafCwU5DTatXG8TMDoP8z+oDqJw==} - engines: {node: '>=12.0.0'} - peerDependencies: - vite: ^2.5.10 - dependencies: - vite: 2.9.8_less@4.1.2 - dev: true - - /@vue/babel-helper-vue-transform-on/1.0.2: - resolution: {integrity: sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==} - dev: true - - /@vue/babel-plugin-jsx/1.1.1_@babel+core@7.17.10: - resolution: {integrity: sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==} - dependencies: - '@babel/helper-module-imports': 7.16.7 - '@babel/plugin-syntax-jsx': 7.16.7_@babel+core@7.17.10 - '@babel/template': 7.16.7 - '@babel/traverse': 7.17.10 - '@babel/types': 7.17.10 - '@vue/babel-helper-vue-transform-on': 1.0.2 - camelcase: 6.3.0 - html-tags: 3.2.0 - svg-tags: 1.0.0 - transitivePeerDependencies: - - '@babel/core' - - supports-color - dev: true - - /@vue/compiler-core/3.2.33: - resolution: {integrity: sha512-AAmr52ji3Zhk7IKIuigX2osWWsb2nQE5xsdFYjdnmtQ4gymmqXbjLvkSE174+fF3A3kstYrTgGkqgOEbsdLDpw==} - dependencies: - '@babel/parser': 7.17.10 - '@vue/shared': 3.2.33 - estree-walker: 2.0.2 - source-map: 0.6.1 - - /@vue/compiler-dom/3.2.33: - resolution: {integrity: sha512-GhiG1C8X98Xz9QUX/RlA6/kgPBWJkjq0Rq6//5XTAGSYrTMBgcLpP9+CnlUg1TFxnnCVughAG+KZl28XJqw8uQ==} - dependencies: - '@vue/compiler-core': 3.2.33 - '@vue/shared': 3.2.33 - - /@vue/compiler-sfc/3.2.33: - resolution: {integrity: sha512-H8D0WqagCr295pQjUYyO8P3IejM3vEzeCO1apzByAEaAR/WimhMYczHfZVvlCE/9yBaEu/eu9RdiWr0kF8b71Q==} - dependencies: - '@babel/parser': 7.17.10 - '@vue/compiler-core': 3.2.33 - '@vue/compiler-dom': 3.2.33 - '@vue/compiler-ssr': 3.2.33 - '@vue/reactivity-transform': 3.2.33 - '@vue/shared': 3.2.33 - estree-walker: 2.0.2 - magic-string: 0.25.9 - postcss: 8.4.13 - source-map: 0.6.1 - - /@vue/compiler-ssr/3.2.33: - resolution: {integrity: sha512-XQh1Xdk3VquDpXsnoCd7JnMoWec9CfAzQDQsaMcSU79OrrO2PNR0ErlIjm/mGq3GmBfkQjzZACV+7GhfRB8xMQ==} - dependencies: - '@vue/compiler-dom': 3.2.33 - '@vue/shared': 3.2.33 - - /@vue/devtools-api/6.1.4: - resolution: {integrity: sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ==} - dev: false - - /@vue/eslint-config-typescript/7.0.0_f2c1c083ca9f8be5792c7dca889a98e3: - resolution: {integrity: sha512-UxUlvpSrFOoF8aQ+zX1leYiEBEm7CZmXYn/ZEM1zwSadUzpamx56RB4+Htdjisv1mX2tOjBegNUqH3kz2OL+Aw==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - '@typescript-eslint/eslint-plugin': ^4.4.0 - '@typescript-eslint/parser': ^4.4.0 - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 - eslint-plugin-vue: ^5.2.3 || ^6.0.0 || ^7.0.0 - dependencies: - '@typescript-eslint/eslint-plugin': 4.33.0_5e731fab734ce085fc02cd0ecce6c061 - '@typescript-eslint/parser': 4.33.0_eslint@7.32.0+typescript@4.6.4 - eslint: 7.32.0 - eslint-plugin-vue: 7.20.0_eslint@7.32.0 - vue-eslint-parser: 7.11.0_eslint@7.32.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@vue/reactivity-transform/3.2.33: - resolution: {integrity: sha512-4UL5KOIvSQb254aqenW4q34qMXbfZcmEsV/yVidLUgvwYQQ/D21bGX3DlgPUGI3c4C+iOnNmDCkIxkILoX/Pyw==} - dependencies: - '@babel/parser': 7.17.10 - '@vue/compiler-core': 3.2.33 - '@vue/shared': 3.2.33 - estree-walker: 2.0.2 - magic-string: 0.25.9 - - /@vue/reactivity/3.2.33: - resolution: {integrity: sha512-62Sq0mp9/0bLmDuxuLD5CIaMG2susFAGARLuZ/5jkU1FCf9EDbwUuF+BO8Ub3Rbodx0ziIecM/NsmyjardBxfQ==} - dependencies: - '@vue/shared': 3.2.33 - dev: false - - /@vue/runtime-core/3.2.33: - resolution: {integrity: sha512-N2D2vfaXsBPhzCV3JsXQa2NECjxP3eXgZlFqKh4tgakp3iX6LCGv76DLlc+IfFZq+TW10Y8QUfeihXOupJ1dGw==} - dependencies: - '@vue/reactivity': 3.2.33 - '@vue/shared': 3.2.33 - dev: false - - /@vue/runtime-dom/3.2.33: - resolution: {integrity: sha512-LSrJ6W7CZTSUygX5s8aFkraDWlO6K4geOwA3quFF2O+hC3QuAMZt/0Xb7JKE3C4JD4pFwCSO7oCrZmZ0BIJUnw==} - dependencies: - '@vue/runtime-core': 3.2.33 - '@vue/shared': 3.2.33 - csstype: 2.6.20 - dev: false - - /@vue/server-renderer/3.2.33_vue@3.2.33: - resolution: {integrity: sha512-4jpJHRD4ORv8PlbYi+/MfP8ec1okz6rybe36MdpkDrGIdEItHEUyaHSKvz+ptNEyQpALmmVfRteHkU9F8vxOew==} - peerDependencies: - vue: 3.2.33 - dependencies: - '@vue/compiler-ssr': 3.2.33 - '@vue/shared': 3.2.33 - vue: 3.2.33 - dev: false - - /@vue/shared/3.2.33: - resolution: {integrity: sha512-UBc1Pg1T3yZ97vsA2ueER0F6GbJebLHYlEi4ou1H5YL4KWvMOOWwpYo9/QpWq93wxKG6Wo13IY74Hcn/f7c7Bg==} - - /@vueup/vue-quill/1.0.0-beta.8_vue@3.2.33: - resolution: {integrity: sha512-3fnIdmnz2ba4dI4WIpudlYoev9r5hrL8NrvhzMXrBj5c5+uEBqM2P48Q+skwToFZjPJT+QDIKiQqY3CXJvpX/Q==} - peerDependencies: - vue: ^3.2.31 - dependencies: - quill: 1.3.7 - quill-delta: 4.2.2 - vue: 3.2.33 - dev: false - - /@vueuse/core/5.3.0_vue@3.2.33: - resolution: {integrity: sha512-bBL1/JMRHFWmbgQzUZHF4WOwlqfenR1B8+elriXsbnHlogQM5foSz9++WyDBR0YPIVgCJq7fvNLqd4T7+cjc5w==} - dependencies: - '@vueuse/shared': 5.3.0_vue@3.2.33 - vue-demi: 0.12.5_vue@3.2.33 - transitivePeerDependencies: - - '@vue/composition-api' - - vue - dev: false - - /@vueuse/shared/5.3.0_vue@3.2.33: - resolution: {integrity: sha512-qZfkPFH0qTScFpYiPOFpTcxWriRhlM3bgSzl3DFTgr/U0eZg3w2EFWaRZHdWeSvAUdNQyjOC4Toa8S0zJyEjHw==} - dependencies: - vue-demi: 0.12.5_vue@3.2.33 - transitivePeerDependencies: - - '@vue/composition-api' - - vue - dev: false - - /JSONStream/1.3.5: - resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} - hasBin: true - dependencies: - jsonparse: 1.3.1 - through: 2.3.8 - dev: true - - /abab/2.0.6: - resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} - dev: true - - /acorn-globals/6.0.0: - resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==} - dependencies: - acorn: 7.4.1 - acorn-walk: 7.2.0 - dev: true - - /acorn-jsx/5.3.2_acorn@7.4.1: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 7.4.1 - dev: true - - /acorn-node/1.8.2: - resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==} - dependencies: - acorn: 7.4.1 - acorn-walk: 7.2.0 - xtend: 4.0.2 - dev: true - - /acorn-walk/7.2.0: - resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} - engines: {node: '>=0.4.0'} - dev: true - - /acorn-walk/8.2.0: - resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} - engines: {node: '>=0.4.0'} - dev: true - optional: true - - /acorn/7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - - /acorn/8.7.1: - resolution: {integrity: sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - - /agent-base/6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - dependencies: - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: true - - /aggregate-error/3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} - dependencies: - clean-stack: 2.2.0 - indent-string: 4.0.0 - dev: true - - /ajv/6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - dev: true - - /ajv/8.11.0: - resolution: {integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==} - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - dev: true - - /ansi-colors/4.1.1: - resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} - engines: {node: '>=6'} - dev: true - - /ansi-escapes/3.2.0: - resolution: {integrity: sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==} - engines: {node: '>=4'} - dev: true - - /ansi-escapes/4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.21.3 - dev: true - - /ansi-regex/3.0.1: - resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} - engines: {node: '>=4'} - dev: true - - /ansi-regex/4.1.1: - resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} - engines: {node: '>=6'} - dev: true - - /ansi-regex/5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - /ansi-styles/3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - dependencies: - color-convert: 1.9.3 - dev: true - - /ansi-styles/4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - - /ansi-styles/5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - - /anymatch/3.1.2: - resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} - engines: {node: '>= 8'} - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - dev: true - - /arg/4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - dev: true - optional: true - - /arg/5.0.1: - resolution: {integrity: sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==} - dev: true - - /argparse/1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - dependencies: - sprintf-js: 1.0.3 - dev: true - - /array-differ/3.0.0: - resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} - engines: {node: '>=8'} - dev: true - - /array-ify/1.0.0: - resolution: {integrity: sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=} - dev: true - - /array-union/1.0.2: - resolution: {integrity: sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=} - engines: {node: '>=0.10.0'} - dependencies: - array-uniq: 1.0.3 - dev: true - - /array-union/2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - dev: true - - /array-uniq/1.0.3: - resolution: {integrity: sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=} - engines: {node: '>=0.10.0'} - dev: true - - /arrify/1.0.1: - resolution: {integrity: sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=} - engines: {node: '>=0.10.0'} - dev: true - - /arrify/2.0.1: - resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} - engines: {node: '>=8'} - dev: true - - /astral-regex/2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} - engines: {node: '>=8'} - dev: true - - /async-validator/4.1.1: - resolution: {integrity: sha512-p4DO/JXwjs8klJyJL8Q2oM4ks5fUTze/h5k10oPPKMiLe1fj3G1QMzPHNmN1Py4ycOk7WlO2DcGXv1qiESJCZA==} - dev: false - - /async/2.6.4: - resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} - dependencies: - lodash: 4.17.21 - dev: true - - /async/3.2.3: - resolution: {integrity: sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==} - dev: true - - /asynckit/0.4.0: - resolution: {integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=} - dev: true - - /at-least-node/1.0.0: - resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} - engines: {node: '>= 4.0.0'} - dev: true - - /autoprefixer/10.4.7_postcss@8.4.13: - resolution: {integrity: sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - dependencies: - browserslist: 4.20.3 - caniuse-lite: 1.0.30001339 - fraction.js: 4.2.0 - normalize-range: 0.1.2 - picocolors: 1.0.0 - postcss: 8.4.13 - postcss-value-parser: 4.2.0 - dev: true - - /autoprefixer/9.8.8: - resolution: {integrity: sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==} - hasBin: true - dependencies: - browserslist: 4.20.3 - caniuse-lite: 1.0.30001339 - normalize-range: 0.1.2 - num2fraction: 1.2.2 - picocolors: 0.2.1 - postcss: 7.0.39 - postcss-value-parser: 4.2.0 - dev: true - - /axios/0.21.4: - resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} - dependencies: - follow-redirects: 1.15.0 - transitivePeerDependencies: - - debug - dev: false - - /babel-jest/27.5.1_@babel+core@7.17.10: - resolution: {integrity: sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - '@babel/core': ^7.8.0 - dependencies: - '@babel/core': 7.17.10 - '@jest/transform': 27.5.1 - '@jest/types': 27.5.1 - '@types/babel__core': 7.1.19 - babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 27.5.1_@babel+core@7.17.10 - chalk: 4.1.2 - graceful-fs: 4.2.10 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-plugin-istanbul/6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} - dependencies: - '@babel/helper-plugin-utils': 7.16.7 - '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 5.2.0 - test-exclude: 6.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-plugin-jest-hoist/27.5.1: - resolution: {integrity: sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/template': 7.16.7 - '@babel/types': 7.17.10 - '@types/babel__core': 7.1.19 - '@types/babel__traverse': 7.17.1 - dev: true - - /babel-preset-current-node-syntax/1.0.1_@babel+core@7.17.10: - resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.17.10 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.17.10 - '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.17.10 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.17.10 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.17.10 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.17.10 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.17.10 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.17.10 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.17.10 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.17.10 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.17.10 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.17.10 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.17.10 - dev: true - - /babel-preset-jest/27.5.1_@babel+core@7.17.10: - resolution: {integrity: sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.17.10 - babel-plugin-jest-hoist: 27.5.1 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.17.10 - dev: true - - /bail/1.0.5: - resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==} - dev: true - - /balanced-match/1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: true - - /balanced-match/2.0.0: - resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==} - dev: true - - /batch-processor/1.0.0: - resolution: {integrity: sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg=} - dev: false - - /binary-extensions/2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} - dev: true - - /blueimp-md5/2.19.0: - resolution: {integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==} - dev: false - - /brace-expansion/1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - dev: true - - /brace-expansion/2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - dependencies: - balanced-match: 1.0.2 - dev: true - - /braces/3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - dependencies: - fill-range: 7.0.1 - dev: true - - /browser-process-hrtime/1.0.0: - resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} - dev: true - - /browserslist/4.20.3: - resolution: {integrity: sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001339 - electron-to-chromium: 1.4.137 - escalade: 3.1.1 - node-releases: 2.0.4 - picocolors: 1.0.0 - dev: true - - /bser/2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - dependencies: - node-int64: 0.4.0 - dev: true - - /buffer-from/1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - dev: true - - /builtin-modules/3.2.0: - resolution: {integrity: sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==} - engines: {node: '>=6'} - dev: true - - /bytes/3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} - dev: true - - /cachedir/2.2.0: - resolution: {integrity: sha512-VvxA0xhNqIIfg0V9AmJkDg91DaJwryutH5rVEZAhcNi4iJFj9f+QxmAjgK1LT9I8OgToX27fypX6/MeCXVbBjQ==} - engines: {node: '>=6'} - dev: true - - /call-bind/1.0.2: - resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} - dependencies: - function-bind: 1.1.1 - get-intrinsic: 1.1.1 - dev: false - - /callsites/3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - dev: true - - /camel-case/4.1.2: - resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} - dependencies: - pascal-case: 3.1.2 - tslib: 2.4.0 - dev: true - - /camelcase-css/2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} - engines: {node: '>= 6'} - dev: true - - /camelcase-keys/6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} - engines: {node: '>=8'} - dependencies: - camelcase: 5.3.1 - map-obj: 4.3.0 - quick-lru: 4.0.1 - dev: true - - /camelcase/5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - dev: true - - /camelcase/6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - dev: true - - /caniuse-lite/1.0.30001339: - resolution: {integrity: sha512-Es8PiVqCe+uXdms0Gu5xP5PF2bxLR7OBp3wUzUnuO7OHzhOfCyg3hdiGWVPVxhiuniOzng+hTc1u3fEQ0TlkSQ==} - dev: true - - /capital-case/1.0.4: - resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} - dependencies: - no-case: 3.0.4 - tslib: 2.4.0 - upper-case-first: 2.0.2 - dev: true - - /chalk/2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - dev: true - - /chalk/3.0.0: - resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} - engines: {node: '>=8'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - dev: true - - /chalk/4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - /change-case/4.1.2: - resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==} - dependencies: - camel-case: 4.1.2 - capital-case: 1.0.4 - constant-case: 3.0.4 - dot-case: 3.0.4 - header-case: 2.0.4 - no-case: 3.0.4 - param-case: 3.0.4 - pascal-case: 3.1.2 - path-case: 3.0.4 - sentence-case: 3.0.4 - snake-case: 3.0.4 - tslib: 2.4.0 - dev: true - - /char-regex/1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} - dev: true - - /character-entities-legacy/1.1.4: - resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} - dev: true - - /character-entities/1.2.4: - resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} - dev: true - - /character-reference-invalid/1.1.4: - resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} - dev: true - - /chardet/0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - dev: true - - /chokidar/3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} - dependencies: - anymatch: 3.1.2 - braces: 3.0.2 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /ci-info/3.3.0: - resolution: {integrity: sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==} - dev: true - - /cjs-module-lexer/1.2.2: - resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==} - dev: true - - /clean-css/5.3.0: - resolution: {integrity: sha512-YYuuxv4H/iNb1Z/5IbMRoxgrzjWGhOEFfd+groZ5dMCVkpENiMZmwspdrzBo9286JjM1gZJPAyL7ZIdzuvu2AQ==} - engines: {node: '>= 10.0'} - dependencies: - source-map: 0.6.1 - dev: true - - /clean-stack/2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} - dev: true - - /cli-cursor/2.1.0: - resolution: {integrity: sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=} - engines: {node: '>=4'} - dependencies: - restore-cursor: 2.0.0 - dev: true - - /cli-cursor/3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - dependencies: - restore-cursor: 3.1.0 - dev: true - - /cli-truncate/2.1.0: - resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} - engines: {node: '>=8'} - dependencies: - slice-ansi: 3.0.0 - string-width: 4.2.3 - dev: true - - /cli-width/2.2.1: - resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==} - dev: true - - /cliui/7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - dev: true - - /clone-regexp/2.2.0: - resolution: {integrity: sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==} - engines: {node: '>=6'} - dependencies: - is-regexp: 2.1.0 - dev: true - - /clone/2.1.2: - resolution: {integrity: sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=} - engines: {node: '>=0.8'} - dev: false - - /co/4.6.0: - resolution: {integrity: sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - dev: true - - /collect-v8-coverage/1.0.1: - resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==} - dev: true - - /color-convert/1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - dependencies: - color-name: 1.1.3 - dev: true - - /color-convert/2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - - /color-name/1.1.3: - resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} - dev: true - - /color-name/1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - /color-string/1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} - dependencies: - color-name: 1.1.4 - simple-swizzle: 0.2.2 - dev: true - - /color/4.2.3: - resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} - engines: {node: '>=12.5.0'} - dependencies: - color-convert: 2.0.1 - color-string: 1.9.1 - dev: true - - /colorette/1.4.0: - resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} - dev: true - - /colorette/2.0.16: - resolution: {integrity: sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==} - dev: true - - /combined-stream/1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - dependencies: - delayed-stream: 1.0.0 - dev: true - - /commander/2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - dev: true - - /commander/8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} - dev: true - - /commander/9.2.0: - resolution: {integrity: sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==} - engines: {node: ^12.20.0 || >=14} - dev: false - - /commitizen/4.2.4: - resolution: {integrity: sha512-LlZChbDzg3Ir3O2S7jSo/cgWp5/QwylQVr59K4xayVq8S4/RdKzSyJkghAiZZHfhh5t4pxunUoyeg0ml1q/7aw==} - engines: {node: '>= 10'} - hasBin: true - dependencies: - cachedir: 2.2.0 - cz-conventional-changelog: 3.2.0 - dedent: 0.7.0 - detect-indent: 6.0.0 - find-node-modules: 2.1.3 - find-root: 1.1.0 - fs-extra: 8.1.0 - glob: 7.1.4 - inquirer: 6.5.2 - is-utf8: 0.2.1 - lodash: 4.17.21 - minimist: 1.2.5 - strip-bom: 4.0.0 - strip-json-comments: 3.0.1 - transitivePeerDependencies: - - '@swc/core' - - '@swc/wasm' - dev: true - - /commondir/1.0.1: - resolution: {integrity: sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=} - dev: true - - /compare-func/2.0.0: - resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} - dependencies: - array-ify: 1.0.0 - dot-prop: 5.3.0 - dev: true - - /concat-map/0.0.1: - resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} - dev: true - - /connect/3.7.0: - resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} - engines: {node: '>= 0.10.0'} - dependencies: - debug: 2.6.9 - finalhandler: 1.1.2 - parseurl: 1.3.3 - utils-merge: 1.0.1 - dev: true - - /constant-case/3.0.4: - resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} - dependencies: - no-case: 3.0.4 - tslib: 2.4.0 - upper-case: 2.0.2 - dev: true - - /conventional-changelog-angular/5.0.13: - resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==} - engines: {node: '>=10'} - dependencies: - compare-func: 2.0.0 - q: 1.5.1 - dev: true - - /conventional-changelog-conventionalcommits/4.6.3: - resolution: {integrity: sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==} - engines: {node: '>=10'} - dependencies: - compare-func: 2.0.0 - lodash: 4.17.21 - q: 1.5.1 - dev: true - - /conventional-commit-types/3.0.0: - resolution: {integrity: sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==} - dev: true - - /conventional-commits-parser/3.2.4: - resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==} - engines: {node: '>=10'} - hasBin: true - dependencies: - is-text-path: 1.0.1 - JSONStream: 1.3.5 - lodash: 4.17.21 - meow: 8.1.2 - split2: 3.2.2 - through2: 4.0.2 - dev: true - - /convert-source-map/1.8.0: - resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} - dependencies: - safe-buffer: 5.1.2 - dev: true - - /copy-anything/2.0.6: - resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} - dependencies: - is-what: 3.14.1 - dev: true - - /core-js/3.22.5: - resolution: {integrity: sha512-VP/xYuvJ0MJWRAobcmQ8F2H6Bsn+s7zqAAjFaHGBMc5AQm7zaelhD1LGduFn2EehEcQcU+br6t+fwbpQ5d1ZWA==} - requiresBuild: true - dev: true - - /cosmiconfig-typescript-loader/1.0.9_45c533f94194dbe6bbe742a6dc894b44: - resolution: {integrity: sha512-tRuMRhxN4m1Y8hP9SNYfz7jRwt8lZdWxdjg/ohg5esKmsndJIn4yT96oJVcf5x0eA11taXl+sIp+ielu529k6g==} - engines: {node: '>=12', npm: '>=6'} - peerDependencies: - '@types/node': '*' - typescript: '>=3' - dependencies: - '@types/node': 15.14.9 - cosmiconfig: 7.0.1 - ts-node: 10.7.0_45c533f94194dbe6bbe742a6dc894b44 - typescript: 4.6.4 - transitivePeerDependencies: - - '@swc/core' - - '@swc/wasm' - dev: true - optional: true - - /cosmiconfig/7.0.1: - resolution: {integrity: sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==} - engines: {node: '>=10'} - dependencies: - '@types/parse-json': 4.0.0 - import-fresh: 3.3.0 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 - dev: true - - /create-require/1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - dev: true - optional: true - - /cross-spawn/7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - dev: true - - /css-color-names/0.0.4: - resolution: {integrity: sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=} - dev: true - - /css-render/0.15.9: - resolution: {integrity: sha512-FMVcWsVipKEBR/mVf1+pIjCRQdztILVKxbp8TN5/Vf0Q/fdTq0OIb8JRW/pk7PP1eeWnB/ejQ0MNBe7ELjLblg==} - dependencies: - '@emotion/hash': 0.8.0 - '@types/node': 17.0.32 - csstype: 3.0.11 - dev: false - - /css-unit-converter/1.1.2: - resolution: {integrity: sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==} - dev: true - - /cssesc/3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - dev: true - - /cssom/0.3.8: - resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} - dev: true - - /cssom/0.4.4: - resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==} - dev: true - - /cssstyle/2.3.0: - resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} - engines: {node: '>=8'} - dependencies: - cssom: 0.3.8 - dev: true - - /csstype/2.6.20: - resolution: {integrity: sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==} - dev: false - - /csstype/3.0.11: - resolution: {integrity: sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==} - dev: false - - /cz-conventional-changelog/3.2.0: - resolution: {integrity: sha512-yAYxeGpVi27hqIilG1nh4A9Bnx4J3Ov+eXy4koL3drrR+IO9GaWPsKjik20ht608Asqi8TQPf0mczhEeyAtMzg==} - engines: {node: '>= 10'} - dependencies: - chalk: 2.4.2 - commitizen: 4.2.4 - conventional-commit-types: 3.0.0 - lodash.map: 4.6.0 - longest: 2.0.1 - word-wrap: 1.2.3 - optionalDependencies: - '@commitlint/load': 16.2.4 - transitivePeerDependencies: - - '@swc/core' - - '@swc/wasm' - dev: true - - /dargs/7.0.0: - resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} - engines: {node: '>=8'} - dev: true - - /data-urls/2.0.0: - resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==} - engines: {node: '>=10'} - dependencies: - abab: 2.0.6 - whatwg-mimetype: 2.3.0 - whatwg-url: 8.7.0 - dev: true - - /date-fns-tz/1.3.4_date-fns@2.28.0: - resolution: {integrity: sha512-O47vEyz85F2ax/ZdhMBJo187RivZGjH6V0cPjPzpm/yi6YffJg4upD/8ibezO11ezZwP3QYlBHh/t4JhRNx0Ow==} - peerDependencies: - date-fns: '>=2.0.0' - dependencies: - date-fns: 2.28.0 - dev: false - - /date-fns/2.28.0: - resolution: {integrity: sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==} - engines: {node: '>=0.11'} - dev: false - - /debug/2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - dependencies: - ms: 2.0.0 - dev: true - - /debug/3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - dependencies: - ms: 2.1.3 - dev: true - optional: true - - /debug/4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - dev: true - - /debug/4.3.4_supports-color@8.1.1: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - supports-color: 8.1.1 - dev: true - - /decamelize-keys/1.1.0: - resolution: {integrity: sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=} - engines: {node: '>=0.10.0'} - dependencies: - decamelize: 1.2.0 - map-obj: 1.0.1 - dev: true - - /decamelize/1.2.0: - resolution: {integrity: sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=} - engines: {node: '>=0.10.0'} - dev: true - - /decimal.js/10.3.1: - resolution: {integrity: sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==} - dev: true - - /dedent/0.7.0: - resolution: {integrity: sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=} - dev: true - - /deep-equal/1.1.1: - resolution: {integrity: sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==} - dependencies: - is-arguments: 1.1.1 - is-date-object: 1.0.5 - is-regex: 1.1.4 - object-is: 1.1.5 - object-keys: 1.1.1 - regexp.prototype.flags: 1.4.3 - dev: false - - /deep-is/0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - dev: true - - /deepmerge/4.2.2: - resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} - engines: {node: '>=0.10.0'} - dev: true - - /define-properties/1.1.4: - resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} - engines: {node: '>= 0.4'} - dependencies: - has-property-descriptors: 1.0.0 - object-keys: 1.1.1 - dev: false - - /defined/1.0.0: - resolution: {integrity: sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=} - dev: true - - /delayed-stream/1.0.0: - resolution: {integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk=} - engines: {node: '>=0.4.0'} - dev: true - - /detect-file/1.0.0: - resolution: {integrity: sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=} - engines: {node: '>=0.10.0'} - dev: true - - /detect-indent/6.0.0: - resolution: {integrity: sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==} - engines: {node: '>=8'} - dev: true - - /detect-newline/3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} - dev: true - - /detective/5.2.0: - resolution: {integrity: sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==} - engines: {node: '>=0.8.0'} - hasBin: true - dependencies: - acorn-node: 1.8.2 - defined: 1.0.0 - minimist: 1.2.6 - dev: true - - /didyoumean/1.2.2: - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - dev: true - - /diff-sequences/27.5.1: - resolution: {integrity: sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - - /diff/4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - dev: true - optional: true - - /dir-glob/3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - dependencies: - path-type: 4.0.0 - dev: true - - /dlv/1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - dev: true - - /doctrine/3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dependencies: - esutils: 2.0.3 - dev: true - - /dom-serializer/0.2.2: - resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==} - dependencies: - domelementtype: 2.3.0 - entities: 2.2.0 - dev: true - - /domelementtype/1.3.1: - resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==} - dev: true - - /domelementtype/2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - dev: true - - /domexception/2.0.1: - resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==} - engines: {node: '>=8'} - dependencies: - webidl-conversions: 5.0.0 - dev: true - - /domhandler/2.4.2: - resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==} - dependencies: - domelementtype: 1.3.1 - dev: true - - /domutils/1.7.0: - resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==} - dependencies: - dom-serializer: 0.2.2 - domelementtype: 1.3.1 - dev: true - - /dot-case/3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} - dependencies: - no-case: 3.0.4 - tslib: 2.4.0 - dev: true - - /dot-prop/5.3.0: - resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} - engines: {node: '>=8'} - dependencies: - is-obj: 2.0.0 - dev: true - - /dotenv-expand/5.1.0: - resolution: {integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==} - dev: true - - /dotenv/10.0.0: - resolution: {integrity: sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==} - engines: {node: '>=10'} - dev: true - - /echarts/5.3.2: - resolution: {integrity: sha512-LWCt7ohOKdJqyiBJ0OGBmE9szLdfA9sGcsMEi+GGoc6+Xo75C+BkcT/6NNGRHAWtnQl2fNow05AQjznpap28TQ==} - dependencies: - tslib: 2.3.0 - zrender: 5.3.1 - dev: false - - /ee-first/1.1.1: - resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=} - dev: true - - /ejs/3.1.7: - resolution: {integrity: sha512-BIar7R6abbUxDA3bfXrO4DSgwo8I+fB5/1zgujl3HLLjwd6+9iOnrT+t3grn2qbk9vOgBubXOFwX2m9axoFaGw==} - engines: {node: '>=0.10.0'} - hasBin: true - dependencies: - jake: 10.8.5 - dev: true - - /electron-to-chromium/1.4.137: - resolution: {integrity: sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==} - dev: true - - /element-resize-detector/1.2.4: - resolution: {integrity: sha512-Fl5Ftk6WwXE0wqCgNoseKWndjzZlDCwuPTcoVZfCP9R3EHQF8qUtr3YUPNETegRBOKqQKPW3n4kiIWngGi8tKg==} - dependencies: - batch-processor: 1.0.0 - dev: false - - /email-addresses/3.1.0: - resolution: {integrity: sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==} - dev: true - - /emittery/0.8.1: - resolution: {integrity: sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==} - engines: {node: '>=10'} - dev: true - - /emoji-regex/8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - dev: true - - /encodeurl/1.0.2: - resolution: {integrity: sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=} - engines: {node: '>= 0.8'} - dev: true - - /end-of-stream/1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - dependencies: - once: 1.4.0 - dev: true - - /enquirer/2.3.6: - resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} - engines: {node: '>=8.6'} - dependencies: - ansi-colors: 4.1.1 - dev: true - - /entities/1.1.2: - resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==} - dev: true - - /entities/2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} - dev: true - - /errno/0.1.8: - resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} - hasBin: true - requiresBuild: true - dependencies: - prr: 1.0.1 - dev: true - optional: true - - /error-ex/1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - dependencies: - is-arrayish: 0.2.1 - dev: true - - /es-module-lexer/0.9.3: - resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} - dev: true - - /esbuild-android-64/0.14.38: - resolution: {integrity: sha512-aRFxR3scRKkbmNuGAK+Gee3+yFxkTJO/cx83Dkyzo4CnQl/2zVSurtG6+G86EQIZ+w+VYngVyK7P3HyTBKu3nw==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /esbuild-android-arm64/0.14.38: - resolution: {integrity: sha512-L2NgQRWuHFI89IIZIlpAcINy9FvBk6xFVZ7xGdOwIm8VyhX1vNCEqUJO3DPSSy945Gzdg98cxtNt8Grv1CsyhA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-64/0.14.38: - resolution: {integrity: sha512-5JJvgXkX87Pd1Og0u/NJuO7TSqAikAcQQ74gyJ87bqWRVeouky84ICoV4sN6VV53aTW+NE87qLdGY4QA2S7KNA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-arm64/0.14.38: - resolution: {integrity: sha512-eqF+OejMI3mC5Dlo9Kdq/Ilbki9sQBw3QlHW3wjLmsLh+quNfHmGMp3Ly1eWm981iGBMdbtSS9+LRvR2T8B3eQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-64/0.14.38: - resolution: {integrity: sha512-epnPbhZUt93xV5cgeY36ZxPXDsQeO55DppzsIgWM8vgiG/Rz+qYDLmh5ts3e+Ln1wA9dQ+nZmVHw+RjaW3I5Ig==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-arm64/0.14.38: - resolution: {integrity: sha512-/9icXUYJWherhk+y5fjPI5yNUdFPtXHQlwP7/K/zg8t8lQdHVj20SqU9/udQmeUo5pDFHMYzcEFfJqgOVeKNNQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-32/0.14.38: - resolution: {integrity: sha512-QfgfeNHRFvr2XeHFzP8kOZVnal3QvST3A0cgq32ZrHjSMFTdgXhMhmWdKzRXP/PKcfv3e2OW9tT9PpcjNvaq6g==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-64/0.14.38: - resolution: {integrity: sha512-uuZHNmqcs+Bj1qiW9k/HZU3FtIHmYiuxZ/6Aa+/KHb/pFKr7R3aVqvxlAudYI9Fw3St0VCPfv7QBpUITSmBR1Q==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm/0.14.38: - resolution: {integrity: sha512-FiFvQe8J3VKTDXG01JbvoVRXQ0x6UZwyrU4IaLBZeq39Bsbatd94Fuc3F1RGqPF5RbIWW7RvkVQjn79ejzysnA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm64/0.14.38: - resolution: {integrity: sha512-HlMGZTEsBrXrivr64eZ/EO0NQM8H8DuSENRok9d+Jtvq8hOLzrxfsAT9U94K3KOGk2XgCmkaI2KD8hX7F97lvA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-mips64le/0.14.38: - resolution: {integrity: sha512-qd1dLf2v7QBiI5wwfil9j0HG/5YMFBAmMVmdeokbNAMbcg49p25t6IlJFXAeLzogv1AvgaXRXvgFNhScYEUXGQ==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-ppc64le/0.14.38: - resolution: {integrity: sha512-mnbEm7o69gTl60jSuK+nn+pRsRHGtDPfzhrqEUXyCl7CTOCLtWN2bhK8bgsdp6J/2NyS/wHBjs1x8aBWwP2X9Q==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-riscv64/0.14.38: - resolution: {integrity: sha512-+p6YKYbuV72uikChRk14FSyNJZ4WfYkffj6Af0/Tw63/6TJX6TnIKE+6D3xtEc7DeDth1fjUOEqm+ApKFXbbVQ==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-s390x/0.14.38: - resolution: {integrity: sha512-0zUsiDkGJiMHxBQ7JDU8jbaanUY975CdOW1YDrurjrM0vWHfjv9tLQsW9GSyEb/heSK1L5gaweRjzfUVBFoybQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-netbsd-64/0.14.38: - resolution: {integrity: sha512-cljBAApVwkpnJZfnRVThpRBGzCi+a+V9Ofb1fVkKhtrPLDYlHLrSYGtmnoTVWDQdU516qYI8+wOgcGZ4XIZh0Q==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-node-loader/0.1.1: - resolution: {integrity: sha512-n24xYzMfKmPupUZgs0QYBr52HUSh1M1vDtBfkEVa6pdENqo5+U5WP+zaj4Iw2MinuYk1axLW8+NVutrBCkrdmA==} - dependencies: - esbuild: 0.12.29 - dev: true - - /esbuild-openbsd-64/0.14.38: - resolution: {integrity: sha512-CDswYr2PWPGEPpLDUO50mL3WO/07EMjnZDNKpmaxUPsrW+kVM3LoAqr/CE8UbzugpEiflYqJsGPLirThRB18IQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-register/2.6.0: - resolution: {integrity: sha512-2u4AtnCXP5nivtIxZryiZOUcEQkOzFS7UhAqibUEmaTAThJ48gDLYTBF/Fsz+5r0hbV1jrFE6PQvPDUrKZNt/Q==} - dependencies: - esbuild: 0.12.29 - jsonc-parser: 3.0.0 - dev: true - - /esbuild-sunos-64/0.14.38: - resolution: {integrity: sha512-2mfIoYW58gKcC3bck0j7lD3RZkqYA7MmujFYmSn9l6TiIcAMpuEvqksO+ntBgbLep/eyjpgdplF7b+4T9VJGOA==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-32/0.14.38: - resolution: {integrity: sha512-L2BmEeFZATAvU+FJzJiRLFUP+d9RHN+QXpgaOrs2klshoAm1AE6Us4X6fS9k33Uy5SzScn2TpcgecbqJza1Hjw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-64/0.14.38: - resolution: {integrity: sha512-Khy4wVmebnzue8aeSXLC+6clo/hRYeNIm0DyikoEqX+3w3rcvrhzpoix0S+MF9vzh6JFskkIGD7Zx47ODJNyCw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-arm64/0.14.38: - resolution: {integrity: sha512-k3FGCNmHBkqdJXuJszdWciAH77PukEyDsdIryEHn9cKLQFxzhT39dSumeTuggaQcXY57UlmLGIkklWZo2qzHpw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild/0.11.3: - resolution: {integrity: sha512-BzVRHcCtFepjS9WcqRjqoIxLqgpK21a8J4Zi4msSGxDxiXVO1IbcqT1KjhdDDnJxKfe7bvzZrvMEX+bVO0Elcw==} - hasBin: true - requiresBuild: true - dev: true - - /esbuild/0.12.29: - resolution: {integrity: sha512-w/XuoBCSwepyiZtIRsKsetiLDUVGPVw1E/R3VTFSecIy8UR7Cq3SOtwKHJMFoVqqVG36aGkzh4e8BvpO1Fdc7g==} - hasBin: true - requiresBuild: true - dev: true - - /esbuild/0.14.38: - resolution: {integrity: sha512-12fzJ0fsm7gVZX1YQ1InkOE5f9Tl7cgf6JPYXRJtPIoE0zkWAbHdPHVPPaLi9tYAcEBqheGzqLn/3RdTOyBfcA==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - esbuild-android-64: 0.14.38 - esbuild-android-arm64: 0.14.38 - esbuild-darwin-64: 0.14.38 - esbuild-darwin-arm64: 0.14.38 - esbuild-freebsd-64: 0.14.38 - esbuild-freebsd-arm64: 0.14.38 - esbuild-linux-32: 0.14.38 - esbuild-linux-64: 0.14.38 - esbuild-linux-arm: 0.14.38 - esbuild-linux-arm64: 0.14.38 - esbuild-linux-mips64le: 0.14.38 - esbuild-linux-ppc64le: 0.14.38 - esbuild-linux-riscv64: 0.14.38 - esbuild-linux-s390x: 0.14.38 - esbuild-netbsd-64: 0.14.38 - esbuild-openbsd-64: 0.14.38 - esbuild-sunos-64: 0.14.38 - esbuild-windows-32: 0.14.38 - esbuild-windows-64: 0.14.38 - esbuild-windows-arm64: 0.14.38 - dev: true - - /escalade/3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} - dev: true - - /escape-html/1.0.3: - resolution: {integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=} - dev: true - - /escape-string-regexp/1.0.5: - resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} - engines: {node: '>=0.8.0'} - dev: true - - /escape-string-regexp/2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} - dev: true - - /escape-string-regexp/4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - dev: true - - /escodegen/2.0.0: - resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==} - engines: {node: '>=6.0'} - hasBin: true - dependencies: - esprima: 4.0.1 - estraverse: 5.3.0 - esutils: 2.0.3 - optionator: 0.8.3 - optionalDependencies: - source-map: 0.6.1 - dev: true - - /eslint-config-prettier/8.5.0_eslint@7.32.0: - resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - dependencies: - eslint: 7.32.0 - dev: true - - /eslint-define-config/1.0.9: - resolution: {integrity: sha512-LRzNlRo9sv43BAXY+nhZIUCZLRisTMEXXSqlGc2uZ8emAGyJv3FDSew2MIVRMwThexEjVxjNmeqduaexJ/GT3Q==} - dev: true - - /eslint-plugin-jest/24.7.0_d82317357d846caee0597ee585a8a89b: - resolution: {integrity: sha512-wUxdF2bAZiYSKBclsUMrYHH6WxiBreNjyDxbRv345TIvPeoCEgPNEn3Sa+ZrSqsf1Dl9SqqSREXMHExlMMu1DA==} - engines: {node: '>=10'} - peerDependencies: - '@typescript-eslint/eslint-plugin': '>= 4' - eslint: '>=5' - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true - dependencies: - '@typescript-eslint/eslint-plugin': 4.33.0_5e731fab734ce085fc02cd0ecce6c061 - '@typescript-eslint/experimental-utils': 4.33.0_eslint@7.32.0+typescript@4.6.4 - eslint: 7.32.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /eslint-plugin-prettier/3.4.1_2544802fe0b6e1e28814bd742f96f471: - resolution: {integrity: sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g==} - engines: {node: '>=6.0.0'} - peerDependencies: - eslint: '>=5.0.0' - eslint-config-prettier: '*' - prettier: '>=1.13.0' - peerDependenciesMeta: - eslint-config-prettier: - optional: true - dependencies: - eslint: 7.32.0 - eslint-config-prettier: 8.5.0_eslint@7.32.0 - prettier: 2.6.2 - prettier-linter-helpers: 1.0.0 - dev: true - - /eslint-plugin-vue/7.20.0_eslint@7.32.0: - resolution: {integrity: sha512-oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw==} - engines: {node: '>=8.10'} - peerDependencies: - eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 - dependencies: - eslint: 7.32.0 - eslint-utils: 2.1.0 - natural-compare: 1.4.0 - semver: 6.3.0 - vue-eslint-parser: 7.11.0_eslint@7.32.0 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint-scope/5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - dev: true - - /eslint-utils/2.1.0: - resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} - engines: {node: '>=6'} - dependencies: - eslint-visitor-keys: 1.3.0 - dev: true - - /eslint-utils/3.0.0_eslint@7.32.0: - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - dependencies: - eslint: 7.32.0 - eslint-visitor-keys: 2.1.0 - dev: true - - /eslint-visitor-keys/1.3.0: - resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} - engines: {node: '>=4'} - dev: true - - /eslint-visitor-keys/2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} - dev: true - - /eslint/7.32.0: - resolution: {integrity: sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==} - engines: {node: ^10.12.0 || >=12.0.0} - hasBin: true - dependencies: - '@babel/code-frame': 7.12.11 - '@eslint/eslintrc': 0.4.3 - '@humanwhocodes/config-array': 0.5.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 - enquirer: 2.3.6 - escape-string-regexp: 4.0.0 - eslint-scope: 5.1.1 - eslint-utils: 2.1.0 - eslint-visitor-keys: 2.1.0 - espree: 7.3.1 - esquery: 1.4.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - functional-red-black-tree: 1.0.1 - glob-parent: 5.1.2 - globals: 13.14.0 - ignore: 4.0.6 - import-fresh: 3.3.0 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - js-yaml: 3.14.1 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.1 - progress: 2.0.3 - regexpp: 3.2.0 - semver: 7.3.7 - strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 - table: 6.8.0 - text-table: 0.2.0 - v8-compile-cache: 2.3.0 - transitivePeerDependencies: - - supports-color - dev: true - - /esno/0.7.3: - resolution: {integrity: sha512-ONTHZLBipMC9uK9oqASzqYGCrjcqp/N0NXt/Q0WpYw/Ikm9he+rYER2ATx6czaFcMvwrbIXBlNe9hSEiTrNKow==} - hasBin: true - dependencies: - cross-spawn: 7.0.3 - esbuild: 0.12.29 - esbuild-node-loader: 0.1.1 - esbuild-register: 2.6.0 - dev: true - - /espree/6.2.1: - resolution: {integrity: sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==} - engines: {node: '>=6.0.0'} - dependencies: - acorn: 7.4.1 - acorn-jsx: 5.3.2_acorn@7.4.1 - eslint-visitor-keys: 1.3.0 - dev: true - - /espree/7.3.1: - resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - acorn: 7.4.1 - acorn-jsx: 5.3.2_acorn@7.4.1 - eslint-visitor-keys: 1.3.0 - dev: true - - /esprima/4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - dev: true - - /esquery/1.4.0: - resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} - engines: {node: '>=0.10'} - dependencies: - estraverse: 5.3.0 - dev: true - - /esrecurse/4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - dependencies: - estraverse: 5.3.0 - dev: true - - /estraverse/4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - dev: true - - /estraverse/5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - dev: true - - /estree-walker/1.0.1: - resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} - dev: true - - /estree-walker/2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - - /esutils/2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - dev: true - - /eventemitter3/2.0.3: - resolution: {integrity: sha1-teEHm1n7XhuidxwKmTvgYKWMmbo=} - dev: false - - /evtd/0.2.3: - resolution: {integrity: sha512-tmiT1YUVqFjTY+BSBOAskL83xNx41iUfpvKP6Gcd/xMHjg3mnER98jXGXJyKnxCG19uPc6EhZiUC+MUyvoqCtw==} - dev: false - - /execa/4.1.0: - resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} - engines: {node: '>=10'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 5.2.0 - human-signals: 1.1.1 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - dev: true - - /execa/5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - dev: true - - /execall/2.0.0: - resolution: {integrity: sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==} - engines: {node: '>=8'} - dependencies: - clone-regexp: 2.2.0 - dev: true - - /exit/0.1.2: - resolution: {integrity: sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=} - engines: {node: '>= 0.8.0'} - dev: true - - /expand-tilde/2.0.2: - resolution: {integrity: sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=} - engines: {node: '>=0.10.0'} - dependencies: - homedir-polyfill: 1.0.3 - dev: true - - /expect/27.5.1: - resolution: {integrity: sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - jest-get-type: 27.5.1 - jest-matcher-utils: 27.5.1 - jest-message-util: 27.5.1 - dev: true - - /extend/3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - - /external-editor/3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.0.33 - dev: true - - /fast-deep-equal/3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: true - - /fast-diff/1.1.2: - resolution: {integrity: sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==} - dev: false - - /fast-diff/1.2.0: - resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} - - /fast-glob/3.2.11: - resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - dev: true - - /fast-json-stable-stringify/2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - dev: true - - /fast-levenshtein/2.0.6: - resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=} - dev: true - - /fastest-levenshtein/1.0.12: - resolution: {integrity: sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==} - dev: true - - /fastq/1.13.0: - resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} - dependencies: - reusify: 1.0.4 - dev: true - - /fb-watchman/2.0.1: - resolution: {integrity: sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==} - dependencies: - bser: 2.1.1 - dev: true - - /figures/2.0.0: - resolution: {integrity: sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=} - engines: {node: '>=4'} - dependencies: - escape-string-regexp: 1.0.5 - dev: true - - /file-entry-cache/6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flat-cache: 3.0.4 - dev: true - - /filelist/1.0.3: - resolution: {integrity: sha512-LwjCsruLWQULGYKy7TX0OPtrL9kLpojOFKc5VCTxdFTV7w5zbsgqVKfnkKG7Qgjtq50gKfO56hJv88OfcGb70Q==} - dependencies: - minimatch: 5.0.1 - dev: true - - /filename-reserved-regex/2.0.0: - resolution: {integrity: sha1-q/c9+rc10EVECr/qLZHzieu/oik=} - engines: {node: '>=4'} - dev: true - - /filenamify/4.3.0: - resolution: {integrity: sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==} - engines: {node: '>=8'} - dependencies: - filename-reserved-regex: 2.0.0 - strip-outer: 1.0.1 - trim-repeated: 1.0.0 - dev: true - - /fill-range/7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - dependencies: - to-regex-range: 5.0.1 - dev: true - - /finalhandler/1.1.2: - resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} - engines: {node: '>= 0.8'} - dependencies: - debug: 2.6.9 - encodeurl: 1.0.2 - escape-html: 1.0.3 - on-finished: 2.3.0 - parseurl: 1.3.3 - statuses: 1.5.0 - unpipe: 1.0.0 - dev: true - - /find-cache-dir/3.3.2: - resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} - engines: {node: '>=8'} - dependencies: - commondir: 1.0.1 - make-dir: 3.1.0 - pkg-dir: 4.2.0 - dev: true - - /find-node-modules/2.1.3: - resolution: {integrity: sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==} - dependencies: - findup-sync: 4.0.0 - merge: 2.1.1 - dev: true - - /find-root/1.1.0: - resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} - dev: true - - /find-up/4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - dev: true - - /find-up/5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - dev: true - - /findup-sync/4.0.0: - resolution: {integrity: sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==} - engines: {node: '>= 8'} - dependencies: - detect-file: 1.0.0 - is-glob: 4.0.3 - micromatch: 4.0.5 - resolve-dir: 1.0.1 - dev: true - - /flat-cache/3.0.4: - resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flatted: 3.2.5 - rimraf: 3.0.2 - dev: true - - /flatted/3.2.5: - resolution: {integrity: sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==} - dev: true - - /follow-redirects/1.15.0: - resolution: {integrity: sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - dev: false - - /form-data/3.0.1: - resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} - engines: {node: '>= 6'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: true - - /fraction.js/4.2.0: - resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} - dev: true - - /fs-extra/10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} - engines: {node: '>=12'} - dependencies: - graceful-fs: 4.2.10 - jsonfile: 6.1.0 - universalify: 2.0.0 - dev: true - - /fs-extra/8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} - engines: {node: '>=6 <7 || >=8'} - dependencies: - graceful-fs: 4.2.10 - jsonfile: 4.0.0 - universalify: 0.1.2 - dev: true - - /fs-extra/9.1.0: - resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} - engines: {node: '>=10'} - dependencies: - at-least-node: 1.0.0 - graceful-fs: 4.2.10 - jsonfile: 6.1.0 - universalify: 2.0.0 - dev: true - - /fs.realpath/1.0.0: - resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} - dev: true - - /fsevents/2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /function-bind/1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - - /functional-red-black-tree/1.0.1: - resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=} - dev: true - - /functions-have-names/1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - dev: false - - /gensync/1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - dev: true - - /get-caller-file/2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - dev: true - - /get-intrinsic/1.1.1: - resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==} - dependencies: - function-bind: 1.1.1 - has: 1.0.3 - has-symbols: 1.0.3 - dev: false - - /get-own-enumerable-property-symbols/3.0.2: - resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} - dev: true - - /get-package-type/0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - dev: true - - /get-stdin/8.0.0: - resolution: {integrity: sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==} - engines: {node: '>=10'} - dev: true - - /get-stream/5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} - dependencies: - pump: 3.0.0 - dev: true - - /get-stream/6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - dev: true - - /gh-pages/3.2.3: - resolution: {integrity: sha512-jA1PbapQ1jqzacECfjUaO9gV8uBgU6XNMV0oXLtfCX3haGLe5Atq8BxlrADhbD6/UdG9j6tZLWAkAybndOXTJg==} - engines: {node: '>=10'} - hasBin: true - dependencies: - async: 2.6.4 - commander: 2.20.3 - email-addresses: 3.1.0 - filenamify: 4.3.0 - find-cache-dir: 3.3.2 - fs-extra: 8.1.0 - globby: 6.1.0 - dev: true - - /git-raw-commits/2.0.11: - resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} - engines: {node: '>=10'} - hasBin: true - dependencies: - dargs: 7.0.0 - lodash: 4.17.21 - meow: 8.1.2 - split2: 3.2.2 - through2: 4.0.2 - dev: true - - /glob-parent/5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - dependencies: - is-glob: 4.0.3 - dev: true - - /glob-parent/6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - dependencies: - is-glob: 4.0.3 - dev: true - - /glob/7.1.4: - resolution: {integrity: sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true - - /glob/7.2.0: - resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true - - /global-dirs/0.1.1: - resolution: {integrity: sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=} - engines: {node: '>=4'} - dependencies: - ini: 1.3.8 - dev: true - - /global-modules/1.0.0: - resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} - engines: {node: '>=0.10.0'} - dependencies: - global-prefix: 1.0.2 - is-windows: 1.0.2 - resolve-dir: 1.0.1 - dev: true - - /global-modules/2.0.0: - resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} - engines: {node: '>=6'} - dependencies: - global-prefix: 3.0.0 - dev: true - - /global-prefix/1.0.2: - resolution: {integrity: sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=} - engines: {node: '>=0.10.0'} - dependencies: - expand-tilde: 2.0.2 - homedir-polyfill: 1.0.3 - ini: 1.3.8 - is-windows: 1.0.2 - which: 1.3.1 - dev: true - - /global-prefix/3.0.0: - resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} - engines: {node: '>=6'} - dependencies: - ini: 1.3.8 - kind-of: 6.0.3 - which: 1.3.1 - dev: true - - /globals/11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - dev: true - - /globals/13.14.0: - resolution: {integrity: sha512-ERO68sOYwm5UuLvSJTY7w7NP2c8S4UcXs3X1GBX8cwOr+ShOcDBbCY5mH4zxz0jsYCdJ8ve8Mv9n2YGJMB1aeg==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.20.2 - dev: true - - /globby/11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.2.11 - ignore: 5.2.0 - merge2: 1.4.1 - slash: 3.0.0 - dev: true - - /globby/6.1.0: - resolution: {integrity: sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=} - engines: {node: '>=0.10.0'} - dependencies: - array-union: 1.0.2 - glob: 7.2.0 - object-assign: 4.1.1 - pify: 2.3.0 - pinkie-promise: 2.0.1 - dev: true - - /globjoin/0.1.4: - resolution: {integrity: sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=} - dev: true - - /gonzales-pe/4.3.0: - resolution: {integrity: sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==} - engines: {node: '>=0.6.0'} - hasBin: true - dependencies: - minimist: 1.2.6 - dev: true - - /graceful-fs/4.2.10: - resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} - dev: true - - /hard-rejection/2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} - dev: true - - /has-flag/3.0.0: - resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} - engines: {node: '>=4'} - dev: true - - /has-flag/4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - /has-property-descriptors/1.0.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} - dependencies: - get-intrinsic: 1.1.1 - dev: false - - /has-symbols/1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} - dev: false - - /has-tostringtag/1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} - engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.0.3 - dev: false - - /has/1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} - dependencies: - function-bind: 1.1.1 - - /hash-sum/2.0.0: - resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==} - dev: true - - /he/1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - dev: true - - /header-case/2.0.4: - resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} - dependencies: - capital-case: 1.0.4 - tslib: 2.4.0 - dev: true - - /hex-color-regex/1.1.0: - resolution: {integrity: sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==} - dev: true - - /highlight.js/11.5.1: - resolution: {integrity: sha512-LKzHqnxr4CrD2YsNoIf/o5nJ09j4yi/GcH5BnYz9UnVpZdS4ucMgvP61TDty5xJcFGRjnH4DpujkS9bHT3hq0Q==} - engines: {node: '>=12.0.0'} - dev: false - - /homedir-polyfill/1.0.3: - resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} - engines: {node: '>=0.10.0'} - dependencies: - parse-passwd: 1.0.0 - dev: true - - /hosted-git-info/2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - dev: true - - /hosted-git-info/4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} - dependencies: - lru-cache: 6.0.0 - dev: true - - /hsl-regex/1.0.0: - resolution: {integrity: sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=} - dev: true - - /hsla-regex/1.0.0: - resolution: {integrity: sha1-wc56MWjIxmFAM6S194d/OyJfnDg=} - dev: true - - /html-encoding-sniffer/2.0.1: - resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==} - engines: {node: '>=10'} - dependencies: - whatwg-encoding: 1.0.5 - dev: true - - /html-escaper/2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - dev: true - - /html-minifier-terser/6.1.0: - resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} - engines: {node: '>=12'} - hasBin: true - dependencies: - camel-case: 4.1.2 - clean-css: 5.3.0 - commander: 8.3.0 - he: 1.2.0 - param-case: 3.0.4 - relateurl: 0.2.7 - terser: 5.13.1 - dev: true - - /html-tags/3.2.0: - resolution: {integrity: sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==} - engines: {node: '>=8'} - dev: true - - /htmlparser2/3.10.1: - resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==} - dependencies: - domelementtype: 1.3.1 - domhandler: 2.4.2 - domutils: 1.7.0 - entities: 1.1.2 - inherits: 2.0.4 - readable-stream: 3.6.0 - dev: true - - /http-proxy-agent/4.0.1: - resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} - engines: {node: '>= 6'} - dependencies: - '@tootallnate/once': 1.1.2 - agent-base: 6.0.2 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: true - - /https-proxy-agent/5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} - dependencies: - agent-base: 6.0.2 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: true - - /human-signals/1.1.1: - resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} - engines: {node: '>=8.12.0'} - dev: true - - /human-signals/2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - dev: true - - /husky/6.0.0: - resolution: {integrity: sha512-SQS2gDTB7tBN486QSoKPKQItZw97BMOd+Kdb6ghfpBc0yXyzrddI0oDV5MkDAbuB4X2mO3/nj60TRMcYxwzZeQ==} - hasBin: true - dev: true - - /iconv-lite/0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - dependencies: - safer-buffer: 2.1.2 - dev: true - - /ignore/4.0.6: - resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} - engines: {node: '>= 4'} - dev: true - - /ignore/5.2.0: - resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} - engines: {node: '>= 4'} - dev: true - - /image-size/0.5.5: - resolution: {integrity: sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=} - engines: {node: '>=0.10.0'} - hasBin: true - requiresBuild: true - dev: true - optional: true - - /import-fresh/3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - dev: true - - /import-lazy/4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} - engines: {node: '>=8'} - dev: true - - /import-local/3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} - engines: {node: '>=8'} - hasBin: true - dependencies: - pkg-dir: 4.2.0 - resolve-cwd: 3.0.0 - dev: true - - /imurmurhash/0.1.4: - resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=} - engines: {node: '>=0.8.19'} - dev: true - - /indent-string/4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - dev: true - - /inflight/1.0.6: - resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - dev: true - - /inherits/2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: true - - /ini/1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - dev: true - - /inquirer/6.5.2: - resolution: {integrity: sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==} - engines: {node: '>=6.0.0'} - dependencies: - ansi-escapes: 3.2.0 - chalk: 2.4.2 - cli-cursor: 2.1.0 - cli-width: 2.2.1 - external-editor: 3.1.0 - figures: 2.0.0 - lodash: 4.17.21 - mute-stream: 0.0.7 - run-async: 2.4.1 - rxjs: 6.6.7 - string-width: 2.1.1 - strip-ansi: 5.2.0 - through: 2.3.8 - dev: true - - /is-alphabetical/1.0.4: - resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} - dev: true - - /is-alphanumerical/1.0.4: - resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} - dependencies: - is-alphabetical: 1.0.4 - is-decimal: 1.0.4 - dev: true - - /is-arguments/1.1.1: - resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 - dev: false - - /is-arrayish/0.2.1: - resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} - dev: true - - /is-arrayish/0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - dev: true - - /is-binary-path/2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - dependencies: - binary-extensions: 2.2.0 - dev: true - - /is-buffer/2.0.5: - resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} - engines: {node: '>=4'} - dev: true - - /is-builtin-module/3.1.0: - resolution: {integrity: sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==} - engines: {node: '>=6'} - dependencies: - builtin-modules: 3.2.0 - dev: true - - /is-color-stop/1.1.0: - resolution: {integrity: sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=} - dependencies: - css-color-names: 0.0.4 - hex-color-regex: 1.1.0 - hsl-regex: 1.0.0 - hsla-regex: 1.0.0 - rgb-regex: 1.0.1 - rgba-regex: 1.0.0 - dev: true - - /is-core-module/2.9.0: - resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==} - dependencies: - has: 1.0.3 - dev: true - - /is-date-object/1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: false - - /is-decimal/1.0.4: - resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} - dev: true - - /is-extglob/2.1.1: - resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} - engines: {node: '>=0.10.0'} - dev: true - - /is-fullwidth-code-point/2.0.0: - resolution: {integrity: sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=} - engines: {node: '>=4'} - dev: true - - /is-fullwidth-code-point/3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - dev: true - - /is-generator-fn/2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} - engines: {node: '>=6'} - dev: true - - /is-glob/4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - dev: true - - /is-hexadecimal/1.0.4: - resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} - dev: true - - /is-module/1.0.0: - resolution: {integrity: sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=} - dev: true - - /is-number/7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - dev: true - - /is-obj/1.0.1: - resolution: {integrity: sha1-PkcprB9f3gJc19g6iW2rn09n2w8=} - engines: {node: '>=0.10.0'} - dev: true - - /is-obj/2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} - dev: true - - /is-plain-obj/1.1.0: - resolution: {integrity: sha1-caUMhCnfync8kqOQpKA7OfzVHT4=} - engines: {node: '>=0.10.0'} - dev: true - - /is-plain-obj/2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} - dev: true - - /is-plain-object/5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} - engines: {node: '>=0.10.0'} - dev: false - - /is-potential-custom-element-name/1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - dev: true - - /is-regex/1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 - dev: false - - /is-regexp/1.0.0: - resolution: {integrity: sha1-/S2INUXEa6xaYz57mgnof6LLUGk=} - engines: {node: '>=0.10.0'} - dev: true - - /is-regexp/2.1.0: - resolution: {integrity: sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==} - engines: {node: '>=6'} - dev: true - - /is-stream/2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - dev: true - - /is-text-path/1.0.1: - resolution: {integrity: sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=} - engines: {node: '>=0.10.0'} - dependencies: - text-extensions: 1.9.0 - dev: true - - /is-typedarray/1.0.0: - resolution: {integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=} - dev: true - - /is-unicode-supported/0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - dev: true - - /is-utf8/0.2.1: - resolution: {integrity: sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=} - dev: true - - /is-what/3.14.1: - resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} - dev: true - - /is-windows/1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - dev: true - - /isexe/2.0.0: - resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} - dev: true - - /istanbul-lib-coverage/3.2.0: - resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} - engines: {node: '>=8'} - dev: true - - /istanbul-lib-instrument/5.2.0: - resolution: {integrity: sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==} - engines: {node: '>=8'} - dependencies: - '@babel/core': 7.17.10 - '@babel/parser': 7.17.10 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.0 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: true - - /istanbul-lib-report/3.0.0: - resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} - engines: {node: '>=8'} - dependencies: - istanbul-lib-coverage: 3.2.0 - make-dir: 3.1.0 - supports-color: 7.2.0 - dev: true - - /istanbul-lib-source-maps/4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} - engines: {node: '>=10'} - dependencies: - debug: 4.3.4 - istanbul-lib-coverage: 3.2.0 - source-map: 0.6.1 - transitivePeerDependencies: - - supports-color - dev: true - - /istanbul-reports/3.1.4: - resolution: {integrity: sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==} - engines: {node: '>=8'} - dependencies: - html-escaper: 2.0.2 - istanbul-lib-report: 3.0.0 - dev: true - - /jake/10.8.5: - resolution: {integrity: sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==} - engines: {node: '>=10'} - hasBin: true - dependencies: - async: 3.2.3 - chalk: 4.1.2 - filelist: 1.0.3 - minimatch: 3.1.2 - dev: true - - /jest-changed-files/27.5.1: - resolution: {integrity: sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - execa: 5.1.1 - throat: 6.0.1 - dev: true - - /jest-circus/27.5.1: - resolution: {integrity: sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.5.1 - '@jest/test-result': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 17.0.32 - chalk: 4.1.2 - co: 4.6.0 - dedent: 0.7.0 - expect: 27.5.1 - is-generator-fn: 2.1.0 - jest-each: 27.5.1 - jest-matcher-utils: 27.5.1 - jest-message-util: 27.5.1 - jest-runtime: 27.5.1 - jest-snapshot: 27.5.1 - jest-util: 27.5.1 - pretty-format: 27.5.1 - slash: 3.0.0 - stack-utils: 2.0.5 - throat: 6.0.1 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-cli/27.5.1: - resolution: {integrity: sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': 27.5.1 - '@jest/test-result': 27.5.1 - '@jest/types': 27.5.1 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.10 - import-local: 3.1.0 - jest-config: 27.5.1 - jest-util: 27.5.1 - jest-validate: 27.5.1 - prompts: 2.4.2 - yargs: 16.2.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - - /jest-config/27.5.1: - resolution: {integrity: sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - ts-node: '>=9.0.0' - peerDependenciesMeta: - ts-node: - optional: true - dependencies: - '@babel/core': 7.17.10 - '@jest/test-sequencer': 27.5.1 - '@jest/types': 27.5.1 - babel-jest: 27.5.1_@babel+core@7.17.10 - chalk: 4.1.2 - ci-info: 3.3.0 - deepmerge: 4.2.2 - glob: 7.2.0 - graceful-fs: 4.2.10 - jest-circus: 27.5.1 - jest-environment-jsdom: 27.5.1 - jest-environment-node: 27.5.1 - jest-get-type: 27.5.1 - jest-jasmine2: 27.5.1 - jest-regex-util: 27.5.1 - jest-resolve: 27.5.1 - jest-runner: 27.5.1 - jest-util: 27.5.1 - jest-validate: 27.5.1 - micromatch: 4.0.5 - parse-json: 5.2.0 - pretty-format: 27.5.1 - slash: 3.0.0 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - dev: true - - /jest-diff/27.5.1: - resolution: {integrity: sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - chalk: 4.1.2 - diff-sequences: 27.5.1 - jest-get-type: 27.5.1 - pretty-format: 27.5.1 - - /jest-docblock/27.5.1: - resolution: {integrity: sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - detect-newline: 3.1.0 - dev: true - - /jest-each/27.5.1: - resolution: {integrity: sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - chalk: 4.1.2 - jest-get-type: 27.5.1 - jest-util: 27.5.1 - pretty-format: 27.5.1 - dev: true - - /jest-environment-jsdom/27.5.1: - resolution: {integrity: sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.5.1 - '@jest/fake-timers': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 17.0.32 - jest-mock: 27.5.1 - jest-util: 27.5.1 - jsdom: 16.7.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - dev: true - - /jest-environment-node/27.5.1: - resolution: {integrity: sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.5.1 - '@jest/fake-timers': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 17.0.32 - jest-mock: 27.5.1 - jest-util: 27.5.1 - dev: true - - /jest-get-type/27.5.1: - resolution: {integrity: sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - - /jest-haste-map/27.5.1: - resolution: {integrity: sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - '@types/graceful-fs': 4.1.5 - '@types/node': 17.0.32 - anymatch: 3.1.2 - fb-watchman: 2.0.1 - graceful-fs: 4.2.10 - jest-regex-util: 27.5.1 - jest-serializer: 27.5.1 - jest-util: 27.5.1 - jest-worker: 27.5.1 - micromatch: 4.0.5 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /jest-jasmine2/27.5.1: - resolution: {integrity: sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.5.1 - '@jest/source-map': 27.5.1 - '@jest/test-result': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 17.0.32 - chalk: 4.1.2 - co: 4.6.0 - expect: 27.5.1 - is-generator-fn: 2.1.0 - jest-each: 27.5.1 - jest-matcher-utils: 27.5.1 - jest-message-util: 27.5.1 - jest-runtime: 27.5.1 - jest-snapshot: 27.5.1 - jest-util: 27.5.1 - pretty-format: 27.5.1 - throat: 6.0.1 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-leak-detector/27.5.1: - resolution: {integrity: sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - jest-get-type: 27.5.1 - pretty-format: 27.5.1 - dev: true - - /jest-matcher-utils/27.5.1: - resolution: {integrity: sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - chalk: 4.1.2 - jest-diff: 27.5.1 - jest-get-type: 27.5.1 - pretty-format: 27.5.1 - - /jest-message-util/27.5.1: - resolution: {integrity: sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/code-frame': 7.16.7 - '@jest/types': 27.5.1 - '@types/stack-utils': 2.0.1 - chalk: 4.1.2 - graceful-fs: 4.2.10 - micromatch: 4.0.5 - pretty-format: 27.5.1 - slash: 3.0.0 - stack-utils: 2.0.5 - dev: true - - /jest-mock/27.5.1: - resolution: {integrity: sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - '@types/node': 17.0.32 - dev: true - - /jest-pnp-resolver/1.2.2_jest-resolve@27.5.1: - resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true - dependencies: - jest-resolve: 27.5.1 - dev: true - - /jest-regex-util/27.5.1: - resolution: {integrity: sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dev: true - - /jest-resolve-dependencies/27.5.1: - resolution: {integrity: sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - jest-regex-util: 27.5.1 - jest-snapshot: 27.5.1 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-resolve/27.5.1: - resolution: {integrity: sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - chalk: 4.1.2 - graceful-fs: 4.2.10 - jest-haste-map: 27.5.1 - jest-pnp-resolver: 1.2.2_jest-resolve@27.5.1 - jest-util: 27.5.1 - jest-validate: 27.5.1 - resolve: 1.22.0 - resolve.exports: 1.1.0 - slash: 3.0.0 - dev: true - - /jest-runner/27.5.1: - resolution: {integrity: sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/console': 27.5.1 - '@jest/environment': 27.5.1 - '@jest/test-result': 27.5.1 - '@jest/transform': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 17.0.32 - chalk: 4.1.2 - emittery: 0.8.1 - graceful-fs: 4.2.10 - jest-docblock: 27.5.1 - jest-environment-jsdom: 27.5.1 - jest-environment-node: 27.5.1 - jest-haste-map: 27.5.1 - jest-leak-detector: 27.5.1 - jest-message-util: 27.5.1 - jest-resolve: 27.5.1 - jest-runtime: 27.5.1 - jest-util: 27.5.1 - jest-worker: 27.5.1 - source-map-support: 0.5.21 - throat: 6.0.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - dev: true - - /jest-runtime/27.5.1: - resolution: {integrity: sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.5.1 - '@jest/fake-timers': 27.5.1 - '@jest/globals': 27.5.1 - '@jest/source-map': 27.5.1 - '@jest/test-result': 27.5.1 - '@jest/transform': 27.5.1 - '@jest/types': 27.5.1 - chalk: 4.1.2 - cjs-module-lexer: 1.2.2 - collect-v8-coverage: 1.0.1 - execa: 5.1.1 - glob: 7.2.0 - graceful-fs: 4.2.10 - jest-haste-map: 27.5.1 - jest-message-util: 27.5.1 - jest-mock: 27.5.1 - jest-regex-util: 27.5.1 - jest-resolve: 27.5.1 - jest-snapshot: 27.5.1 - jest-util: 27.5.1 - slash: 3.0.0 - strip-bom: 4.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-serializer/27.5.1: - resolution: {integrity: sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@types/node': 17.0.32 - graceful-fs: 4.2.10 - dev: true - - /jest-snapshot/27.5.1: - resolution: {integrity: sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/core': 7.17.10 - '@babel/generator': 7.17.10 - '@babel/plugin-syntax-typescript': 7.17.10_@babel+core@7.17.10 - '@babel/traverse': 7.17.10 - '@babel/types': 7.17.10 - '@jest/transform': 27.5.1 - '@jest/types': 27.5.1 - '@types/babel__traverse': 7.17.1 - '@types/prettier': 2.6.0 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.17.10 - chalk: 4.1.2 - expect: 27.5.1 - graceful-fs: 4.2.10 - jest-diff: 27.5.1 - jest-get-type: 27.5.1 - jest-haste-map: 27.5.1 - jest-matcher-utils: 27.5.1 - jest-message-util: 27.5.1 - jest-util: 27.5.1 - natural-compare: 1.4.0 - pretty-format: 27.5.1 - semver: 7.3.7 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-util/27.5.1: - resolution: {integrity: sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - '@types/node': 17.0.32 - chalk: 4.1.2 - ci-info: 3.3.0 - graceful-fs: 4.2.10 - picomatch: 2.3.1 - dev: true - - /jest-validate/27.5.1: - resolution: {integrity: sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - camelcase: 6.3.0 - chalk: 4.1.2 - jest-get-type: 27.5.1 - leven: 3.1.0 - pretty-format: 27.5.1 - dev: true - - /jest-watcher/27.5.1: - resolution: {integrity: sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/test-result': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 17.0.32 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - jest-util: 27.5.1 - string-length: 4.0.2 - dev: true - - /jest-worker/27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} - dependencies: - '@types/node': 17.0.32 - merge-stream: 2.0.0 - supports-color: 8.1.1 - dev: true - - /jest/27.5.1: - resolution: {integrity: sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': 27.5.1 - import-local: 3.1.0 - jest-cli: 27.5.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - - /js-tokens/4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - dev: true - - /js-yaml/3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - dev: true - - /jsdom/16.7.0: - resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==} - engines: {node: '>=10'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - dependencies: - abab: 2.0.6 - acorn: 8.7.1 - acorn-globals: 6.0.0 - cssom: 0.4.4 - cssstyle: 2.3.0 - data-urls: 2.0.0 - decimal.js: 10.3.1 - domexception: 2.0.1 - escodegen: 2.0.0 - form-data: 3.0.1 - html-encoding-sniffer: 2.0.1 - http-proxy-agent: 4.0.1 - https-proxy-agent: 5.0.1 - is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.0 - parse5: 6.0.1 - saxes: 5.0.1 - symbol-tree: 3.2.4 - tough-cookie: 4.0.0 - w3c-hr-time: 1.0.2 - w3c-xmlserializer: 2.0.0 - webidl-conversions: 6.1.0 - whatwg-encoding: 1.0.5 - whatwg-mimetype: 2.3.0 - whatwg-url: 8.7.0 - ws: 7.5.7 - xml-name-validator: 3.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - - /jsesc/2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - dev: true - - /json-parse-even-better-errors/2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - dev: true - - /json-schema-traverse/0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - dev: true - - /json-schema-traverse/1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - dev: true - - /json-stable-stringify-without-jsonify/1.0.1: - resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=} - dev: true - - /json5/2.2.1: - resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==} - engines: {node: '>=6'} - hasBin: true - dev: true - - /jsonc-parser/3.0.0: - resolution: {integrity: sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==} - dev: true - - /jsonfile/4.0.0: - resolution: {integrity: sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=} - optionalDependencies: - graceful-fs: 4.2.10 - dev: true - - /jsonfile/6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - dependencies: - universalify: 2.0.0 - optionalDependencies: - graceful-fs: 4.2.10 - dev: true - - /jsonparse/1.3.1: - resolution: {integrity: sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=} - engines: {'0': node >= 0.2.0} - dev: true - - /kind-of/6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - dev: true - - /kleur/3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - dev: true - - /klona/2.0.5: - resolution: {integrity: sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==} - engines: {node: '>= 8'} - dev: true - - /known-css-properties/0.21.0: - resolution: {integrity: sha512-sZLUnTqimCkvkgRS+kbPlYW5o8q5w1cu+uIisKpEWkj31I8mx8kNG162DwRav8Zirkva6N5uoFsm9kzK4mUXjw==} - dev: true - - /less-loader/9.1.0_less@4.1.2: - resolution: {integrity: sha512-/BPur/W4NaDBvw4A7pTGMtKpAsAnexeJdw2VWRVzWEQCNX2FboFa1GUIFwkzBFwX5x/q7M/Srtng96QnhV5wIA==} - engines: {node: '>= 12.13.0'} - peerDependencies: - less: ^3.5.0 || ^4.0.0 - webpack: ^5.0.0 - dependencies: - klona: 2.0.5 - less: 4.1.2 - dev: true - - /less/4.1.2: - resolution: {integrity: sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA==} - engines: {node: '>=6'} - hasBin: true - dependencies: - copy-anything: 2.0.6 - parse-node-version: 1.0.1 - tslib: 2.4.0 - optionalDependencies: - errno: 0.1.8 - graceful-fs: 4.2.10 - image-size: 0.5.5 - make-dir: 2.1.0 - mime: 1.6.0 - needle: 2.9.1 - source-map: 0.6.1 - dev: true - - /leven/3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - dev: true - - /levn/0.3.0: - resolution: {integrity: sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.1.2 - type-check: 0.3.2 - dev: true - - /levn/0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - dev: true - - /lilconfig/2.0.5: - resolution: {integrity: sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==} - engines: {node: '>=10'} - dev: true - - /lines-and-columns/1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - dev: true - - /lint-staged/11.2.6: - resolution: {integrity: sha512-Vti55pUnpvPE0J9936lKl0ngVeTdSZpEdTNhASbkaWX7J5R9OEifo1INBGQuGW4zmy6OG+TcWPJ3m5yuy5Q8Tg==} - hasBin: true - dependencies: - cli-truncate: 2.1.0 - colorette: 1.4.0 - commander: 8.3.0 - cosmiconfig: 7.0.1 - debug: 4.3.4_supports-color@8.1.1 - enquirer: 2.3.6 - execa: 5.1.1 - listr2: 3.14.0_enquirer@2.3.6 - micromatch: 4.0.5 - normalize-path: 3.0.0 - please-upgrade-node: 3.2.0 - string-argv: 0.3.1 - stringify-object: 3.3.0 - supports-color: 8.1.1 - dev: true - - /listr2/3.14.0_enquirer@2.3.6: - resolution: {integrity: sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==} - engines: {node: '>=10.0.0'} - peerDependencies: - enquirer: '>= 2.3.0 < 3' - peerDependenciesMeta: - enquirer: - optional: true - dependencies: - cli-truncate: 2.1.0 - colorette: 2.0.16 - enquirer: 2.3.6 - log-update: 4.0.0 - p-map: 4.0.0 - rfdc: 1.3.0 - rxjs: 7.5.5 - through: 2.3.8 - wrap-ansi: 7.0.0 - dev: true - - /local-pkg/0.4.1: - resolution: {integrity: sha512-lL87ytIGP2FU5PWwNDo0w3WhIo2gopIAxPg9RxDYF7m4rr5ahuZxP22xnJHIvaLTe4Z9P6uKKY2UHiwyB4pcrw==} - engines: {node: '>=14'} - dev: true - - /locate-path/5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - dependencies: - p-locate: 4.1.0 - dev: true - - /locate-path/6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - dependencies: - p-locate: 5.0.0 - dev: true - - /lodash-es/4.17.21: - resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} - dev: false - - /lodash.clonedeep/4.5.0: - resolution: {integrity: sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=} - dev: false - - /lodash.isequal/4.5.0: - resolution: {integrity: sha1-QVxEePK8wwEgwizhDtMib30+GOA=} - dev: false - - /lodash.map/4.6.0: - resolution: {integrity: sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=} - dev: true - - /lodash.merge/4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - dev: true - - /lodash.sortby/4.7.0: - resolution: {integrity: sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=} - dev: true - - /lodash.topath/4.5.2: - resolution: {integrity: sha1-NhY1Hzu6YZlKCTGYlmC9AyVP0Ak=} - dev: true - - /lodash.truncate/4.4.2: - resolution: {integrity: sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=} - dev: true - - /lodash/4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - /log-symbols/4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - dev: true - - /log-update/4.0.0: - resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} - engines: {node: '>=10'} - dependencies: - ansi-escapes: 4.3.2 - cli-cursor: 3.1.0 - slice-ansi: 4.0.0 - wrap-ansi: 6.2.0 - dev: true - - /longest-streak/2.0.4: - resolution: {integrity: sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==} - dev: true - - /longest/2.0.1: - resolution: {integrity: sha1-eB4YMpaqlPbU2RbcM10NF676I/g=} - engines: {node: '>=0.10.0'} - dev: true - - /lower-case/2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} - dependencies: - tslib: 2.4.0 - dev: true - - /lru-cache/6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 - dev: true - - /magic-string/0.25.9: - resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} - dependencies: - sourcemap-codec: 1.4.8 - - /make-dir/2.1.0: - resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} - engines: {node: '>=6'} - requiresBuild: true - dependencies: - pify: 4.0.1 - semver: 5.7.1 - dev: true - optional: true - - /make-dir/3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} - dependencies: - semver: 6.3.0 - dev: true - - /make-error/1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - dev: true - optional: true - - /makeerror/1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} - dependencies: - tmpl: 1.0.5 - dev: true - - /map-obj/1.0.1: - resolution: {integrity: sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=} - engines: {node: '>=0.10.0'} - dev: true - - /map-obj/4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - dev: true - - /mathml-tag-names/2.1.3: - resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} - dev: true - - /mdast-util-from-markdown/0.8.5: - resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} - dependencies: - '@types/mdast': 3.0.10 - mdast-util-to-string: 2.0.0 - micromark: 2.11.4 - parse-entities: 2.0.0 - unist-util-stringify-position: 2.0.3 - transitivePeerDependencies: - - supports-color - dev: true - - /mdast-util-to-markdown/0.6.5: - resolution: {integrity: sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==} - dependencies: - '@types/unist': 2.0.6 - longest-streak: 2.0.4 - mdast-util-to-string: 2.0.0 - parse-entities: 2.0.0 - repeat-string: 1.6.1 - zwitch: 1.0.5 - dev: true - - /mdast-util-to-string/2.0.0: - resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} - dev: true - - /meow/8.1.2: - resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} - engines: {node: '>=10'} - dependencies: - '@types/minimist': 1.2.2 - camelcase-keys: 6.2.2 - decamelize-keys: 1.1.0 - hard-rejection: 2.1.0 - minimist-options: 4.1.0 - normalize-package-data: 3.0.3 - read-pkg-up: 7.0.1 - redent: 3.0.0 - trim-newlines: 3.0.1 - type-fest: 0.18.1 - yargs-parser: 20.2.9 - dev: true - - /meow/9.0.0: - resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==} - engines: {node: '>=10'} - dependencies: - '@types/minimist': 1.2.2 - camelcase-keys: 6.2.2 - decamelize: 1.2.0 - decamelize-keys: 1.1.0 - hard-rejection: 2.1.0 - minimist-options: 4.1.0 - normalize-package-data: 3.0.3 - read-pkg-up: 7.0.1 - redent: 3.0.0 - trim-newlines: 3.0.1 - type-fest: 0.18.1 - yargs-parser: 20.2.9 - dev: true - - /merge-stream/2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: true - - /merge/2.1.1: - resolution: {integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==} - dev: true - - /merge2/1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - dev: true - - /micromark/2.11.4: - resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} - dependencies: - debug: 4.3.4 - parse-entities: 2.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /micromatch/4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} - dependencies: - braces: 3.0.2 - picomatch: 2.3.1 - dev: true - - /mime-db/1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - dev: true - - /mime-types/2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - dependencies: - mime-db: 1.52.0 - dev: true - - /mime/1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - requiresBuild: true - dev: true - optional: true - - /mimic-fn/1.2.0: - resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==} - engines: {node: '>=4'} - dev: true - - /mimic-fn/2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - dev: true - - /min-indent/1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - dev: true - - /minimatch/3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - dependencies: - brace-expansion: 1.1.11 - dev: true - - /minimatch/5.0.1: - resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} - engines: {node: '>=10'} - dependencies: - brace-expansion: 2.0.1 - dev: true - - /minimist-options/4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} - dependencies: - arrify: 1.0.1 - is-plain-obj: 1.1.0 - kind-of: 6.0.3 - dev: true - - /minimist/1.2.5: - resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} - dev: true - - /minimist/1.2.6: - resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} - dev: true - - /mitt/2.1.0: - resolution: {integrity: sha512-ILj2TpLiysu2wkBbWjAmww7TkZb65aiQO+DkVdUTBpBXq+MHYiETENkKFMtsJZX1Lf4pe4QOrTSjIfUwN5lRdg==} - dev: false - - /mockjs/1.1.0: - resolution: {integrity: sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==} - hasBin: true - dependencies: - commander: 9.2.0 - dev: false - - /modern-normalize/1.1.0: - resolution: {integrity: sha512-2lMlY1Yc1+CUy0gw4H95uNN7vjbpoED7NNRSBHE25nWfLBdmMzFCsPshlzbxHz+gYMcBEUN8V4pU16prcdPSgA==} - engines: {node: '>=6'} - dev: true - - /mri/1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - dev: true - - /ms/2.0.0: - resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=} - dev: true - - /ms/2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - dev: true - - /ms/2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - dev: true - optional: true - - /multimatch/4.0.0: - resolution: {integrity: sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==} - engines: {node: '>=8'} - dependencies: - '@types/minimatch': 3.0.5 - array-differ: 3.0.0 - array-union: 2.1.0 - arrify: 2.0.1 - minimatch: 3.1.2 - dev: true - - /mute-stream/0.0.7: - resolution: {integrity: sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=} - dev: true - - /naive-ui/2.28.4_vue@3.2.33: - resolution: {integrity: sha512-zPQycH302C1jx/1Qq16XCWXZ17Suuwn3IVO4dEYaSkRcFfSZmzlZjwoLYFDQo50el0xIeHeWzHuyG5TrLzklcw==} - peerDependencies: - vue: ^3.0.0 - dependencies: - '@css-render/plugin-bem': 0.15.9_css-render@0.15.9 - '@css-render/vue3-ssr': 0.15.9_vue@3.2.33 - '@types/lodash': 4.14.182 - '@types/lodash-es': 4.17.6 - async-validator: 4.1.1 - css-render: 0.15.9 - date-fns: 2.28.0 - date-fns-tz: 1.3.4_date-fns@2.28.0 - evtd: 0.2.3 - highlight.js: 11.5.1 - lodash: 4.17.21 - lodash-es: 4.17.21 - seemly: 0.3.3 - treemate: 0.3.11 - vdirs: 0.1.8_vue@3.2.33 - vooks: 0.2.12_vue@3.2.33 - vue: 3.2.33 - vueuc: 0.4.32_vue@3.2.33 - dev: false - - /nanoid/3.3.4: - resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - /natural-compare/1.4.0: - resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=} - dev: true - - /needle/2.9.1: - resolution: {integrity: sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==} - engines: {node: '>= 4.4.x'} - hasBin: true - requiresBuild: true - dependencies: - debug: 3.2.7 - iconv-lite: 0.4.24 - sax: 1.2.4 - dev: true - optional: true - - /no-case/3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - dependencies: - lower-case: 2.0.2 - tslib: 2.4.0 - dev: true - - /node-emoji/1.11.0: - resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} - dependencies: - lodash: 4.17.21 - dev: true - - /node-int64/0.4.0: - resolution: {integrity: sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=} - dev: true - - /node-releases/2.0.4: - resolution: {integrity: sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==} - dev: true - - /normalize-package-data/2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - dependencies: - hosted-git-info: 2.8.9 - resolve: 1.22.0 - semver: 5.7.1 - validate-npm-package-license: 3.0.4 - dev: true - - /normalize-package-data/3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} - engines: {node: '>=10'} - dependencies: - hosted-git-info: 4.1.0 - is-core-module: 2.9.0 - semver: 7.3.7 - validate-npm-package-license: 3.0.4 - dev: true - - /normalize-path/3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - dev: true - - /normalize-range/0.1.2: - resolution: {integrity: sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=} - engines: {node: '>=0.10.0'} - dev: true - - /normalize-selector/0.2.0: - resolution: {integrity: sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=} - dev: true - - /npm-run-path/4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - dependencies: - path-key: 3.1.1 - dev: true - - /num2fraction/1.2.2: - resolution: {integrity: sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=} - dev: true - - /nwsapi/2.2.0: - resolution: {integrity: sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==} - dev: true - - /object-assign/4.1.1: - resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=} - engines: {node: '>=0.10.0'} - dev: true - - /object-hash/2.2.0: - resolution: {integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==} - engines: {node: '>= 6'} - dev: true - - /object-inspect/1.12.0: - resolution: {integrity: sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==} - dev: false - - /object-is/1.1.5: - resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - dev: false - - /object-keys/1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - dev: false - - /on-finished/2.3.0: - resolution: {integrity: sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=} - engines: {node: '>= 0.8'} - dependencies: - ee-first: 1.1.1 - dev: true - - /once/1.4.0: - resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} - dependencies: - wrappy: 1.0.2 - dev: true - - /onetime/2.0.1: - resolution: {integrity: sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=} - engines: {node: '>=4'} - dependencies: - mimic-fn: 1.2.0 - dev: true - - /onetime/5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - dependencies: - mimic-fn: 2.1.0 - dev: true - - /optionator/0.8.3: - resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} - engines: {node: '>= 0.8.0'} - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.3.0 - prelude-ls: 1.1.2 - type-check: 0.3.2 - word-wrap: 1.2.3 - dev: true - - /optionator/0.9.1: - resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} - engines: {node: '>= 0.8.0'} - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.3 - dev: true - - /os-tmpdir/1.0.2: - resolution: {integrity: sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=} - engines: {node: '>=0.10.0'} - dev: true - - /p-limit/2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - dependencies: - p-try: 2.2.0 - dev: true - - /p-limit/3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - dependencies: - yocto-queue: 0.1.0 - dev: true - - /p-locate/4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - dependencies: - p-limit: 2.3.0 - dev: true - - /p-locate/5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - dependencies: - p-limit: 3.1.0 - dev: true - - /p-map/4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} - dependencies: - aggregate-error: 3.1.0 - dev: true - - /p-try/2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - dev: true - - /param-case/3.0.4: - resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} - dependencies: - dot-case: 3.0.4 - tslib: 2.4.0 - dev: true - - /parchment/1.1.4: - resolution: {integrity: sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg==} - dev: false - - /parent-module/1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - dependencies: - callsites: 3.1.0 - dev: true - - /parse-entities/2.0.0: - resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} - dependencies: - character-entities: 1.2.4 - character-entities-legacy: 1.1.4 - character-reference-invalid: 1.1.4 - is-alphanumerical: 1.0.4 - is-decimal: 1.0.4 - is-hexadecimal: 1.0.4 - dev: true - - /parse-json/5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - dependencies: - '@babel/code-frame': 7.16.7 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - dev: true - - /parse-node-version/1.0.1: - resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} - engines: {node: '>= 0.10'} - dev: true - - /parse-passwd/1.0.0: - resolution: {integrity: sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=} - engines: {node: '>=0.10.0'} - dev: true - - /parse5/6.0.1: - resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} - dev: true - - /parseurl/1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} - dev: true - - /pascal-case/3.1.2: - resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} - dependencies: - no-case: 3.0.4 - tslib: 2.4.0 - dev: true - - /path-case/3.0.4: - resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} - dependencies: - dot-case: 3.0.4 - tslib: 2.4.0 - dev: true - - /path-exists/4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - dev: true - - /path-is-absolute/1.0.1: - resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} - engines: {node: '>=0.10.0'} - dev: true - - /path-key/3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - dev: true - - /path-parse/1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: true - - /path-to-regexp/6.2.1: - resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} - dev: true - - /path-type/4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - dev: true - - /picocolors/0.2.1: - resolution: {integrity: sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==} - dev: true - - /picocolors/1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - - /picomatch/2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - dev: true - - /pify/2.3.0: - resolution: {integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw=} - engines: {node: '>=0.10.0'} - dev: true - - /pify/4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - dev: true - optional: true - - /pinia/2.0.14_typescript@4.6.4+vue@3.2.33: - resolution: {integrity: sha512-0nPuZR4TetT/WcLN+feMSjWJku3SQU7dBbXC6uw+R6FLQJCsg+/0pzXyD82T1FmAYe0lsx+jnEDQ1BLgkRKlxA==} - peerDependencies: - '@vue/composition-api': ^1.4.0 - typescript: '>=4.4.4' - vue: ^2.6.14 || ^3.2.0 - peerDependenciesMeta: - '@vue/composition-api': - optional: true - typescript: - optional: true - dependencies: - '@vue/devtools-api': 6.1.4 - typescript: 4.6.4 - vue: 3.2.33 - vue-demi: 0.12.5_vue@3.2.33 - dev: false - - /pinkie-promise/2.0.1: - resolution: {integrity: sha1-ITXW36ejWMBprJsXh3YogihFD/o=} - engines: {node: '>=0.10.0'} - dependencies: - pinkie: 2.0.4 - dev: true - - /pinkie/2.0.4: - resolution: {integrity: sha1-clVrgM+g1IqXToDnckjoDtT3+HA=} - engines: {node: '>=0.10.0'} - dev: true - - /pirates/4.0.5: - resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} - engines: {node: '>= 6'} - dev: true - - /pkg-dir/4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - dependencies: - find-up: 4.1.0 - dev: true - - /please-upgrade-node/3.2.0: - resolution: {integrity: sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==} - dependencies: - semver-compare: 1.0.0 - dev: true - - /postcss-html/0.36.0_4f7b71a942b8b7a555b8adf78f88122b: - resolution: {integrity: sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==} - peerDependencies: - postcss: '>=5.0.0' - postcss-syntax: '>=0.36.0' - dependencies: - htmlparser2: 3.10.1 - postcss: 7.0.39 - postcss-syntax: 0.36.2_postcss@7.0.39 - dev: true - - /postcss-js/3.0.3: - resolution: {integrity: sha512-gWnoWQXKFw65Hk/mi2+WTQTHdPD5UJdDXZmX073EY/B3BWnYjO4F4t0VneTCnCGQ5E5GsCdMkzPaTXwl3r5dJw==} - engines: {node: '>=10.0'} - dependencies: - camelcase-css: 2.0.1 - postcss: 8.4.13 - dev: true - - /postcss-less/3.1.4: - resolution: {integrity: sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA==} - engines: {node: '>=6.14.4'} - dependencies: - postcss: 7.0.39 - dev: true - - /postcss-load-config/3.1.4_postcss@8.4.13: - resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} - engines: {node: '>= 10'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - dependencies: - lilconfig: 2.0.5 - postcss: 8.4.13 - yaml: 1.10.2 - dev: true - - /postcss-media-query-parser/0.2.3: - resolution: {integrity: sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=} - dev: true - - /postcss-nested/5.0.6_postcss@8.4.13: - resolution: {integrity: sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.2.14 - dependencies: - postcss: 8.4.13 - postcss-selector-parser: 6.0.10 - dev: true - - /postcss-resolve-nested-selector/0.1.1: - resolution: {integrity: sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=} - dev: true - - /postcss-safe-parser/4.0.2: - resolution: {integrity: sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g==} - engines: {node: '>=6.0.0'} - dependencies: - postcss: 7.0.39 - dev: true - - /postcss-sass/0.4.4: - resolution: {integrity: sha512-BYxnVYx4mQooOhr+zer0qWbSPYnarAy8ZT7hAQtbxtgVf8gy+LSLT/hHGe35h14/pZDTw1DsxdbrwxBN++H+fg==} - dependencies: - gonzales-pe: 4.3.0 - postcss: 7.0.39 - dev: true - - /postcss-scss/2.1.1: - resolution: {integrity: sha512-jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA==} - engines: {node: '>=6.0.0'} - dependencies: - postcss: 7.0.39 - dev: true - - /postcss-selector-parser/6.0.10: - resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} - engines: {node: '>=4'} - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - dev: true - - /postcss-sorting/5.0.1: - resolution: {integrity: sha512-Y9fUFkIhfrm6i0Ta3n+89j56EFqaNRdUKqXyRp6kvTcSXnmgEjaVowCXH+JBe9+YKWqd4nc28r2sgwnzJalccA==} - engines: {node: '>=8.7.0'} - dependencies: - lodash: 4.17.21 - postcss: 7.0.39 - dev: true - - /postcss-syntax/0.36.2_postcss@7.0.39: - resolution: {integrity: sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==} - peerDependencies: - postcss: '>=5.0.0' - dependencies: - postcss: 7.0.39 - dev: true - - /postcss-value-parser/3.3.1: - resolution: {integrity: sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==} - dev: true - - /postcss-value-parser/4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - dev: true - - /postcss/7.0.39: - resolution: {integrity: sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==} - engines: {node: '>=6.0.0'} - dependencies: - picocolors: 0.2.1 - source-map: 0.6.1 - dev: true - - /postcss/8.4.13: - resolution: {integrity: sha512-jtL6eTBrza5MPzy8oJLFuUscHDXTV5KcLlqAWHl5q5WYRfnNRGSmOZmOZ1T6Gy7A99mOZfqungmZMpMmCVJ8ZA==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.4 - picocolors: 1.0.0 - source-map-js: 1.0.2 - - /prelude-ls/1.1.2: - resolution: {integrity: sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=} - engines: {node: '>= 0.8.0'} - dev: true - - /prelude-ls/1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - dev: true - - /prettier-linter-helpers/1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} - engines: {node: '>=6.0.0'} - dependencies: - fast-diff: 1.2.0 - dev: true - - /prettier/2.6.2: - resolution: {integrity: sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==} - engines: {node: '>=10.13.0'} - hasBin: true - dev: true - - /pretty-format/27.5.1: - resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - ansi-regex: 5.0.1 - ansi-styles: 5.2.0 - react-is: 17.0.2 - - /pretty-hrtime/1.0.3: - resolution: {integrity: sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=} - engines: {node: '>= 0.8'} - dev: true - - /pretty-quick/3.1.3_prettier@2.6.2: - resolution: {integrity: sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA==} - engines: {node: '>=10.13'} - hasBin: true - peerDependencies: - prettier: '>=2.0.0' - dependencies: - chalk: 3.0.0 - execa: 4.1.0 - find-up: 4.1.0 - ignore: 5.2.0 - mri: 1.2.0 - multimatch: 4.0.0 - prettier: 2.6.2 - dev: true - - /progress/2.0.3: - resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} - engines: {node: '>=0.4.0'} - dev: true - - /prompts/2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - dev: true - - /prr/1.0.1: - resolution: {integrity: sha1-0/wRS6BplaRexok/SEzrHXj19HY=} - dev: true - optional: true - - /psl/1.8.0: - resolution: {integrity: sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==} - dev: true - - /pump/3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - dev: true - - /punycode/2.1.1: - resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} - engines: {node: '>=6'} - dev: true - - /purgecss/4.1.3: - resolution: {integrity: sha512-99cKy4s+VZoXnPxaoM23e5ABcP851nC2y2GROkkjS8eJaJtlciGavd7iYAw2V84WeBqggZ12l8ef44G99HmTaw==} - hasBin: true - dependencies: - commander: 8.3.0 - glob: 7.2.0 - postcss: 8.4.13 - postcss-selector-parser: 6.0.10 - dev: true - - /q/1.5.1: - resolution: {integrity: sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=} - engines: {node: '>=0.6.0', teleport: '>=0.2.0'} - dev: true - - /qs/6.10.3: - resolution: {integrity: sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==} - engines: {node: '>=0.6'} - dependencies: - side-channel: 1.0.4 - dev: false - - /queue-microtask/1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - dev: true - - /quick-lru/4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} - engines: {node: '>=8'} - dev: true - - /quick-lru/5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} - dev: true - - /quill-delta/3.6.3: - resolution: {integrity: sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==} - engines: {node: '>=0.10'} - dependencies: - deep-equal: 1.1.1 - extend: 3.0.2 - fast-diff: 1.1.2 - dev: false - - /quill-delta/4.2.2: - resolution: {integrity: sha512-qjbn82b/yJzOjstBgkhtBjN2TNK+ZHP/BgUQO+j6bRhWQQdmj2lH6hXG7+nwwLF41Xgn//7/83lxs9n2BkTtTg==} - dependencies: - fast-diff: 1.2.0 - lodash.clonedeep: 4.5.0 - lodash.isequal: 4.5.0 - dev: false - - /quill/1.3.7: - resolution: {integrity: sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==} - dependencies: - clone: 2.1.2 - deep-equal: 1.1.1 - eventemitter3: 2.0.3 - extend: 3.0.2 - parchment: 1.1.4 - quill-delta: 3.6.3 - dev: false - - /react-is/17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - - /read-pkg-up/7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} - dependencies: - find-up: 4.1.0 - read-pkg: 5.2.0 - type-fest: 0.8.1 - dev: true - - /read-pkg/5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} - dependencies: - '@types/normalize-package-data': 2.4.1 - normalize-package-data: 2.5.0 - parse-json: 5.2.0 - type-fest: 0.6.0 - dev: true - - /readable-stream/3.6.0: - resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} - engines: {node: '>= 6'} - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - dev: true - - /readdirp/3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - dependencies: - picomatch: 2.3.1 - dev: true - - /redent/3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} - engines: {node: '>=8'} - dependencies: - indent-string: 4.0.0 - strip-indent: 3.0.0 - dev: true - - /reduce-css-calc/2.1.8: - resolution: {integrity: sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg==} - dependencies: - css-unit-converter: 1.1.2 - postcss-value-parser: 3.3.1 - dev: true - - /regexp.prototype.flags/1.4.3: - resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - functions-have-names: 1.2.3 - dev: false - - /regexpp/3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} - engines: {node: '>=8'} - dev: true - - /relateurl/0.2.7: - resolution: {integrity: sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=} - engines: {node: '>= 0.10'} - dev: true - - /remark-parse/9.0.0: - resolution: {integrity: sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==} - dependencies: - mdast-util-from-markdown: 0.8.5 - transitivePeerDependencies: - - supports-color - dev: true - - /remark-stringify/9.0.1: - resolution: {integrity: sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==} - dependencies: - mdast-util-to-markdown: 0.6.5 - dev: true - - /remark/13.0.0: - resolution: {integrity: sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==} - dependencies: - remark-parse: 9.0.0 - remark-stringify: 9.0.1 - unified: 9.2.2 - transitivePeerDependencies: - - supports-color - dev: true - - /repeat-string/1.6.1: - resolution: {integrity: sha1-jcrkcOHIirwtYA//Sndihtp15jc=} - engines: {node: '>=0.10'} - dev: true - - /require-directory/2.1.1: - resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} - engines: {node: '>=0.10.0'} - dev: true - - /require-from-string/2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - dev: true - - /resolve-cwd/3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} - engines: {node: '>=8'} - dependencies: - resolve-from: 5.0.0 - dev: true - - /resolve-dir/1.0.1: - resolution: {integrity: sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=} - engines: {node: '>=0.10.0'} - dependencies: - expand-tilde: 2.0.2 - global-modules: 1.0.0 - dev: true - - /resolve-from/4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - dev: true - - /resolve-from/5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - dev: true - - /resolve-global/1.0.0: - resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} - engines: {node: '>=8'} - dependencies: - global-dirs: 0.1.1 - dev: true - - /resolve.exports/1.1.0: - resolution: {integrity: sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==} - engines: {node: '>=10'} - dev: true - - /resolve/1.22.0: - resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==} - hasBin: true - dependencies: - is-core-module: 2.9.0 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: true - - /restore-cursor/2.0.0: - resolution: {integrity: sha1-n37ih/gv0ybU/RYpI9YhKe7g368=} - engines: {node: '>=4'} - dependencies: - onetime: 2.0.1 - signal-exit: 3.0.7 - dev: true - - /restore-cursor/3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - dev: true - - /reusify/1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: true - - /rfdc/1.3.0: - resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} - dev: true - - /rgb-regex/1.0.1: - resolution: {integrity: sha1-wODWiC3w4jviVKR16O3UGRX+rrE=} - dev: true - - /rgba-regex/1.0.0: - resolution: {integrity: sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=} - dev: true - - /rimraf/3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true - dependencies: - glob: 7.2.0 - dev: true - - /rollup/2.72.1: - resolution: {integrity: sha512-NTc5UGy/NWFGpSqF1lFY8z9Adri6uhyMLI6LvPAXdBKoPRFhIIiBUpt+Qg2awixqO3xvzSijjhnb4+QEZwJmxA==} - engines: {node: '>=10.0.0'} - hasBin: true - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /run-async/2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} - dev: true - - /run-parallel/1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - dependencies: - queue-microtask: 1.2.3 - dev: true - - /rxjs/6.6.7: - resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} - engines: {npm: '>=2.0.0'} - dependencies: - tslib: 1.14.1 - dev: true - - /rxjs/7.5.5: - resolution: {integrity: sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==} - dependencies: - tslib: 2.4.0 - dev: true - - /safe-buffer/5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - dev: true - - /safe-buffer/5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - dev: true - - /safer-buffer/2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - dev: true - - /sax/1.2.4: - resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} - dev: true - optional: true - - /saxes/5.0.1: - resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} - engines: {node: '>=10'} - dependencies: - xmlchars: 2.2.0 - dev: true - - /seemly/0.3.3: - resolution: {integrity: sha512-mAyqemz41e9HiZPMXAn7NtTExJgztwco5cdZjrt/iViU/oFeav+Q8K1c93M/tIZZ00QkT65JMr4xXQk7Vv5hWQ==} - dependencies: - '@types/jest': 27.5.0 - dev: false - - /semver-compare/1.0.0: - resolution: {integrity: sha1-De4hahyUGrN+nvsXiPavxf9VN/w=} - dev: true - - /semver/5.7.1: - resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} - hasBin: true - dev: true - - /semver/6.3.0: - resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} - hasBin: true - dev: true - - /semver/7.3.5: - resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: true - - /semver/7.3.7: - resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: true - - /sentence-case/3.0.4: - resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} - dependencies: - no-case: 3.0.4 - tslib: 2.4.0 - upper-case-first: 2.0.2 - dev: true - - /shebang-command/2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - dependencies: - shebang-regex: 3.0.0 - dev: true - - /shebang-regex/3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - dev: true - - /side-channel/1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.1.1 - object-inspect: 1.12.0 - dev: false - - /signal-exit/3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - dev: true - - /simple-swizzle/0.2.2: - resolution: {integrity: sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=} - dependencies: - is-arrayish: 0.3.2 - dev: true - - /sisteransi/1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - dev: true - - /slash/3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - dev: true - - /slice-ansi/3.0.0: - resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} - engines: {node: '>=8'} - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - dev: true - - /slice-ansi/4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - dev: true - - /snake-case/3.0.4: - resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} - dependencies: - dot-case: 3.0.4 - tslib: 2.4.0 - dev: true - - /sortablejs/1.14.0: - resolution: {integrity: sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==} - dev: false - - /source-map-js/1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} - engines: {node: '>=0.10.0'} - - /source-map-support/0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - dev: true - - /source-map/0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - /source-map/0.7.3: - resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==} - engines: {node: '>= 8'} - dev: true - - /source-map/0.8.0-beta.0: - resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} - engines: {node: '>= 8'} - dependencies: - whatwg-url: 7.1.0 - dev: true - - /sourcemap-codec/1.4.8: - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - - /spdx-correct/3.1.1: - resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} - dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.11 - dev: true - - /spdx-exceptions/2.3.0: - resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} - dev: true - - /spdx-expression-parse/3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - dependencies: - spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.11 - dev: true - - /spdx-license-ids/3.0.11: - resolution: {integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==} - dev: true - - /specificity/0.4.1: - resolution: {integrity: sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==} - hasBin: true - dev: true - - /split2/3.2.2: - resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} - dependencies: - readable-stream: 3.6.0 - dev: true - - /sprintf-js/1.0.3: - resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=} - dev: true - - /stack-utils/2.0.5: - resolution: {integrity: sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==} - engines: {node: '>=10'} - dependencies: - escape-string-regexp: 2.0.0 - dev: true - - /statuses/1.5.0: - resolution: {integrity: sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=} - engines: {node: '>= 0.6'} - dev: true - - /string-argv/0.3.1: - resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} - engines: {node: '>=0.6.19'} - dev: true - - /string-length/4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} - engines: {node: '>=10'} - dependencies: - char-regex: 1.0.2 - strip-ansi: 6.0.1 - dev: true - - /string-width/2.1.1: - resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} - engines: {node: '>=4'} - dependencies: - is-fullwidth-code-point: 2.0.0 - strip-ansi: 4.0.0 - dev: true - - /string-width/4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - dev: true - - /string_decoder/1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - dependencies: - safe-buffer: 5.2.1 - dev: true - - /stringify-object/3.3.0: - resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} - engines: {node: '>=4'} - dependencies: - get-own-enumerable-property-symbols: 3.0.2 - is-obj: 1.0.1 - is-regexp: 1.0.0 - dev: true - - /strip-ansi/4.0.0: - resolution: {integrity: sha1-qEeQIusaw2iocTibY1JixQXuNo8=} - engines: {node: '>=4'} - dependencies: - ansi-regex: 3.0.1 - dev: true - - /strip-ansi/5.2.0: - resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} - engines: {node: '>=6'} - dependencies: - ansi-regex: 4.1.1 - dev: true - - /strip-ansi/6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - dependencies: - ansi-regex: 5.0.1 - dev: true - - /strip-bom/4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - dev: true - - /strip-final-newline/2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - dev: true - - /strip-indent/3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} - dependencies: - min-indent: 1.0.1 - dev: true - - /strip-json-comments/3.0.1: - resolution: {integrity: sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==} - engines: {node: '>=8'} - dev: true - - /strip-json-comments/3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - dev: true - - /strip-outer/1.0.1: - resolution: {integrity: sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==} - engines: {node: '>=0.10.0'} - dependencies: - escape-string-regexp: 1.0.5 - dev: true - - /style-search/0.1.0: - resolution: {integrity: sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=} - dev: true - - /stylelint-config-prettier/8.0.2_stylelint@13.13.1: - resolution: {integrity: sha512-TN1l93iVTXpF9NJstlvP7nOu9zY2k+mN0NSFQ/VEGz15ZIP9ohdDZTtCWHs5LjctAhSAzaILULGbgiM0ItId3A==} - engines: {node: '>= 10', npm: '>= 5'} - hasBin: true - peerDependencies: - stylelint: '>=11.0.0' - dependencies: - stylelint: 13.13.1 - dev: true - - /stylelint-config-recommended/5.0.0_stylelint@13.13.1: - resolution: {integrity: sha512-c8aubuARSu5A3vEHLBeOSJt1udOdS+1iue7BmJDTSXoCBmfEQmmWX+59vYIj3NQdJBY6a/QRv1ozVFpaB9jaqA==} - peerDependencies: - stylelint: ^13.13.0 - dependencies: - stylelint: 13.13.1 - dev: true - - /stylelint-config-standard/22.0.0_stylelint@13.13.1: - resolution: {integrity: sha512-uQVNi87SHjqTm8+4NIP5NMAyY/arXrBgimaaT7skvRfE9u3JKXRK9KBkbr4pVmeciuCcs64kAdjlxfq6Rur7Hw==} - peerDependencies: - stylelint: ^13.13.0 - dependencies: - stylelint: 13.13.1 - stylelint-config-recommended: 5.0.0_stylelint@13.13.1 - dev: true - - /stylelint-order/4.1.0_stylelint@13.13.1: - resolution: {integrity: sha512-sVTikaDvMqg2aJjh4r48jsdfmqLT+nqB1MOsaBnvM3OwLx4S+WXcsxsgk5w18h/OZoxZCxuyXMh61iBHcj9Qiw==} - peerDependencies: - stylelint: ^10.0.1 || ^11.0.0 || ^12.0.0 || ^13.0.0 - dependencies: - lodash: 4.17.21 - postcss: 7.0.39 - postcss-sorting: 5.0.1 - stylelint: 13.13.1 - dev: true - - /stylelint-scss/3.21.0_stylelint@13.13.1: - resolution: {integrity: sha512-CMI2wSHL+XVlNExpauy/+DbUcB/oUZLARDtMIXkpV/5yd8nthzylYd1cdHeDMJVBXeYHldsnebUX6MoV5zPW4A==} - engines: {node: '>=8'} - peerDependencies: - stylelint: ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 - dependencies: - lodash: 4.17.21 - postcss-media-query-parser: 0.2.3 - postcss-resolve-nested-selector: 0.1.1 - postcss-selector-parser: 6.0.10 - postcss-value-parser: 4.2.0 - stylelint: 13.13.1 - dev: true - - /stylelint/13.13.1: - resolution: {integrity: sha512-Mv+BQr5XTUrKqAXmpqm6Ddli6Ief+AiPZkRsIrAoUKFuq/ElkUh9ZMYxXD0iQNZ5ADghZKLOWz1h7hTClB7zgQ==} - engines: {node: '>=10.13.0'} - hasBin: true - dependencies: - '@stylelint/postcss-css-in-js': 0.37.3_4f7b71a942b8b7a555b8adf78f88122b - '@stylelint/postcss-markdown': 0.36.2_4f7b71a942b8b7a555b8adf78f88122b - autoprefixer: 9.8.8 - balanced-match: 2.0.0 - chalk: 4.1.2 - cosmiconfig: 7.0.1 - debug: 4.3.4 - execall: 2.0.0 - fast-glob: 3.2.11 - fastest-levenshtein: 1.0.12 - file-entry-cache: 6.0.1 - get-stdin: 8.0.0 - global-modules: 2.0.0 - globby: 11.1.0 - globjoin: 0.1.4 - html-tags: 3.2.0 - ignore: 5.2.0 - import-lazy: 4.0.0 - imurmurhash: 0.1.4 - known-css-properties: 0.21.0 - lodash: 4.17.21 - log-symbols: 4.1.0 - mathml-tag-names: 2.1.3 - meow: 9.0.0 - micromatch: 4.0.5 - normalize-selector: 0.2.0 - postcss: 7.0.39 - postcss-html: 0.36.0_4f7b71a942b8b7a555b8adf78f88122b - postcss-less: 3.1.4 - postcss-media-query-parser: 0.2.3 - postcss-resolve-nested-selector: 0.1.1 - postcss-safe-parser: 4.0.2 - postcss-sass: 0.4.4 - postcss-scss: 2.1.1 - postcss-selector-parser: 6.0.10 - postcss-syntax: 0.36.2_postcss@7.0.39 - postcss-value-parser: 4.2.0 - resolve-from: 5.0.0 - slash: 3.0.0 - specificity: 0.4.1 - string-width: 4.2.3 - strip-ansi: 6.0.1 - style-search: 0.1.0 - sugarss: 2.0.0 - svg-tags: 1.0.0 - table: 6.8.0 - v8-compile-cache: 2.3.0 - write-file-atomic: 3.0.3 - transitivePeerDependencies: - - supports-color - dev: true - - /sugarss/2.0.0: - resolution: {integrity: sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==} - dependencies: - postcss: 7.0.39 - dev: true - - /supports-color/5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - dependencies: - has-flag: 3.0.0 - dev: true - - /supports-color/7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - - /supports-color/8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - dependencies: - has-flag: 4.0.0 - dev: true - - /supports-hyperlinks/2.2.0: - resolution: {integrity: sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==} - engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - supports-color: 7.2.0 - dev: true - - /supports-preserve-symlinks-flag/1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - dev: true - - /svg-tags/1.0.0: - resolution: {integrity: sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=} - dev: true - - /symbol-tree/3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - dev: true - - /table/6.8.0: - resolution: {integrity: sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==} - engines: {node: '>=10.0.0'} - dependencies: - ajv: 8.11.0 - lodash.truncate: 4.4.2 - slice-ansi: 4.0.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: true - - /tailwindcss/2.2.19_1479244b7b1ab8346eed707106c1912f: - resolution: {integrity: sha512-6Ui7JSVtXadtTUo2NtkBBacobzWiQYVjYW0ZnKaP9S1ZCKQ0w7KVNz+YSDI/j7O7KCMHbOkz94ZMQhbT9pOqjw==} - engines: {node: '>=12.13.0'} - hasBin: true - peerDependencies: - autoprefixer: ^10.0.2 - postcss: ^8.0.9 - dependencies: - arg: 5.0.1 - autoprefixer: 10.4.7_postcss@8.4.13 - bytes: 3.1.2 - chalk: 4.1.2 - chokidar: 3.5.3 - color: 4.2.3 - cosmiconfig: 7.0.1 - detective: 5.2.0 - didyoumean: 1.2.2 - dlv: 1.1.3 - fast-glob: 3.2.11 - fs-extra: 10.1.0 - glob-parent: 6.0.2 - html-tags: 3.2.0 - is-color-stop: 1.1.0 - is-glob: 4.0.3 - lodash: 4.17.21 - lodash.topath: 4.5.2 - modern-normalize: 1.1.0 - node-emoji: 1.11.0 - normalize-path: 3.0.0 - object-hash: 2.2.0 - postcss: 8.4.13 - postcss-js: 3.0.3 - postcss-load-config: 3.1.4_postcss@8.4.13 - postcss-nested: 5.0.6_postcss@8.4.13 - postcss-selector-parser: 6.0.10 - postcss-value-parser: 4.2.0 - pretty-hrtime: 1.0.3 - purgecss: 4.1.3 - quick-lru: 5.1.1 - reduce-css-calc: 2.1.8 - resolve: 1.22.0 - tmp: 0.2.1 - transitivePeerDependencies: - - ts-node - dev: true - - /terminal-link/2.1.1: - resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} - engines: {node: '>=8'} - dependencies: - ansi-escapes: 4.3.2 - supports-hyperlinks: 2.2.0 - dev: true - - /terser/5.13.1: - resolution: {integrity: sha512-hn4WKOfwnwbYfe48NgrQjqNOH9jzLqRcIfbYytOXCOv46LBfWr9bDS17MQqOi+BWGD0sJK3Sj5NC/gJjiojaoA==} - engines: {node: '>=10'} - hasBin: true - dependencies: - acorn: 8.7.1 - commander: 2.20.3 - source-map: 0.8.0-beta.0 - source-map-support: 0.5.21 - dev: true - - /test-exclude/6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} - dependencies: - '@istanbuljs/schema': 0.1.3 - glob: 7.2.0 - minimatch: 3.1.2 - dev: true - - /text-extensions/1.9.0: - resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} - engines: {node: '>=0.10'} - dev: true - - /text-table/0.2.0: - resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=} - dev: true - - /throat/6.0.1: - resolution: {integrity: sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==} - dev: true - - /through/2.3.8: - resolution: {integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=} - dev: true - - /through2/4.0.2: - resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} - dependencies: - readable-stream: 3.6.0 - dev: true - - /tmp/0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} - dependencies: - os-tmpdir: 1.0.2 - dev: true - - /tmp/0.2.1: - resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} - engines: {node: '>=8.17.0'} - dependencies: - rimraf: 3.0.2 - dev: true - - /tmpl/1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - dev: true - - /to-fast-properties/2.0.0: - resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=} - engines: {node: '>=4'} - dev: true - - /to-regex-range/5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - dependencies: - is-number: 7.0.0 - dev: true - - /tough-cookie/4.0.0: - resolution: {integrity: sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==} - engines: {node: '>=6'} - dependencies: - psl: 1.8.0 - punycode: 2.1.1 - universalify: 0.1.2 - dev: true - - /tr46/1.0.1: - resolution: {integrity: sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=} - dependencies: - punycode: 2.1.1 - dev: true - - /tr46/2.1.0: - resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==} - engines: {node: '>=8'} - dependencies: - punycode: 2.1.1 - dev: true - - /treemate/0.3.11: - resolution: {integrity: sha512-M8RGFoKtZ8dF+iwJfAJTOH/SM4KluKOKRJpjCMhI8bG3qB74zrFoArKZ62ll0Fr3mqkMJiQOmWYkdYgDeITYQg==} - dev: false - - /trim-newlines/3.0.1: - resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} - engines: {node: '>=8'} - dev: true - - /trim-repeated/1.0.0: - resolution: {integrity: sha1-42RqLqTokTEr9+rObPsFOAvAHCE=} - engines: {node: '>=0.10.0'} - dependencies: - escape-string-regexp: 1.0.5 - dev: true - - /trough/1.0.5: - resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==} - dev: true - - /ts-node/10.7.0_45c533f94194dbe6bbe742a6dc894b44: - resolution: {integrity: sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - dependencies: - '@cspotcode/source-map-support': 0.7.0 - '@tsconfig/node10': 1.0.8 - '@tsconfig/node12': 1.0.9 - '@tsconfig/node14': 1.0.1 - '@tsconfig/node16': 1.0.2 - '@types/node': 15.14.9 - acorn: 8.7.1 - acorn-walk: 8.2.0 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 4.6.4 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - dev: true - optional: true - - /tslib/1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - dev: true - - /tslib/2.3.0: - resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==} - dev: false - - /tslib/2.4.0: - resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} - dev: true - - /tsutils/3.21.0_typescript@4.6.4: - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - dependencies: - tslib: 1.14.1 - typescript: 4.6.4 - dev: true - - /type-check/0.3.2: - resolution: {integrity: sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.1.2 - dev: true - - /type-check/0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - dev: true - - /type-detect/4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - dev: true - - /type-fest/0.18.1: - resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} - engines: {node: '>=10'} - dev: true - - /type-fest/0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - dev: true - - /type-fest/0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - dev: true - - /type-fest/0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - dev: true - - /type-fest/0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - dev: true - - /typedarray-to-buffer/3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - dependencies: - is-typedarray: 1.0.0 - dev: true - - /typescript/4.6.4: - resolution: {integrity: sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==} - engines: {node: '>=4.2.0'} - hasBin: true - dev: true - - /unified/9.2.2: - resolution: {integrity: sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==} - dependencies: - bail: 1.0.5 - extend: 3.0.2 - is-buffer: 2.0.5 - is-plain-obj: 2.1.0 - trough: 1.0.5 - vfile: 4.2.1 - dev: true - - /unist-util-find-all-after/3.0.2: - resolution: {integrity: sha512-xaTC/AGZ0rIM2gM28YVRAFPIZpzbpDtU3dRmp7EXlNVA8ziQc4hY3H7BHXM1J49nEmiqc3svnqMReW+PGqbZKQ==} - dependencies: - unist-util-is: 4.1.0 - dev: true - - /unist-util-is/4.1.0: - resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} - dev: true - - /unist-util-stringify-position/2.0.3: - resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} - dependencies: - '@types/unist': 2.0.6 - dev: true - - /universalify/0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - dev: true - - /universalify/2.0.0: - resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} - engines: {node: '>= 10.0.0'} - dev: true - - /unpipe/1.0.0: - resolution: {integrity: sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=} - engines: {node: '>= 0.8'} - dev: true - - /unplugin-vue-components/0.17.21_vite@2.9.8+vue@3.2.33: - resolution: {integrity: sha512-jkXksUF6zkNbzHQbw1DdrsQyVoMZGESRZDIGd9x7nUP+65nHdpBCY/JmlxSjKbuTrOwfMsk6FQFa0RpRueOCKg==} - engines: {node: '>=14'} - peerDependencies: - '@babel/parser': ^7.15.8 - '@babel/traverse': ^7.15.4 - vue: 2 || 3 - peerDependenciesMeta: - '@babel/parser': - optional: true - '@babel/traverse': - optional: true - dependencies: - '@antfu/utils': 0.4.0 - '@rollup/pluginutils': 4.2.1 - chokidar: 3.5.3 - debug: 4.3.4 - fast-glob: 3.2.11 - local-pkg: 0.4.1 - magic-string: 0.25.9 - minimatch: 3.1.2 - resolve: 1.22.0 - unplugin: 0.3.3_vite@2.9.8 - vue: 3.2.33 - transitivePeerDependencies: - - esbuild - - rollup - - supports-color - - vite - - webpack - dev: true - - /unplugin/0.3.3_vite@2.9.8: - resolution: {integrity: sha512-WjZWpUqqcYPQ/efR00Zm2m1+J1LitwoZ4uhHV4VdZ+IpW0Nh/qnDYtVf+nLhozXdGxslMPecOshVR7NiWFl4gA==} - peerDependencies: - esbuild: '>=0.13' - rollup: ^2.50.0 - vite: ^2.3.0 - webpack: 4 || 5 - peerDependenciesMeta: - esbuild: - optional: true - rollup: - optional: true - vite: - optional: true - webpack: - optional: true - dependencies: - vite: 2.9.8_less@4.1.2 - webpack-virtual-modules: 0.4.3 - dev: true - - /upper-case-first/2.0.2: - resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} - dependencies: - tslib: 2.4.0 - dev: true - - /upper-case/2.0.2: - resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} - dependencies: - tslib: 2.4.0 - dev: true - - /uri-js/4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - dependencies: - punycode: 2.1.1 - dev: true - - /util-deprecate/1.0.2: - resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} - dev: true - - /utils-merge/1.0.1: - resolution: {integrity: sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=} - engines: {node: '>= 0.4.0'} - dev: true - - /v8-compile-cache-lib/3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - dev: true - optional: true - - /v8-compile-cache/2.3.0: - resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} - dev: true - - /v8-to-istanbul/8.1.1: - resolution: {integrity: sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==} - engines: {node: '>=10.12.0'} - dependencies: - '@types/istanbul-lib-coverage': 2.0.4 - convert-source-map: 1.8.0 - source-map: 0.7.3 - dev: true - - /validate-npm-package-license/3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - dependencies: - spdx-correct: 3.1.1 - spdx-expression-parse: 3.0.1 - dev: true - - /vdirs/0.1.8_vue@3.2.33: - resolution: {integrity: sha512-H9V1zGRLQZg9b+GdMk8MXDN2Lva0zx72MPahDKc30v+DtwKjfyOSXWRIX4t2mhDubM1H09gPhWeth/BJWPHGUw==} - peerDependencies: - vue: ^3.0.11 - dependencies: - evtd: 0.2.3 - vue: 3.2.33 - dev: false - - /vfile-message/2.0.4: - resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==} - dependencies: - '@types/unist': 2.0.6 - unist-util-stringify-position: 2.0.3 - dev: true - - /vfile/4.2.1: - resolution: {integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==} - dependencies: - '@types/unist': 2.0.6 - is-buffer: 2.0.5 - unist-util-stringify-position: 2.0.3 - vfile-message: 2.0.4 - dev: true - - /vfonts/0.1.0: - resolution: {integrity: sha512-vQBcvntBlnAPonAkGNM8iJ9NxE3PucA+V2W95xiN75YJKxirLJvOws2kEyOEO45T4N+YTbQOCR2m77Y05pfVhQ==} - dev: false - - /vite-plugin-compression/0.3.6_vite@2.9.8: - resolution: {integrity: sha512-aSskQCJsP3VQ8PsnY+vO7UfD5qoFMOEuzg0PG2E9Zqyx+ARmc3wr9KCgOFraZOFW1Y4UAa5BR0SMTjoxHRMJoQ==} - peerDependencies: - vite: '>=2.0.0' - dependencies: - chalk: 4.1.2 - debug: 4.3.4 - fs-extra: 10.1.0 - vite: 2.9.8_less@4.1.2 - transitivePeerDependencies: - - supports-color - dev: true - - /vite-plugin-html/2.1.2_vite@2.9.8: - resolution: {integrity: sha512-7HXkL6n7M2qDEaUV4Vnz8yM2glW4gV36d5HSBIM5gOoAG1PkuQb4Vv9FTPgPiQxq4sPRf/6IgABX0MeLVW+CyQ==} - peerDependencies: - vite: '>=2.0.0' - dependencies: - '@rollup/pluginutils': 4.2.1 - dotenv: 10.0.0 - dotenv-expand: 5.1.0 - ejs: 3.1.7 - fs-extra: 10.1.0 - html-minifier-terser: 6.1.0 - vite: 2.9.8_less@4.1.2 - dev: true - - /vite-plugin-mock/2.9.6_mockjs@1.1.0+vite@2.9.8: - resolution: {integrity: sha512-/Rm59oPppe/ncbkSrUuAxIQihlI2YcBmnbR4ST1RA2VzM1C0tEQc1KlbQvnUGhXECAGTaQN2JyasiwXP6EtKgg==} - engines: {node: '>=12.0.0'} - peerDependencies: - mockjs: '>=1.1.0' - vite: '>=2.0.0' - dependencies: - '@rollup/plugin-node-resolve': 13.3.0 - '@types/mockjs': 1.0.6 - chalk: 4.1.2 - chokidar: 3.5.3 - connect: 3.7.0 - debug: 4.3.4 - esbuild: 0.11.3 - fast-glob: 3.2.11 - mockjs: 1.1.0 - path-to-regexp: 6.2.1 - vite: 2.9.8_less@4.1.2 - transitivePeerDependencies: - - rollup - - supports-color - dev: true - - /vite-plugin-style-import/1.4.1_vite@2.9.8: - resolution: {integrity: sha512-lJCRvm7+So0hHdnSJiJPg9gD5mxtL6YY0jmhEph+k7ArpsyvqOh6han2kG5htbWWDZxHkUN9d1BuTFL//yCLLQ==} - peerDependencies: - vite: '>=2.0.0' - dependencies: - '@rollup/pluginutils': 4.2.1 - change-case: 4.1.2 - debug: 4.3.4 - es-module-lexer: 0.9.3 - fs-extra: 10.1.0 - magic-string: 0.25.9 - vite: 2.9.8_less@4.1.2 - transitivePeerDependencies: - - supports-color - dev: true - - /vite/2.9.8_less@4.1.2: - resolution: {integrity: sha512-zsBGwn5UT3YS0NLSJ7hnR54+vUKfgzMUh/Z9CxF1YKEBVIe213+63jrFLmZphgGI5zXwQCSmqIdbPuE8NJywPw==} - engines: {node: '>=12.2.0'} - hasBin: true - peerDependencies: - less: '*' - sass: '*' - stylus: '*' - peerDependenciesMeta: - less: - optional: true - sass: - optional: true - stylus: - optional: true - dependencies: - esbuild: 0.14.38 - less: 4.1.2 - postcss: 8.4.13 - resolve: 1.22.0 - rollup: 2.72.1 - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /vooks/0.2.12_vue@3.2.33: - resolution: {integrity: sha512-iox0I3RZzxtKlcgYaStQYKEzWWGAduMmq+jS7OrNdQo1FgGfPMubGL3uGHOU9n97NIvfFDBGnpSvkWyb/NSn/Q==} - peerDependencies: - vue: ^3.0.0 - dependencies: - evtd: 0.2.3 - vue: 3.2.33 - dev: false - - /vue-demi/0.12.5_vue@3.2.33: - resolution: {integrity: sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - peerDependencies: - '@vue/composition-api': ^1.0.0-rc.1 - vue: ^3.0.0-0 || ^2.6.0 - peerDependenciesMeta: - '@vue/composition-api': - optional: true - dependencies: - vue: 3.2.33 - dev: false - - /vue-eslint-parser/7.11.0_eslint@7.32.0: - resolution: {integrity: sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg==} - engines: {node: '>=8.10'} - peerDependencies: - eslint: '>=5.0.0' - dependencies: - debug: 4.3.4 - eslint: 7.32.0 - eslint-scope: 5.1.1 - eslint-visitor-keys: 1.3.0 - espree: 6.2.1 - esquery: 1.4.0 - lodash: 4.17.21 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: true - - /vue-router/4.0.15_vue@3.2.33: - resolution: {integrity: sha512-xa+pIN9ZqORdIW1MkN2+d9Ui2pCM1b/UMgwYUCZOiFYHAvz/slKKBDha8DLrh5aCG/RibtrpyhKjKOZ85tYyWg==} - peerDependencies: - vue: ^3.2.0 - dependencies: - '@vue/devtools-api': 6.1.4 - vue: 3.2.33 - dev: false - - /vue-types/4.1.1_vue@3.2.33: - resolution: {integrity: sha512-Jq2GZ/w6rExJbLA/h7nHBFLciu+YNekgox0DB64wN1snZ4IIJMq+qnqp1/vE4fc7vEjZcP5KGhLzkkSjIHLRzw==} - engines: {node: '>=12.16.0'} - peerDependencies: - vue: ^2.0.0 || ^3.0.0 - dependencies: - is-plain-object: 5.0.0 - vue: 3.2.33 - dev: false - - /vue/3.2.33: - resolution: {integrity: sha512-si1ExAlDUrLSIg/V7D/GgA4twJwfsfgG+t9w10z38HhL/HA07132pUQ2KuwAo8qbCyMJ9e6OqrmWrOCr+jW7ZQ==} - dependencies: - '@vue/compiler-dom': 3.2.33 - '@vue/compiler-sfc': 3.2.33 - '@vue/runtime-dom': 3.2.33 - '@vue/server-renderer': 3.2.33_vue@3.2.33 - '@vue/shared': 3.2.33 - dev: false - - /vuedraggable/4.1.0_vue@3.2.33: - resolution: {integrity: sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==} - peerDependencies: - vue: ^3.0.1 - dependencies: - sortablejs: 1.14.0 - vue: 3.2.33 - dev: false - - /vueuc/0.4.32_vue@3.2.33: - resolution: {integrity: sha512-Bmiuhn7g5O+dzW3eX2EghsG7CiocpLwRtgbX7aiILja9K0wjxVYrJqMOiYwCxB6pvO91JDywwINpFshMZru9/g==} - peerDependencies: - vue: ^3.0.11 - dependencies: - '@css-render/vue3-ssr': 0.15.9_vue@3.2.33 - '@juggle/resize-observer': 3.3.1 - css-render: 0.15.9 - evtd: 0.2.3 - seemly: 0.3.3 - vdirs: 0.1.8_vue@3.2.33 - vooks: 0.2.12_vue@3.2.33 - vue: 3.2.33 - dev: false - - /w3c-hr-time/1.0.2: - resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} - dependencies: - browser-process-hrtime: 1.0.0 - dev: true - - /w3c-xmlserializer/2.0.0: - resolution: {integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==} - engines: {node: '>=10'} - dependencies: - xml-name-validator: 3.0.0 - dev: true - - /walker/1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - dependencies: - makeerror: 1.0.12 - dev: true - - /webidl-conversions/4.0.2: - resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} - dev: true - - /webidl-conversions/5.0.0: - resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==} - engines: {node: '>=8'} - dev: true - - /webidl-conversions/6.1.0: - resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==} - engines: {node: '>=10.4'} - dev: true - - /webpack-virtual-modules/0.4.3: - resolution: {integrity: sha512-5NUqC2JquIL2pBAAo/VfBP6KuGkHIZQXW/lNKupLPfhViwh8wNsu0BObtl09yuKZszeEUfbXz8xhrHvSG16Nqw==} - dev: true - - /whatwg-encoding/1.0.5: - resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==} - dependencies: - iconv-lite: 0.4.24 - dev: true - - /whatwg-mimetype/2.3.0: - resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==} - dev: true - - /whatwg-url/7.1.0: - resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} - dependencies: - lodash.sortby: 4.7.0 - tr46: 1.0.1 - webidl-conversions: 4.0.2 - dev: true - - /whatwg-url/8.7.0: - resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==} - engines: {node: '>=10'} - dependencies: - lodash: 4.17.21 - tr46: 2.1.0 - webidl-conversions: 6.1.0 - dev: true - - /which/1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - dependencies: - isexe: 2.0.0 - dev: true - - /which/2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - dependencies: - isexe: 2.0.0 - dev: true - - /word-wrap/1.2.3: - resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} - engines: {node: '>=0.10.0'} - dev: true - - /wrap-ansi/6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: true - - /wrap-ansi/7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: true - - /wrappy/1.0.2: - resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} - dev: true - - /write-file-atomic/3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - dependencies: - imurmurhash: 0.1.4 - is-typedarray: 1.0.0 - signal-exit: 3.0.7 - typedarray-to-buffer: 3.1.5 - dev: true - - /ws/7.5.7: - resolution: {integrity: sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: true - - /xml-name-validator/3.0.0: - resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==} - dev: true - - /xmlchars/2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - dev: true - - /xtend/4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - dev: true - - /y18n/5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - dev: true - - /yallist/4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - dev: true - - /yaml/1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - dev: true - - /yargs-parser/20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - dev: true - - /yargs/16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} - dependencies: - cliui: 7.0.4 - escalade: 3.1.1 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 20.2.9 - dev: true - - /yn/3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - dev: true - optional: true - - /yocto-queue/0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - dev: true - - /zrender/5.3.1: - resolution: {integrity: sha512-7olqIjy0gWfznKr6vgfnGBk7y4UtdMvdwFmK92vVQsQeDPyzkHW1OlrLEKg6GHz1W5ePf0FeN1q2vkl/HFqhXw==} - dependencies: - tslib: 2.3.0 - dev: false - - /zwitch/1.0.5: - resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==} - dev: true diff --git a/web/public/onerror.png b/web/public/onerror.png new file mode 100644 index 0000000..5ba5d66 Binary files /dev/null and b/web/public/onerror.png differ diff --git a/web/src/api/curdDemo/index.ts b/web/src/api/curdDemo/index.ts new file mode 100644 index 0000000..937c85c --- /dev/null +++ b/web/src/api/curdDemo/index.ts @@ -0,0 +1,74 @@ +import { http, jumpExport } from '@/utils/http/axios'; + +// 获取生成演示列表 +export function List(params) { + return http.request({ + url: '/curdDemo/list', + method: 'get', + params, + }); +} + +// 删除/批量删除生成演示 +export function Delete(params) { + return http.request({ + url: '/curdDemo/delete', + method: 'POST', + params, + }); +} + + +// 新建/编辑生成演示 +export function Edit(params) { + return http.request({ + url: '/curdDemo/edit', + method: 'POST', + params, + }); +} + + +// 修改生成演示状态 +export function Status(params) { + return http.request({ + url: '/curdDemo/status', + method: 'POST', + params, + }); +} + + +// 操作生成演示开关 +export function Switch(params) { + return http.request({ + url: '/curdDemo/switch', + method: 'POST', + params, + }); +} + + +// 获取生成演示指定详情 +export function View(params) { + return http.request({ + url: '/curdDemo/view', + method: 'GET', + params, + }); +} + + +// 获取生成演示最大排序 +export function MaxSort() { + return http.request({ + url: '/curdDemo/maxSort', + method: 'GET', + }); +} + + +// 导出生成演示 +export function Export(params) { + jumpExport('/curdDemo/export', params); +} \ No newline at end of file diff --git a/web/src/api/develop/code.ts b/web/src/api/develop/code.ts new file mode 100644 index 0000000..e6d5e93 --- /dev/null +++ b/web/src/api/develop/code.ts @@ -0,0 +1,87 @@ +import { http } from '@/utils/http/axios'; + +export function List(params) { + return http.request({ + url: '/genCodes/list', + method: 'get', + params, + }); +} +export function Delete(params) { + return http.request({ + url: '/genCodes/delete', + method: 'POST', + params, + }); +} + +export function View(params) { + return http.request({ + url: '/genCodes/view', + method: 'GET', + params, + }); +} + +export function Edit(params) { + return http.request({ + url: '/genCodes/edit', + method: 'POST', + params, + }); +} + +export function Status(params) { + return http.request({ + url: '/genCodes/status', + method: 'POST', + params, + }); +} +export function Selects(params) { + return http.request({ + url: '/genCodes/selects', + method: 'get', + params, + }); +} + +export function TableSelect(params) { + return http.request({ + url: '/genCodes/tableSelect', + method: 'get', + params, + }); +} + +export function ColumnSelect(params) { + return http.request({ + url: '/genCodes/columnSelect', + method: 'get', + params, + }); +} + +export function ColumnList(params) { + return http.request({ + url: '/genCodes/columnList', + method: 'get', + params, + }); +} + +export function Preview(params) { + return http.request({ + url: '/genCodes/preview', + method: 'post', + params, + }); +} + +export function Build(params) { + return http.request({ + url: '/genCodes/build', + method: 'post', + params, + }); +} diff --git a/web/src/api/dict/dict.ts b/web/src/api/dict/dict.ts index 074193b..d63a0a5 100644 --- a/web/src/api/dict/dict.ts +++ b/web/src/api/dict/dict.ts @@ -6,7 +6,7 @@ import { http } from '@/utils/http/axios'; */ export function getDictTree(params?) { return http.request({ - url: '/dict_type/tree', + url: '/dictType/tree', method: 'GET', params, }); @@ -19,7 +19,7 @@ export function getDictTree(params?) { */ export function EditDict(params?) { return http.request({ - url: '/dict_type/edit', + url: '/dictType/edit', method: 'POST', params, }); @@ -32,7 +32,7 @@ export function EditDict(params?) { */ export function DeleteDict(params?) { return http.request({ - url: '/dict_type/delete', + url: '/dictType/delete', method: 'POST', params, }); @@ -44,7 +44,7 @@ export function DeleteDict(params?) { */ export function getDictSelect(params?) { return http.request({ - url: '/dict_type/select', + url: '/dictType/select', method: 'GET', params, }); @@ -57,7 +57,7 @@ export function getDictSelect(params?) { */ export function EditData(params?) { return http.request({ - url: '/dict_data/edit', + url: '/dictData/edit', method: 'POST', params, }); @@ -70,7 +70,7 @@ export function EditData(params?) { */ export function DeleteData(params?) { return http.request({ - url: '/dict_data/delete', + url: '/dictData/delete', method: 'POST', params, }); @@ -82,7 +82,28 @@ export function DeleteData(params?) { */ export function getDataList(params?) { return http.request({ - url: '/dict_data/list', + url: '/dictData/list', + method: 'GET', + params, + }); +} + +/** + * 获取字典数据列表 + */ +export function Dict(type) { + return http.request({ + url: '/dictData/option/' + type, + method: 'GET', + }); +} + +/** + * 获取字典数据列表 + */ +export function Dicts(params) { + return http.request({ + url: '/dictData/options', method: 'GET', params, }); diff --git a/web/src/api/org/user.ts b/web/src/api/org/user.ts index a1a3fb8..18ef916 100644 --- a/web/src/api/org/user.ts +++ b/web/src/api/org/user.ts @@ -31,3 +31,11 @@ export function Delete(params) { params, }); } + +export function ResetPwd(params) { + return http.request({ + url: '/member/reset_pwd', + method: 'POST', + params, + }); +} diff --git a/web/src/api/sys/config.ts b/web/src/api/sys/config.ts index ea78cf2..72508a5 100644 --- a/web/src/api/sys/config.ts +++ b/web/src/api/sys/config.ts @@ -15,6 +15,13 @@ export function updateConfig(params) { }); } +export function TypeSelect() { + return http.request({ + url: '/config/typeSelect', + method: 'get', + }); +} + export function sendTestEmail(params) { return http.request({ url: '/ems/sendTest', diff --git a/web/src/api/system/role.ts b/web/src/api/system/role.ts index fccc27d..7a3dd81 100644 --- a/web/src/api/system/role.ts +++ b/web/src/api/system/role.ts @@ -3,10 +3,11 @@ import { http } from '@/utils/http/axios'; /** * @description: 角色列表 */ -export function getRoleList() { +export function getRoleList(params) { return http.request({ url: '/role/list', method: 'GET', + params, }); } @@ -41,3 +42,18 @@ export function GetPermissions(params) { params, }); } + +export function DataScopeSelect() { + return http.request({ + url: '/role/dataScope/select', + method: 'GET', + }); +} + +export function DataScopeEdit(params) { + return http.request({ + url: '/role/dataScope/edit', + method: 'POST', + params, + }); +} diff --git a/web/src/api/test/index.ts b/web/src/api/test/index.ts new file mode 100644 index 0000000..dad4e99 --- /dev/null +++ b/web/src/api/test/index.ts @@ -0,0 +1,68 @@ +import { http, jumpExport } from '@/utils/http/axios'; + +// 列表 +export function List(params) { + return http.request({ + url: '/test/list', + method: 'get', + params, + }); +} + +// 删除/批量删除 +export function Delete(params) { + return http.request({ + url: '/test/delete', + method: 'POST', + params, + }); +} + +// 新建/编辑 +export function Edit(params) { + return http.request({ + url: '/test/edit', + method: 'POST', + params, + }); +} + +// 修改状态 +export function Status(params) { + return http.request({ + url: '/test/status', + method: 'POST', + params, + }); +} + +// 操作开关 +export function Switch(params) { + return http.request({ + url: '/test/switch', + method: 'POST', + params, + }); +} + +// 详情 +export function View(params) { + return http.request({ + url: '/test/view', + method: 'GET', + params, + }); +} + +// 获取最大排序 +export function MaxSort() { + return http.request({ + url: '/test/maxSort', + method: 'GET', + }); +} + +// 导出 +export function Export(params) { + jumpExport('/test/export', params); +} diff --git a/web/src/components/DatePicker/datePicker.vue b/web/src/components/DatePicker/datePicker.vue new file mode 100644 index 0000000..9dd2793 --- /dev/null +++ b/web/src/components/DatePicker/datePicker.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/web/src/components/DatePicker/props.ts b/web/src/components/DatePicker/props.ts new file mode 100644 index 0000000..bf49031 --- /dev/null +++ b/web/src/components/DatePicker/props.ts @@ -0,0 +1,18 @@ +import type { PropType } from 'vue'; +import { NDatePicker } from 'naive-ui'; + +export const basicProps = { + ...NDatePicker.props, + formValue: { + type: String as PropType | undefined | Date, + default: () => '', + }, + startValue: { + type: String as PropType | undefined | Date, + default: () => '', + }, + endValue: { + type: String as PropType | undefined | Date, + default: () => '', + }, +}; diff --git a/web/src/components/Editor/editor.vue b/web/src/components/Editor/editor.vue new file mode 100644 index 0000000..23045c5 --- /dev/null +++ b/web/src/components/Editor/editor.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/web/src/components/Form/src/types/form.ts b/web/src/components/Form/src/types/form.ts index e5c12fd..ef45ba3 100644 --- a/web/src/components/Form/src/types/form.ts +++ b/web/src/components/Form/src/types/form.ts @@ -10,7 +10,7 @@ export interface FormSchema { labelMessageStyle?: object | string; defaultValue?: any; component?: ComponentType; - componentProps?: object; + componentProps?: object | any; slot?: string; rules?: object | object[]; giProps?: GridItemProps; diff --git a/web/src/components/IconSelector/AntdSelector.vue b/web/src/components/IconSelector/AntdSelector.vue new file mode 100644 index 0000000..cc5a573 --- /dev/null +++ b/web/src/components/IconSelector/AntdSelector.vue @@ -0,0 +1,94 @@ + + + + diff --git a/web/src/components/IconSelector/Ionicons5Selector.vue b/web/src/components/IconSelector/Ionicons5Selector.vue new file mode 100644 index 0000000..f6d6b38 --- /dev/null +++ b/web/src/components/IconSelector/Ionicons5Selector.vue @@ -0,0 +1,94 @@ + + + + diff --git a/web/src/components/IconSelector/index.vue b/web/src/components/IconSelector/index.vue new file mode 100644 index 0000000..7b6a7d0 --- /dev/null +++ b/web/src/components/IconSelector/index.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/web/src/components/IconSelector/props.ts b/web/src/components/IconSelector/props.ts new file mode 100644 index 0000000..6ef95c7 --- /dev/null +++ b/web/src/components/IconSelector/props.ts @@ -0,0 +1,14 @@ +import type { PropType } from 'vue'; +import { NInput } from 'naive-ui'; + +export const basicProps = { + ...NInput.props, + option: { + type: String as PropType, + default: 'antd', // ionicons5 | antd + }, + value: { + type: String as PropType, + default: () => '', + }, +}; diff --git a/web/src/components/Table/src/Table.vue b/web/src/components/Table/src/Table.vue index 49c35c9..402ee0b 100644 --- a/web/src/components/Table/src/Table.vue +++ b/web/src/components/Table/src/Table.vue @@ -18,7 +18,7 @@ -
+
@@ -65,7 +65,7 @@ - +
diff --git a/web/src/components/Table/src/components/settings/ColumnSetting.vue b/web/src/components/Table/src/components/settings/ColumnSetting.vue index 4c3df19..52882a2 100644 --- a/web/src/components/Table/src/components/settings/ColumnSetting.vue +++ b/web/src/components/Table/src/components/settings/ColumnSetting.vue @@ -12,14 +12,14 @@
列展示 - + >列展示 勾选列 - + >勾选列 重置 - + >重置
@@ -92,24 +92,22 @@ + + diff --git a/web/src/components/Upload/uploadImage.vue b/web/src/components/Upload/uploadImage.vue new file mode 100644 index 0000000..785ef3c --- /dev/null +++ b/web/src/components/Upload/uploadImage.vue @@ -0,0 +1,58 @@ + + + + + diff --git a/web/src/enums/optionsiEnum.ts b/web/src/enums/optionsiEnum.ts index 79e7252..f1e84dd 100644 --- a/web/src/enums/optionsiEnum.ts +++ b/web/src/enums/optionsiEnum.ts @@ -65,3 +65,31 @@ export const statusActions = [ key: 2, }, ]; + +// 标签 +export const tagOptions = [ + { + label: '灰色', + value: 'default', + }, + { + label: '主色', + value: 'primary', + }, + { + label: '蓝色', + value: 'info', + }, + { + label: '绿色', + value: 'success', + }, + { + label: '黄色', + value: 'warning', + }, + { + label: '红色', + value: 'error', + }, +]; diff --git a/web/src/hooks/useTime.ts b/web/src/hooks/useTime.ts index 6063383..ca26e7e 100644 --- a/web/src/hooks/useTime.ts +++ b/web/src/hooks/useTime.ts @@ -29,17 +29,6 @@ export function useTime() { second.value = date.getSeconds(); }; - // 原生时间格式化 - // new Intl.DateTimeFormat('zh', { - // year: 'numeric', - // month: '2-digit', - // day: '2-digit', - // hour: '2-digit', - // minute: '2-digit', - // second: '2-digit', - // hour12: false - // }).format(new Date()) - updateTime(); onMounted(() => { diff --git a/web/src/hooks/web/useECharts.ts b/web/src/hooks/web/useECharts.ts index 2463b76..bd008a8 100644 --- a/web/src/hooks/web/useECharts.ts +++ b/web/src/hooks/web/useECharts.ts @@ -1,15 +1,12 @@ import type { EChartsOption } from 'echarts'; import type { Ref } from 'vue'; - import { useTimeoutFn } from '@/hooks/core/useTimeout'; import { tryOnUnmounted } from '@vueuse/core'; import { unref, nextTick, watch, computed, ref } from 'vue'; import { useDebounceFn } from '@vueuse/core'; import { useEventListener } from '@/hooks/event/useEventListener'; import { useBreakpoint } from '@/hooks/event/useBreakpoint'; - import echarts from '@/utils/lib/echarts'; - import { useDesignSetting } from '@/hooks/setting/useDesignSetting'; export function useECharts( diff --git a/web/src/layout/components/Header/index.vue b/web/src/layout/components/Header/index.vue index 100a0cd..547f093 100644 --- a/web/src/layout/components/Header/index.vue +++ b/web/src/layout/components/Header/index.vue @@ -555,13 +555,13 @@ z-index: 11; } - //::v-deep(.menu-server-link) { - // color: #515a6e; - // - // &:hover { - // color: #1890ff; - // } - //} + ::v-deep(.menu-server-link) { + color: #515a6e; + + &:hover { + color: #1890ff; + } + } .action-items-wrapper { position: relative; @@ -600,7 +600,7 @@ background-color: transparent !important; } - /deep/ sup { + :deep(sup) { top: 1.3em; } diff --git a/web/src/layout/components/Logo/index.vue b/web/src/layout/components/Logo/index.vue index 2637a6c..497885a 100644 --- a/web/src/layout/components/Logo/index.vue +++ b/web/src/layout/components/Logo/index.vue @@ -1,7 +1,7 @@ diff --git a/web/src/main.ts b/web/src/main.ts index bb8d3d3..b082c7c 100644 --- a/web/src/main.ts +++ b/web/src/main.ts @@ -44,7 +44,7 @@ async function bootstrap() { f.call(null, event); }); }; - app.config.globalProperties.$websocket = Websocket(onMessage); + Websocket(onMessage); app.mount('#app', true); } diff --git a/web/src/router/constant.ts b/web/src/router/constant.ts index 70d26be..ead009d 100644 --- a/web/src/router/constant.ts +++ b/web/src/router/constant.ts @@ -1,7 +1,4 @@ export const RedirectName = 'Redirect'; - export const ErrorPage = () => import('@/views/exception/404.vue'); - export const Layout = () => import('@/layout/index.vue'); - export const ParentLayout = () => import('@/layout/parentLayout.vue'); diff --git a/web/src/router/generator-routers.ts b/web/src/router/generator-routers.ts index 4afa5a2..91e54e8 100644 --- a/web/src/router/generator-routers.ts +++ b/web/src/router/generator-routers.ts @@ -51,7 +51,6 @@ export const routerGenerator = (routerMap, parent?): any[] => { /** * 动态生成菜单 - * @returns {Promise} */ export const generatorDynamicRouter = (): Promise => { return new Promise((resolve, reject) => { diff --git a/web/src/router/modules/about.ts b/web/src/router/modules/about.ts deleted file mode 100644 index d0b36ca..0000000 --- a/web/src/router/modules/about.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { RouteRecordRaw } from 'vue-router'; -import { Layout } from '@/router/constant'; -import { ProjectOutlined } from '@vicons/antd'; -import { renderIcon, renderNew } from '@/utils/index'; - -const routes: Array = [ - { - path: '/about', - name: 'about', - component: Layout, - meta: { - sort: 10, - isRoot: true, - activeMenu: 'about_index', - icon: renderIcon(ProjectOutlined), - }, - children: [ - { - path: 'index', - name: `about_index`, - meta: { - title: '关于', - extra: renderNew(), - activeMenu: 'about_index', - }, - component: () => import('@/views/about/index.vue'), - }, - ], - }, -]; - -export default routes; diff --git a/web/src/router/modules/comp.ts b/web/src/router/modules/comp.ts deleted file mode 100644 index 333b2a5..0000000 --- a/web/src/router/modules/comp.ts +++ /dev/null @@ -1,131 +0,0 @@ -import { RouteRecordRaw } from 'vue-router'; -import { Layout, ParentLayout } from '@/router/constant'; -import { WalletOutlined } from '@vicons/antd'; -import { renderIcon, renderNew } from '@/utils'; - -const routeName = 'comp'; - -/** - * @param name 路由名称, 必须设置,且不能重名 - * @param meta 路由元信息(路由附带扩展信息) - * @param redirect 重定向地址, 访问这个路由时,自定进行重定向 - * @param meta.disabled 禁用整个菜单 - * @param meta.title 菜单名称 - * @param meta.icon 菜单图标 - * @param meta.keepAlive 缓存该路由 - * @param meta.sort 排序越小越排前 - * - * */ -const routes: Array = [ - { - path: '/comp', - name: routeName, - component: Layout, - redirect: '/comp/table', - meta: { - title: '组件示例', - icon: renderIcon(WalletOutlined), - sort: 8, - }, - children: [ - { - path: 'table', - name: `${routeName}_table`, - redirect: '/comp/table/basic', - component: ParentLayout, - meta: { - title: '表格', - }, - children: [ - { - path: 'basic', - name: `${routeName}_table_basic`, - meta: { - title: '基础表格', - }, - component: () => import('@/views/comp/table/basic.vue'), - }, - { - path: 'editCell', - name: `${routeName}_table_editCell`, - meta: { - title: '单元格编辑', - }, - component: () => import('@/views/comp/table/editCell.vue'), - }, - { - path: 'editRow', - name: `${routeName}_table_editRow`, - meta: { - title: '整行编辑', - }, - component: () => import('@/views/comp/table/editRow.vue'), - }, - ], - }, - { - path: 'form', - name: `${routeName}_form`, - redirect: '/comp/form/basic', - component: ParentLayout, - meta: { - title: '表单', - }, - children: [ - { - path: 'basic', - name: `${routeName}_form_basic`, - meta: { - title: '基础使用', - }, - component: () => import('@/views/comp/form/basic.vue'), - }, - { - path: 'useForm', - name: `useForm`, - meta: { - title: 'useForm', - }, - component: () => import('@/views/comp/form/useForm.vue'), - }, - ], - }, - { - path: 'upload', - name: `${routeName}_upload`, - meta: { - title: '上传图片', - }, - component: () => import('@/views/comp/upload/index.vue'), - }, - { - path: 'modal', - name: `${routeName}_modal`, - meta: { - title: '弹窗扩展', - }, - component: () => import('@/views/comp/modal/index.vue'), - }, - { - path: 'richtext', - name: `richtext`, - meta: { - title: '富文本', - extra: renderNew(), - }, - component: () => import('@/views/comp/richtext/vue-quill.vue'), - }, - { - path: 'drag', - name: `Drag`, - meta: { - title: '拖拽', - extra: renderNew(), - }, - component: () => import('@/views/comp/drag/index.vue'), - }, - ], - }, -]; - -export default routes; diff --git a/web/src/router/modules/dashboard.ts b/web/src/router/modules/dashboard.ts deleted file mode 100644 index 8ef33cf..0000000 --- a/web/src/router/modules/dashboard.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { RouteRecordRaw } from 'vue-router'; -import { Layout } from '@/router/constant'; -import { DashboardOutlined } from '@vicons/antd'; -import { renderIcon } from '@/utils/index'; - -const routeName = 'dashboard'; - -/** - * @param name 路由名称, 必须设置,且不能重名 - * @param meta 路由元信息(路由附带扩展信息) - * @param redirect 重定向地址, 访问这个路由时,自定进行重定向 - * @param meta.disabled 禁用整个菜单 - * @param meta.title 菜单名称 - * @param meta.icon 菜单图标 - * @param meta.keepAlive 缓存该路由 - * @param meta.sort 排序越小越排前 - * */ -const routes: Array = [ - { - path: '/dashboard', - name: routeName, - redirect: '/dashboard/console', - component: Layout, - meta: { - title: 'Dashboard', - icon: renderIcon(DashboardOutlined), - permissions: ['dashboard_console', 'dashboard_console', 'dashboard_workplace'], - sort: 0, - }, - children: [ - { - path: 'console', - name: `${routeName}_console`, - meta: { - title: '主控台', - permissions: ['dashboard_console'], - affix: true, - }, - component: () => import('@/views/dashboard/console/console.vue'), - }, - // { - // path: 'monitor', - // name: `${ routeName }_monitor`, - // meta: { - // title: '监控页', - // permissions: ['dashboard_monitor'] - // }, - // component: () => import('@/views/dashboard/monitor/monitor.vue') - // }, - { - path: 'workplace', - name: `${routeName}_workplace`, - meta: { - title: '工作台', - keepAlive: true, - permissions: ['dashboard_workplace'], - }, - component: () => import('@/views/dashboard/workplace/workplace.vue'), - }, - ], - }, -]; - -export default routes; diff --git a/web/src/router/modules/docs.ts b/web/src/router/modules/docs.ts deleted file mode 100644 index 2545ec9..0000000 --- a/web/src/router/modules/docs.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { RouteRecordRaw } from 'vue-router'; -import { Layout } from '@/router/constant'; -import { DocumentTextOutline } from '@vicons/ionicons5'; -import { renderIcon } from '@/utils/index'; - -const routes: Array = [ - { - path: '/external', - name: 'https://naive-ui-admin-docs.vercel.app', - component: Layout, - meta: { - title: '项目文档', - icon: renderIcon(DocumentTextOutline), - sort: 9, - }, - }, -]; - -export default routes; diff --git a/web/src/router/modules/exception.ts b/web/src/router/modules/exception.ts deleted file mode 100644 index 19b9b0b..0000000 --- a/web/src/router/modules/exception.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { RouteRecordRaw } from 'vue-router'; -import { Layout } from '@/router/constant'; -import { ExclamationCircleOutlined } from '@vicons/antd'; -import { renderIcon } from '@/utils/index'; - -/** - * @param name 路由名称, 必须设置,且不能重名 - * @param meta 路由元信息(路由附带扩展信息) - * @param redirect 重定向地址, 访问这个路由时,自定进行重定向 - * @param meta.disabled 禁用整个菜单 - * @param meta.title 菜单名称 - * @param meta.icon 菜单图标 - * @param meta.keepAlive 缓存该路由 - * @param meta.sort 排序越小越排前 - * - * */ -const routes: Array = [ - { - path: '/exception', - name: 'Exception', - redirect: '/exception/403', - component: Layout, - meta: { - title: '异常页面', - icon: renderIcon(ExclamationCircleOutlined), - sort: 3, - }, - children: [ - { - path: '403', - name: 'exception-403', - meta: { - title: '403', - }, - component: () => import('@/views/exception/403.vue'), - }, - { - path: '404', - name: 'exception-404', - meta: { - title: '404', - }, - component: () => import('@/views/exception/404.vue'), - }, - { - path: '500', - name: 'exception-500', - meta: { - title: '500', - }, - component: () => import('@/views/exception/500.vue'), - }, - ], - }, -]; - -export default routes; diff --git a/web/src/router/modules/form.ts b/web/src/router/modules/form.ts deleted file mode 100644 index b01e483..0000000 --- a/web/src/router/modules/form.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { RouteRecordRaw } from 'vue-router'; -import { Layout } from '@/router/constant'; -import { ProfileOutlined } from '@vicons/antd'; -import { renderIcon } from '@/utils/index'; - -/** - * @param name 路由名称, 必须设置,且不能重名 - * @param meta 路由元信息(路由附带扩展信息) - * @param redirect 重定向地址, 访问这个路由时,自定进行重定向 - * @param meta.disabled 禁用整个菜单 - * @param meta.title 菜单名称 - * @param meta.icon 菜单图标 - * @param meta.keepAlive 缓存该路由 - * @param meta.sort 排序越小越排前 - * - * */ -const routes: Array = [ - { - path: '/form', - name: 'Form', - redirect: '/form/basic-form', - component: Layout, - meta: { - title: '表单页面', - icon: renderIcon(ProfileOutlined), - sort: 3, - }, - children: [ - { - path: 'basic-form', - name: 'form-basic-form', - meta: { - title: '基础表单', - }, - component: () => import('@/views/form/basicForm/index.vue'), - }, - { - path: 'step-form', - name: 'form-step-form', - meta: { - title: '分步表单', - }, - component: () => import('@/views/form/stepForm/stepForm.vue'), - }, - { - path: 'detail', - name: 'form-detail', - meta: { - title: '表单详情', - }, - component: () => import('@/views/form/detail/index.vue'), - }, - ], - }, -]; - -export default routes; diff --git a/web/src/router/modules/frame.ts b/web/src/router/modules/frame.ts deleted file mode 100644 index 05e4cab..0000000 --- a/web/src/router/modules/frame.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { RouteRecordRaw } from 'vue-router'; -import { Layout } from '@/router/constant'; -import { DesktopOutline } from '@vicons/ionicons5'; -import { renderIcon } from '@/utils/index'; - -const IFrame = () => import('@/views/iframe/index.vue'); - -const routes: Array = [ - { - path: '/frame', - name: 'Frame', - redirect: '/frame/docs', - component: Layout, - meta: { - title: '外部页面', - sort: 8, - icon: renderIcon(DesktopOutline), - }, - children: [ - ], - }, -]; - -export default routes; diff --git a/web/src/router/modules/list.ts b/web/src/router/modules/list.ts deleted file mode 100644 index 3809d4b..0000000 --- a/web/src/router/modules/list.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { RouteRecordRaw } from 'vue-router'; -import { Layout } from '@/router/constant'; -import { TableOutlined } from '@vicons/antd'; -import { renderIcon } from '@/utils/index'; - -/** - * @param name 路由名称, 必须设置,且不能重名 - * @param meta 路由元信息(路由附带扩展信息) - * @param redirect 重定向地址, 访问这个路由时,自定进行重定向 - * @param meta.disabled 禁用整个菜单 - * @param meta.title 菜单名称 - * @param meta.icon 菜单图标 - * @param meta.keepAlive 缓存该路由 - * @param meta.sort 排序越小越排前 - * - * */ -const routes: Array = [ - { - path: '/list', - name: 'List', - redirect: '/list/basic-list', - component: Layout, - meta: { - title: '列表页面', - icon: renderIcon(TableOutlined), - sort: 2, - }, - children: [ - { - path: 'basic-list', - name: 'basic-list', - meta: { - title: '基础列表', - }, - component: () => import('@/views/list/basicList/index.vue'), - }, - { - path: 'basic-info/:id?', - name: 'basic-info', - meta: { - title: '基础详情', - hidden: true, - activeMenu: 'basic-list', - }, - component: () => import('@/views/list/basicList/info.vue'), - }, - ], - }, -]; - -export default routes; diff --git a/web/src/router/modules/result.ts b/web/src/router/modules/result.ts deleted file mode 100644 index 9ff45a4..0000000 --- a/web/src/router/modules/result.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { RouteRecordRaw } from 'vue-router'; -import { Layout } from '@/router/constant'; -import { CheckCircleOutlined } from '@vicons/antd'; -import { renderIcon } from '@/utils/index'; - -/** - * @param name 路由名称, 必须设置,且不能重名 - * @param meta 路由元信息(路由附带扩展信息) - * @param redirect 重定向地址, 访问这个路由时,自定进行重定向 - * @param meta.disabled 禁用整个菜单 - * @param meta.title 菜单名称 - * @param meta.icon 菜单图标 - * @param meta.keepAlive 缓存该路由 - * @param meta.sort 排序越小越排前 - * - * */ -const routes: Array = [ - { - path: '/result', - name: 'Result', - redirect: '/result/success', - component: Layout, - meta: { - title: '结果页面', - icon: renderIcon(CheckCircleOutlined), - sort: 4, - }, - children: [ - { - path: 'success', - name: 'result-success', - meta: { - title: '成功页', - }, - component: () => import('@/views/result/success.vue'), - }, - { - path: 'fail', - name: 'result-fail', - meta: { - title: '失败页', - }, - component: () => import('@/views/result/fail.vue'), - }, - { - path: 'info', - name: 'result-info', - meta: { - title: '信息页', - }, - component: () => import('@/views/result/info.vue'), - }, - ], - }, -]; - -export default routes; diff --git a/web/src/router/modules/setting.ts b/web/src/router/modules/setting.ts deleted file mode 100644 index ffc380c..0000000 --- a/web/src/router/modules/setting.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { RouteRecordRaw } from 'vue-router'; -import { Layout } from '@/router/constant'; -import { SettingOutlined } from '@vicons/antd'; -import { renderIcon } from '@/utils/index'; - -/** - * @param name 路由名称, 必须设置,且不能重名 - * @param meta 路由元信息(路由附带扩展信息) - * @param redirect 重定向地址, 访问这个路由时,自定进行重定向 - * @param meta.disabled 禁用整个菜单 - * @param meta.title 菜单名称 - * @param meta.icon 菜单图标 - * @param meta.keepAlive 缓存该路由 - * @param meta.sort 排序越小越排前 - * - * */ -const routes: Array = [ - { - path: '/setting', - name: 'Setting', - redirect: '/setting/account', - component: Layout, - meta: { - title: '设置页面', - icon: renderIcon(SettingOutlined), - sort: 5, - }, - children: [ - { - path: 'account', - name: 'setting-account', - meta: { - title: '个人设置', - }, - component: () => import('@/views/setting/account/account.vue'), - }, - { - path: 'system', - name: 'setting-system', - meta: { - title: '系统设置', - }, - component: () => import('@/views/setting/system/system.vue'), - }, - ], - }, -]; - -export default routes; diff --git a/web/src/router/modules/system.ts b/web/src/router/modules/system.ts deleted file mode 100644 index 8dfbafa..0000000 --- a/web/src/router/modules/system.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { RouteRecordRaw } from 'vue-router'; -import { Layout } from '@/router/constant'; -import { OptionsSharp } from '@vicons/ionicons5'; -import { renderIcon } from '@/utils/index'; - -/** - * @param name 路由名称, 必须设置,且不能重名 - * @param meta 路由元信息(路由附带扩展信息) - * @param redirect 重定向地址, 访问这个路由时,自定进行重定向 - * @param meta.disabled 禁用整个菜单 - * @param meta.title 菜单名称 - * @param meta.icon 菜单图标 - * @param meta.keepAlive 缓存该路由 - * @param meta.sort 排序越小越排前 - * - * */ -const routes: Array = [ - { - path: '/system', - name: 'System', - redirect: '/system/menu', - component: Layout, - meta: { - title: '系统设置', - icon: renderIcon(OptionsSharp), - sort: 1, - }, - children: [ - { - path: 'menu', - name: 'system_menu', - meta: { - title: '菜单权限管理', - }, - component: () => import('@/views/permission/menu/menu.vue'), - }, - { - path: 'role', - name: 'system_role', - meta: { - title: '角色权限管理', - }, - component: () => import('@/views/permission/role/role.vue'), - }, - ], - }, -]; - -export default routes; diff --git a/web/src/router/router-guards.ts b/web/src/router/router-guards.ts index 9150121..cafb63a 100644 --- a/web/src/router/router-guards.ts +++ b/web/src/router/router-guards.ts @@ -8,7 +8,6 @@ import { PageEnum } from '@/enums/pageEnum'; import { ErrorPageRoute } from '@/router/base'; const LOGIN_PATH = PageEnum.BASE_LOGIN; - const whitePathList = [LOGIN_PATH]; // no redirect whitelist export function createRouterGuards(router: Router) { diff --git a/web/src/router/router-icons.ts b/web/src/router/router-icons.ts index 6496940..25b0d0e 100644 --- a/web/src/router/router-icons.ts +++ b/web/src/router/router-icons.ts @@ -1,53 +1,12 @@ import { renderIcon } from '@/utils/index'; -import { - AppstoreOutlined, - CheckCircleOutlined, - DashboardOutlined, - ExclamationCircleOutlined, - ProfileOutlined, - ProjectOutlined, - SettingOutlined, - TableOutlined, - WalletOutlined, - DeleteOutlined, - EditOutlined, -} from '@vicons/antd'; -import { - DesktopOutline, - DocumentTextOutline, - OptionsSharp, - SettingsOutline, - LogoBuffer, - KeyOutline, - VolumeLowOutline, - CodeSlashOutline, - EaselOutline, - TimerOutline, - OptionsOutline, -} from '@vicons/ionicons5'; +import * as antdIcons from '@vicons/antd'; +// import * as x5Icons from '@vicons/ionicons5'; -//前端路由图标映射表 -export const constantRouterIcon = { - EditOutlined: renderIcon(EditOutlined), - DeleteOutlined: renderIcon(DeleteOutlined), - OptionsOutline: renderIcon(OptionsOutline), - TimerOutline: renderIcon(TimerOutline), - EaselOutline: renderIcon(EaselOutline), - CodeSlashOutline: renderIcon(CodeSlashOutline), - VolumeLowOutline: renderIcon(VolumeLowOutline), - DashboardOutlined: renderIcon(DashboardOutlined), - SettingsOutline: renderIcon(SettingsOutline), - OptionsSharp: renderIcon(OptionsSharp), - TableOutlined: renderIcon(TableOutlined), - ExclamationCircleOutlined: renderIcon(ExclamationCircleOutlined), - ProfileOutlined: renderIcon(ProfileOutlined), - CheckCircleOutlined: renderIcon(CheckCircleOutlined), - SettingOutlined: renderIcon(SettingOutlined), - WalletOutlined: renderIcon(WalletOutlined), - DesktopOutline: renderIcon(DesktopOutline), - DocumentTextOutline: renderIcon(DocumentTextOutline), - ProjectOutlined: renderIcon(ProjectOutlined), - AppstoreOutlined: renderIcon(AppstoreOutlined), - LogoBuffer: renderIcon(LogoBuffer), - KeyOutline: renderIcon(KeyOutline), -}; +export const constantRouterIcon = {}; +for (const element of Object.keys(antdIcons)) { + constantRouterIcon[element] = renderIcon(antdIcons[element]); +} + +// for (const element of Object.keys(x5Icons)) { +// constantRouterIcon[element] = renderIcon(x5Icons[element]); +// } diff --git a/web/src/router/types.ts b/web/src/router/types.ts index 0a58e07..2fc8aad 100644 --- a/web/src/router/types.ts +++ b/web/src/router/types.ts @@ -6,6 +6,7 @@ export type Component = | (() => Promise) | (() => Promise); +// @ts-ignore export interface AppRouteRecordRaw extends Omit { name: string; meta: RouteMeta; diff --git a/web/src/settings/componentSetting.ts b/web/src/settings/componentSetting.ts index 2cbde7c..2287b05 100644 --- a/web/src/settings/componentSetting.ts +++ b/web/src/settings/componentSetting.ts @@ -13,7 +13,7 @@ export default { //默认分页数量 defaultPageSize: 10, //可切换每页数量集合 - pageSizes: [10, 20, 30, 40, 50], + pageSizes: [10, 20, 30, 40, 50, 100, 200], }, upload: { //考虑接口规范不同 @@ -26,6 +26,29 @@ export default { //最大上传图片大小 maxSize: 10, //图片上传类型 - fileType: ['image/png', 'image/jpg', 'image/jpeg', 'image/gif', 'image/svg+xml'], + imageType: ['image/png', 'image/jpg', 'image/jpeg', 'image/gif', 'image/svg+xml'], + //文件上传类型 + fileType: [ + // 图片 + 'image/png', + 'image/jpg', + 'image/jpeg', + 'image/gif', + 'image/svg+xml', + // 文档 + 'application/msword', + 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', + 'application/vnd.ms-excel', + 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', + 'application/vnd.ms-powerpoint', + 'application/vnd.openxmlformats-officedocument.presentationml.presentation', + // 音频 + 'audio/mpeg', + 'audio/midi', + // 视频 + 'audio/mp4', + 'video/webm', + 'video/x-flv', + ], }, }; diff --git a/web/src/store/modules/asyncRoute.ts b/web/src/store/modules/asyncRoute.ts index b5ea4c0..f01f891 100644 --- a/web/src/store/modules/asyncRoute.ts +++ b/web/src/store/modules/asyncRoute.ts @@ -2,8 +2,8 @@ import { toRaw, unref } from 'vue'; import { defineStore } from 'pinia'; import { RouteRecordRaw } from 'vue-router'; import { store } from '@/store'; -import { asyncRoutes, constantRouter } from '@/router/index'; -import { generatorDynamicRouter, removeHiddenMenus } from '@/router/generator-routers'; +import { asyncRoutes, constantRouter } from '@/router'; +import { generatorDynamicRouter } from '@/router/generator-routers'; import { useProjectSetting } from '@/hooks/setting/useProjectSetting'; interface TreeHelperConfig { diff --git a/web/src/store/modules/index.ts b/web/src/store/modules/index.ts index 2fc6689..65ecad3 100644 --- a/web/src/store/modules/index.ts +++ b/web/src/store/modules/index.ts @@ -6,9 +6,13 @@ Object.keys(allModules).forEach((path) => { }); // export default modules +// @ts-ignore import asyncRoute from './async-route'; +// @ts-ignore import user from './user'; +// @ts-ignore import tabsView from './tabs-view'; +// @ts-ignore import lockscreen from './lockscreen'; export default { diff --git a/web/src/store/modules/notification.ts b/web/src/store/modules/notification.ts index d4ca085..44c316c 100644 --- a/web/src/store/modules/notification.ts +++ b/web/src/store/modules/notification.ts @@ -21,7 +21,6 @@ export const notificationStore = defineStore({ }, addMessages(message) { message = JSON.parse(message); - console.log('message:' + JSON.stringify(message)); if ( message.event !== undefined && message.event === 'notice' && diff --git a/web/src/store/modules/tabsView.ts b/web/src/store/modules/tabsView.ts index 5d6e376..9fc0ff2 100644 --- a/web/src/store/modules/tabsView.ts +++ b/web/src/store/modules/tabsView.ts @@ -55,7 +55,9 @@ export const useTabsViewStore = defineStore({ }, closeOtherTabs(route) { // 关闭其他 - this.tabsList = this.tabsList.filter((item) => item.fullPath == route.fullPath || (item?.meta?.affix ?? false)); + this.tabsList = this.tabsList.filter( + (item) => item.fullPath == route.fullPath || (item?.meta?.affix ?? false) + ); }, closeCurrentTab(route) { // 关闭当前页 diff --git a/web/src/store/modules/user.ts b/web/src/store/modules/user.ts index 4300889..eddf82c 100644 --- a/web/src/store/modules/user.ts +++ b/web/src/store/modules/user.ts @@ -86,6 +86,7 @@ export const useUserStore = defineStore({ // 获取用户信息 GetInfo() { + // eslint-disable-next-line @typescript-eslint/no-this-alias const that = this; return new Promise((resolve, reject) => { getUserInfo() @@ -108,6 +109,7 @@ export const useUserStore = defineStore({ }, // 获取用户信息 GetConfig() { + // eslint-disable-next-line @typescript-eslint/no-this-alias const that = this; return new Promise((resolve, reject) => { getConfig() diff --git a/web/src/styles/hotgo.less b/web/src/styles/hotgo.less new file mode 100644 index 0000000..4875404 --- /dev/null +++ b/web/src/styles/hotgo.less @@ -0,0 +1,3 @@ +.min-left-space { + margin-left: 5px; +} diff --git a/web/src/styles/index.less b/web/src/styles/index.less index 17fde33..c55041e 100644 --- a/web/src/styles/index.less +++ b/web/src/styles/index.less @@ -1,3 +1,4 @@ @import 'transition/index.less'; @import './var.less'; @import './common.less'; +@import './hotgo.less'; diff --git a/web/src/utils/array.ts b/web/src/utils/array.ts index da90ac0..68d6580 100644 --- a/web/src/utils/array.ts +++ b/web/src/utils/array.ts @@ -121,13 +121,6 @@ export function encodeParams(obj) { return arr.join('&'); } -/** - * 去重追加 - * @param array - * @param son - */ -export function onlyPush(array: any, son: any) {} - /** * 对象拷贝 * @param obj2 diff --git a/web/src/utils/charset.ts b/web/src/utils/charset.ts new file mode 100644 index 0000000..869ed48 --- /dev/null +++ b/web/src/utils/charset.ts @@ -0,0 +1,74 @@ +/** + * 随机生成字符串 + */ +export function getRandomString(len = 12, isSmall = false) { + const _charStr = 'abacdefghjklmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ0123456789'; + const _smallCharStr = 'abacdefghjklmnopqrstuvwxyz0123456789'; + const charStr = isSmall ? _smallCharStr : _charStr; + const min = 0; + const max = charStr.length - 1; + let _str = ''; + //循环生成字符串 + for (let i = 0, index; i < len; i++) { + index = (function (randomIndexFunc, i) { + return randomIndexFunc(min, max, i, randomIndexFunc); + })(function (min, max, i, _self) { + const numStart = _charStr.length - 10; + let indexTemp = Math.floor(Math.random() * (max - min + 1) + min); + if (i == 0 && indexTemp >= numStart) { + indexTemp = _self(min, max, i, _self); + } + return indexTemp; + }, i); + _str += _charStr[index]; + } + return _str; +} + +/** + * 隐藏中间几位字符 + */ +export function structure(array) { + // 将字符串转化成数组 + const arrBox = [...array]; + const count = arrBox.length; + if (count == 1) { + return '*'; + } + let min = 1; + let max = count; + // 两位姓名 + if (count == 2) { + min = 0; + max = count; + } + // 三位姓名 + if (count == 3) { + min = 0; + max = count - 1; + } + // if (count >= 2 && count <= 8) { + // min = 1; + // } + + // 手机号 + if (count == 11) { + min = 3; + max = 7; + } + // 身份证号码 + if (count >= 15) { + min = 9; + max = count - 4; + } + // 2.将数组中的4-7位变成* + let str = ''; + arrBox.map((res, index) => { + if (index > min && index < max) { + str += '*'; + } else { + str += res; + } + }); + return str; +} diff --git a/web/src/utils/dateUtil.ts b/web/src/utils/dateUtil.ts index 9150310..a5e8a29 100644 --- a/web/src/utils/dateUtil.ts +++ b/web/src/utils/dateUtil.ts @@ -1,21 +1,38 @@ -import { format } from 'date-fns'; +import { + endOfMonth, + endOfToday, + endOfWeek, + endOfYesterday, + format, + startOfMonth, + startOfToday, + startOfTomorrow, + startOfWeek, + startOfYesterday, + subMonths, +} from 'date-fns'; -const DATE_TIME_FORMAT = 'YYYY-MM-DD HH:mm'; -const DATE_FORMAT = 'YYYY-MM-DD '; +const DATE_TIME_FORMAT = 'yyyy-MM-dd HH:mm:ss'; +const DATE_FORMAT = 'yyyy-MM-dd'; -export function formatToDateTime(date: Date, formatStr = DATE_TIME_FORMAT): string { - const date2 = new Date(date); - return format(date2, formatStr); +export function formatToDateTime(date: string, formatStr = DATE_TIME_FORMAT): string { + if (date === null || date === undefined || date === '') { + return ``; + } + return format(new Date(Date.parse(date)), formatStr); } -export function formatToDate(date: Date, formatStr = DATE_FORMAT): string { - return format(date, formatStr); +export function formatToDate(date: string, formatStr = DATE_FORMAT): string { + if (date === null || date === undefined || date === '') { + return ``; + } + return format(new Date(Date.parse(date)), formatStr); } export function timestampToTime(timestamp) { const date = new Date(timestamp * 1000); const Y = date.getFullYear() + '-'; - const M = (date.getMonth() + 1 <= 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'; + const M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'; const D = (date.getDate() + 1 <= 10 ? '0' + date.getDate() : date.getDate()) + ' '; const h = (date.getHours() + 1 <= 10 ? '0' + date.getHours() : date.getHours()) + ':'; const m = (date.getMinutes() + 1 <= 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':'; @@ -26,7 +43,7 @@ export function timestampToTime(timestamp) { export function timestampToTimeNF(timestamp) { const date = new Date(timestamp); const Y = date.getFullYear(); - const M = date.getMonth() + 1 <= 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1; + const M = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1; const D = date.getDate() + 1 <= 10 ? '0' + date.getDate() : date.getDate(); const h = date.getHours() + 1 <= 10 ? '0' + date.getHours() : date.getHours(); const m = date.getMinutes() + 1 <= 10 ? '0' + date.getMinutes() : date.getMinutes(); @@ -34,6 +51,13 @@ export function timestampToTimeNF(timestamp) { return Y.toString() + M.toString() + D.toString() + h.toString() + m.toString() + s.toString(); } +export function dateToTimestamp(date: string) { + if (date === null || date === undefined || date === '') { + return 0; + } + return new Date(date).getTime(); +} + export function timestampToDate(timestamp) { const date = new Date(timestamp); const Y = date.getFullYear() + '-'; @@ -44,23 +68,16 @@ export function timestampToDate(timestamp) { export function getTime() { const myDate = new Date(); - const hour = myDate.getHours().toString().padStart(2, '0'); - const minutes = myDate.getMinutes().toString().padStart(2, '0'); - const seconed = myDate.getSeconds().toString().padStart(2, '0'); - return hour + ':' + minutes + ':' + seconed; } export function getDate() { const myDate = new Date(); - const month = (myDate.getMonth() + 1).toString().padStart(2, '0'); - const day = myDate.getDate().toString().padStart(2, '0'); - return myDate.getFullYear() + '-' + month + '-' + day; } @@ -129,15 +146,11 @@ export function formatAfter(end): string { if (end.getTime() - start.getTime() > 0) { sjc = end.getTime() - start.getTime(); //时间差的毫秒数 } - const days = Math.floor(sjc / (24 * 3600 * 1000)); //计算出相差天数 - const leave1 = sjc % (24 * 3600 * 1000); //计算天数后剩余的毫秒数 const hours = Math.floor(leave1 / (3600 * 1000)); //计算出小时数 - const leave2 = leave1 % (3600 * 1000); //计算小时数后剩余的毫秒数 const minutes = Math.floor(leave2 / (60 * 1000)); //计算相差分钟数 - const leave3 = leave2 % (60 * 1000); //计算分钟数后剩余的毫秒数 const seconds = Math.round(leave3 / 1000); //计算相差秒数 if (days > 0) { @@ -152,6 +165,38 @@ export function formatAfter(end): string { if (seconds > 0) { return seconds + '秒后'; } - return '刚刚'; } + +export function defShortcuts() { + return { + 今天: startOfToday().getTime(), + 昨天: startOfYesterday().getTime(), + 明天: startOfTomorrow().getTime(), + }; +} + +export function defRangeShortcuts() { + const nowDate = new Date(); + return { + 今天: [startOfToday().getTime(), endOfToday().getTime()] as const, + 昨天: () => { + return [startOfYesterday().getTime(), endOfYesterday().getTime()] as const; + }, + 本周: () => { + return [ + startOfWeek(nowDate, { weekStartsOn: 1 }).getTime(), + endOfWeek(nowDate, { weekStartsOn: 1 }).getTime(), + ] as const; + }, + 本月: () => { + return [startOfMonth(nowDate).getTime(), endOfMonth(nowDate).getTime()] as const; + }, + 上个月: () => { + return [ + startOfMonth(subMonths(nowDate, 1)).getTime(), + endOfMonth(subMonths(nowDate, 1)).getTime(), + ] as const; + }, + }; +} diff --git a/web/src/utils/downloadFile.ts b/web/src/utils/downloadFile.ts index 2b6eb59..8e4f74f 100644 --- a/web/src/utils/downloadFile.ts +++ b/web/src/utils/downloadFile.ts @@ -62,6 +62,7 @@ export function downloadByUrl({ // saveAs(imageDataUrl, '附件'); canvas.toBlob((blob) => { const link = document.createElement('a'); + // @ts-ignore link.href = window.URL.createObjectURL(blob); link.download = getFileName(url); link.click(); diff --git a/web/src/utils/hotgo.ts b/web/src/utils/hotgo.ts new file mode 100644 index 0000000..aa407b6 --- /dev/null +++ b/web/src/utils/hotgo.ts @@ -0,0 +1,53 @@ +import { Ref, UnwrapRef } from '@vue/reactivity'; + +export interface Option { + label: string; + value: string; + key: string; + type: string; + listClass: 'default' | 'error' | 'primary' | 'info' | 'success' | 'warning'; +} + +export interface Options { + [name: string]: Option[]; +} + +// 获取选项名称 +export function getOptionLabel(options: Option[], value) { + if (options === undefined || options?.length === 0) { + return `unknown`; + } + for (const item of options) { + if (item.value == value) { + return item.label; + } + } + + return `unknown`; +} + +// 获取选项标签 +export function getOptionTag(options: Option[], value) { + if (options === undefined || options?.length === 0) { + return 'default'; + } + for (const item of options) { + if (item.value == value) { + return item.listClass; + } + } + + return 'default'; +} + +// 自适应模板宽度 +export function adaModalWidth(dialogWidth: Ref>) { + const val = document.body.clientWidth; + const def = 840; // 默认宽度 + if (val <= def) { + dialogWidth.value = '100%'; + } else { + dialogWidth.value = def + 'px'; + } + return dialogWidth.value; +} diff --git a/web/src/utils/http/axios/Axios.ts b/web/src/utils/http/axios/Axios.ts index a1bd1ea..531247a 100644 --- a/web/src/utils/http/axios/Axios.ts +++ b/web/src/utils/http/axios/Axios.ts @@ -1,10 +1,8 @@ import type { AxiosRequestConfig, AxiosInstance, AxiosResponse } from 'axios'; - import axios from 'axios'; import { AxiosCanceler } from './axiosCancel'; import { isFunction } from '@/utils/is'; import { cloneDeep } from 'lodash-es'; - import type { RequestOptions, CreateAxiosOptions, Result, UploadFileParams } from './types'; import { ContentTypeEnum } from '@/enums/httpEnum'; diff --git a/web/src/utils/http/axios/index.ts b/web/src/utils/http/axios/index.ts index c76b91b..d0a7592 100644 --- a/web/src/utils/http/axios/index.ts +++ b/web/src/utils/http/axios/index.ts @@ -18,6 +18,7 @@ import { CreateAxiosOptions, RequestOptions, Result } from './types'; import { useUserStoreWidthOut } from '@/store/modules/user'; import router from '@/router'; import { storage } from '@/utils/Storage'; +import { encodeParams } from '@/utils/urlUtils'; const globSetting = useGlobSetting(); const urlPrefix = globSetting.urlPrefix || ''; @@ -60,7 +61,7 @@ const transform: AxiosTransform = { } // 这里 code,result,message为 后台统一的字段,需要修改为项目自己的接口返回格式 - let { code, data, message } = response; + const { code, data, message } = response; // 请求成功 const hasSuccess = response && Reflect.has(response, 'code') && code === ResultEnum.SUCCESS; @@ -118,8 +119,11 @@ const transform: AxiosTransform = { onNegativeClick: () => {}, }); break; + default: + console.log('unknown status code:' + code); + $message.error(errorMsg); } - $message.error(errorMsg); + throw new Error(errorMsg); }, @@ -277,6 +281,15 @@ function createAxios(opt?: Partial) { export const http = createAxios(); +// 导出 +export const jumpExport = function (url, params) { + window.location.href = + urlPrefix + + url + + '?' + + encodeParams({ ...params, ...{ authorization: useUserStoreWidthOut().token } }); +}; + // 项目,多个不同 api 地址,直接在这里导出多个 // src/api ts 里面接口,就可以单独使用这个请求, // import { httpTwo } from '@/utils/http/axios' diff --git a/web/src/utils/index.ts b/web/src/utils/index.ts index 72c6c03..ee7856a 100644 --- a/web/src/utils/index.ts +++ b/web/src/utils/index.ts @@ -158,6 +158,7 @@ export function filterRouter(routerMap: Array) { export const withInstall = (component: T, alias?: string) => { const comp = component as any; comp.install = (app: App) => { + // @ts-ignore app.component(comp.name || comp.displayName, component); if (alias) { app.config.globalProperties[alias] = component; @@ -203,6 +204,7 @@ export function getTreeAll(data: any[]): any[] { export function getDynamicProps(props: T): Partial { const ret: Recordable = {}; + // @ts-ignore Object.keys(props).map((key) => { ret[key] = unref((props as Recordable)[key]); }); diff --git a/web/src/utils/is/index.ts b/web/src/utils/is/index.ts index 088c6e8..5df5358 100644 --- a/web/src/utils/is/index.ts +++ b/web/src/utils/is/index.ts @@ -80,6 +80,23 @@ export function isArray(val: any): val is Array { return val && Array.isArray(val); } +/** + * @description: 是否为转为string的json + */ +export function isJsonString(value: any) { + try { + const toObj = JSON.parse(value); + if (toObj && typeof toObj === 'object') { + return true; + } + } catch {} + return false; +} + +export function isNullObject(value: object) { + return isNullOrUnDef(value) || JSON.stringify(value) === '{}' || JSON.stringify(value) === '[]'; +} + /** * @description: 是否客户端 */ @@ -116,3 +133,8 @@ export function isNullAndUnDef(val: unknown): val is null | undefined { export function isNullOrUnDef(val: unknown): val is null | undefined { return isUnDef(val) || isNull(val); } + +// 判断字串符是否以字母开头 +export function isLetterBegin(str) { + return /^[A-z]/.test(str); +} diff --git a/web/src/utils/urlUtils.ts b/web/src/utils/urlUtils.ts index f03166c..d0d6216 100644 --- a/web/src/utils/urlUtils.ts +++ b/web/src/utils/urlUtils.ts @@ -22,3 +22,22 @@ export function setObjToUrlParams(baseUrl: string, obj: object): string { } return url; } + +export function encodeParams(obj) { + const arr = []; + for (const p in obj) { + // @ts-ignore + arr.push(encodeURIComponent(p) + '=' + encodeURIComponent(obj[p])); + } + return arr.join('&'); +} + +/** + * 获取文件后缀 + */ +export function getFileExt(fileName: string) { + if (fileName === undefined || fileName === '') { + return ``; + } + return fileName.substring(fileName.lastIndexOf('.') + 1); +} diff --git a/web/src/utils/validateUtil.ts b/web/src/utils/validateUtil.ts new file mode 100644 index 0000000..65da16f --- /dev/null +++ b/web/src/utils/validateUtil.ts @@ -0,0 +1,212 @@ +import { FormItemRule } from 'naive-ui'; +/** + * @description 表单验证封装 + */ +export const validate = { + ip(rule: FormItemRule, value: any, callback: Function) { + // 支持通配符的ipv4正则 + const ipv4Regex = + /^(?:[1-9]?[0-9]|1[0-9]{2}|2(?:[0-4][0-9]|5[0-5]))(?!.*?\.\*\.[*\d])(?:\.(?:(?:[1-9]?[0-9]|1[0-9]{2}|2(?:[0-4][0-9]|5[0-5]))|\*)){1,3}$/; + // Ipv6: + const ipv6Regex = + /^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/; + if (!value && !rule.required) { + callback(); + } + if (!value) { + callback(new Error('请输入IP')); + } else if (!ipv4Regex.test(value) && !ipv6Regex.test(value)) { + callback(new Error('请输入正确的IP')); + } else { + callback(); + } + }, + //0-100百分比验证 + percentage(rule: FormItemRule, value: any, callback: Function) { + const reg = /^([1-9]{1,2}$)|(^[0-9]{1,2}\.[0-9]{1,2}$)|100$/; + if (!value && !rule.required) { + callback(new Error('请输入比例')); + } else if (!reg.test(value)) { + callback(new Error('请输入0-100的数字')); + } else { + callback(); + } + }, + // 手机号 (eg:138********,159********) + phone(rule: FormItemRule, value: any, callback: Function) { + const regPhone = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/; + if (!value && !rule.required) { + callback(); + } else if (!value) { + callback(new Error('请输入手机号码')); + } else if (!regPhone.test(value)) { + callback(new Error('手机号格式错误')); + } else { + callback(); + } + }, + // 用户名 (eg:a123456) + userName(rule: FormItemRule, value: any, callback: Function) { + const regUserName = /^[0-9a-zA-Z]{6,16}$/; + if (!value && !rule.required) { + callback(new Error('请输入登录账号')); + } else if (!regUserName.test(value)) { + callback(new Error('请输入6-16位由字母和数字组成的登录账号')); + } else { + callback(); + } + }, + // 账号 + account(rule: FormItemRule, value: any, callback: Function) { + const regex = /^[\w_\d]{6,16}$/; + if (!value && !rule.required) { + callback(); + } else if (!value) { + callback(new Error('请输入账号')); + } else if (!regex.test(value)) { + callback(new Error('请输入6-16位由字母、数字或下划线组成的账号')); + } else { + callback(); + } + }, + // 密码 + password(rule: FormItemRule, value: any, callback: Function) { + const regPassword = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,18}$/; + if (!value && !rule.required) { + callback(new Error('请输入密码')); + } else if (!regPassword.test(value)) { + callback(new Error('密码格式错误!必须包含6-18为字母和数字')); + } else { + callback(); + } + }, + // 邮箱 + email(rule: FormItemRule, value: any, callback: Function) { + const regEmails = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/; + // console.log('isRequired is: ', JSON.stringify(isRequired)) + if (!value && !rule.required) { + callback(); + } else if (!value) { + callback(new Error('请输入邮箱')); + } else if (!regEmails.test(value)) { + callback(new Error('邮箱格式错误')); + } else { + callback(); + } + }, + // 金额验证 + amount(rule: FormItemRule, value: any, callback: Function) { + const regAmount = /(^[0-9]{1,10}$)|(^[0-9]{1,10}[\.]{1}[0-9]{1,2}$)/; + if (!value && !rule.required) { + callback(); + } else if (!value) { + callback(new Error('请输入金额')); + } else if (!regAmount.test(value)) { + callback(new Error('金额格式错误,最多允许输入10位整数及2位小数')); + } else { + callback(); + } + }, + // 身份证验证 + idCard(rule: FormItemRule, value: any, callback: Function, isEnabled = true) { + const regIdCard = + /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X|x)$/; + if (!isEnabled) { + callback(); + } else if (!value && !rule.required) { + callback(); + } else if (!value) { + callback(new Error('请输入身份证号')); + } else if (!regIdCard.test(value)) { + callback(new Error('身份证号码格式错误')); + } else { + callback(); + } + }, + // 银行卡验证 + bank(rule: FormItemRule, value: any, callback: Function) { + const regBank = /^([1-9]{1})(\d{15}|\d{16}|\d{18})$/; + if (!value && !rule.required) { + callback(); + } else if (!value) { + callback(); + } else if (!regBank.test(value)) { + callback(new Error('银行卡号码格式错误')); + } else { + callback(); + } + }, + // 非零正整数验证 + num(rule: FormItemRule, value: any, callback: Function) { + const reg = /^\+?[1-9][0-9]*$/; + if (!value && !rule.required) { + callback(new Error('请填写非零正整数')); + } else { + if (!reg.test(value)) { + callback(new Error('请输入非零的正整数')); + } else { + callback(); + } + } + }, + // 银行卡 + bankCard(rule: FormItemRule, value: any, callback: Function) { + const regBankCard = /^(\d{16}|\d{19})$/; + if (value == '' && !rule.required) { + callback(new Error('请输入银行卡号')); + } else { + if (!regBankCard.test(value)) { + callback(new Error('银行卡号格式错误')); + } else { + callback(); + } + } + }, + // 固话格式 + tel(rule: FormItemRule, value: any, callback: Function) { + const regTel = /^(0\d{2,3}-?)?\d{7,8}$/; + if (value == '' && !rule.required) { + callback(new Error('请输入座机号码')); + } else { + if (!regTel.test(value)) { + callback(new Error('座机号码格式错误')); + } else { + callback(); + } + } + }, + // QQ号码 + qq(rule: FormItemRule, value: any, callback: Function) { + const regex = /^[1-9][0-9]{4,}$/; + if (!value && !rule.required) { + callback(); + } else if (!value) { + callback(new Error('请输入QQ号码')); + } else { + if (!regex.test(value)) { + callback(new Error('QQ号码格式错误')); + } else { + callback(); + } + } + }, + // weibo号 + weibo(rule: FormItemRule, value: any, callback: Function) { + const regex = /^[0-9a-zA-Z\u4e00-\u9fa5_-]*$/; + if (!value && !rule.required) { + callback(); + } else if (!value) { + callback(new Error('请输入微博账号')); + } else { + if (!regex.test(value)) { + callback(new Error('微博号码格式错误')); + } else { + callback(); + } + } + }, + // 不验证 + none(_rule: FormItemRule, _value: any, callback: Function) { + callback(); + }, +}; diff --git a/web/src/utils/websocket.ts b/web/src/utils/websocket.ts index d7fa7be..d3a16a4 100644 --- a/web/src/utils/websocket.ts +++ b/web/src/utils/websocket.ts @@ -7,7 +7,6 @@ let socket: WebSocket; let isActive: boolean; export function getSocket(): WebSocket { - console.log('socket:', socket); if (socket === undefined) { location.reload(); } @@ -15,7 +14,6 @@ export function getSocket(): WebSocket { } export function getActive(): boolean { - console.log('isActive:', isActive); return isActive; } @@ -85,7 +83,6 @@ export default (onMessage: Function) => { event: SocketEnum.EventPing, }) ); - console.log('ping'); self.serverTimeoutObj = setTimeout(function () { console.log('关闭服务'); socket.close(); @@ -133,7 +130,7 @@ export default (onMessage: Function) => { socket.onmessage = function (event) { isActive = true; - console.log('WebSocket:收到一条消息', event.data); + // console.log('WebSocket:收到一条消息', event.data); let isHeart = false; const message = JSON.parse(event.data); diff --git a/web/src/views/about/index.vue b/web/src/views/about/index.vue index e452bd1..40a04cb 100644 --- a/web/src/views/about/index.vue +++ b/web/src/views/about/index.vue @@ -15,7 +15,7 @@ > - 2.0.3 + {{ config?.version }} {{ lastBuildTime }} @@ -29,9 +29,7 @@ @@ -82,6 +80,11 @@ diff --git a/web/src/views/apply/provinces/columns.ts b/web/src/views/apply/provinces/columns.ts index 712e147..3600188 100644 --- a/web/src/views/apply/provinces/columns.ts +++ b/web/src/views/apply/provinces/columns.ts @@ -1,5 +1,5 @@ import { h } from 'vue'; -import { NAvatar, NTag } from 'naive-ui'; +import { NTag } from 'naive-ui'; export const columns = [ { diff --git a/web/src/views/apply/provinces/index.vue b/web/src/views/apply/provinces/index.vue index bab7716..0c879d6 100644 --- a/web/src/views/apply/provinces/index.vue +++ b/web/src/views/apply/provinces/index.vue @@ -14,6 +14,7 @@ { return s; }); - const params = ref({ + const params = ref({ pageSize: 10, title: '', content: '', @@ -193,8 +194,8 @@ const dialog = useDialog(); const showModal = ref(false); const formBtnLoading = ref(false); - const searchFormRef = ref({}); - const formRef = ref({}); + const searchFormRef = ref({}); + const formRef = ref({}); const batchDeleteDisabled = ref(true); const checkedIds = ref([]); @@ -210,7 +211,7 @@ created_at: '', updated_at: '', }; - let formParams = ref(resetFormParams); + let formParams = ref(resetFormParams); const actionColumn = reactive({ width: 220, @@ -250,11 +251,10 @@ } const loadDataTable = async (res) => { - return await List({ ...params.value, ...res, ...searchFormRef.value.formModel }); + return await List({ ...params.value, ...res, ...searchFormRef.value?.formModel }); }; function onCheckedRow(rowKeys) { - console.log(rowKeys); if (rowKeys.length > 0) { batchDeleteDisabled.value = false; } else { @@ -273,10 +273,8 @@ formBtnLoading.value = true; formRef.value.validate((errors) => { if (!errors) { - console.log('formParams:' + JSON.stringify(formParams.value)); Edit(formParams.value) .then((_res) => { - console.log('_res:' + JSON.stringify(_res)); message.success('操作成功'); setTimeout(() => { showModal.value = false; @@ -295,31 +293,24 @@ } function handleEdit(record: Recordable) { - console.log('点击了编辑', record); showModal.value = true; formParams.value = record; } function handleDelete(record: Recordable) { - console.log('点击了删除', record); dialog.warning({ title: '警告', content: '你确定要删除?', positiveText: '确定', - negativeText: '不确定', + negativeText: '取消', onPositiveClick: () => { - Delete(record) - .then((_res) => { - console.log('_res:' + JSON.stringify(_res)); - message.success('操作成功'); - reloadTable(); - }) - .catch((e: Error) => { - // message.error(e.message ?? '操作失败'); - }); + Delete(record).then((_res) => { + message.success('操作成功'); + reloadTable(); + }); }, onNegativeClick: () => { - // message.error('不确定'); + // message.error('取消'); }, }); } @@ -329,20 +320,15 @@ title: '警告', content: '你确定要删除?', positiveText: '确定', - negativeText: '不确定', + negativeText: '取消', onPositiveClick: () => { - Delete({ id: checkedIds.value }) - .then((_res) => { - console.log('_res:' + JSON.stringify(_res)); - message.success('操作成功'); - reloadTable(); - }) - .catch((e: Error) => { - message.error(e.message ?? '操作失败'); - }); + Delete({ id: checkedIds.value }).then((_res) => { + message.success('操作成功'); + reloadTable(); + }); }, onNegativeClick: () => { - // message.error('不确定'); + // message.error('取消'); }, }); } @@ -359,17 +345,12 @@ } function updateStatus(id, status) { - Status({ id: id, status: status }) - .then((_res) => { - console.log('_res:' + JSON.stringify(_res)); - message.success('操作成功'); - setTimeout(() => { - reloadTable({}); - }); - }) - .catch((e: Error) => { - message.error(e.message ?? '操作失败'); + Status({ id: id, status: status }).then((_res) => { + message.success('操作成功'); + setTimeout(() => { + reloadTable(); }); + }); } diff --git a/web/src/views/curdDemo/edit.vue b/web/src/views/curdDemo/edit.vue new file mode 100644 index 0000000..851b51f --- /dev/null +++ b/web/src/views/curdDemo/edit.vue @@ -0,0 +1,147 @@ + + + + + diff --git a/web/src/views/curdDemo/index.vue b/web/src/views/curdDemo/index.vue new file mode 100644 index 0000000..b54bbef --- /dev/null +++ b/web/src/views/curdDemo/index.vue @@ -0,0 +1,249 @@ + + + + + \ No newline at end of file diff --git a/web/src/views/curdDemo/model.ts b/web/src/views/curdDemo/model.ts new file mode 100644 index 0000000..137c31a --- /dev/null +++ b/web/src/views/curdDemo/model.ts @@ -0,0 +1,242 @@ +import { h, ref } from 'vue'; +import { NAvatar, NImage, NTag, NSwitch, NRate } from 'naive-ui'; +import { cloneDeep } from 'lodash-es'; +import { FormSchema } from '@/components/Form'; +import { Dicts } from '@/api/dict/dict'; +import { Switch } from '@/api/curdDemo'; +import { isArray, isNullObject } from '@/utils/is'; +import { getFileExt } from '@/utils/urlUtils'; +import { defRangeShortcuts, defShortcuts, formatToDate } from '@/utils/dateUtil'; +import { validate } from '@/utils/validateUtil'; +import { getOptionLabel, getOptionTag, Options } from '@/utils/hotgo'; + +import { usePermission } from '@/hooks/web/usePermission'; +const { hasPermission } = usePermission(); +const $message = window['$message']; + + +export interface State { + id: number; + categoryId: number; + title: string; + description: string; + content: string; + image: string; + attachfile: string; + switch: number; + sort: number; + status: number; + createdBy: number; + updatedBy: number; + createdAt: string; + updatedAt: string; + deletedAt: string; +} + +export const defaultState = { + id: 0, + categoryId: 0, + title: '', + description: '', + content: '', + image: '', + attachfile: '', + switch: 1, + sort: 0, + status: 1, + createdBy: 0, + updatedBy: 0, + createdAt: '', + updatedAt: '', + deletedAt: '', +}; + +export function newState(state: State | null): State { + if (state !== null) { + return cloneDeep(state); + } + return cloneDeep(defaultState); +} + +export const options = ref({ + sys_normal_disable: [], +}); + +export const rules = { +}; + +export const schemas = ref([ + { + field: 'id', + component: 'NInputNumber', + label: 'ID', + componentProps: { + placeholder: '请输入ID', + onUpdateValue: (e: any) => { + console.log(e); + }, + }, + }, + { + field: 'status', + component: 'NSelect', + label: '状态', + defaultValue: null, + componentProps: { + placeholder: '请选择状态', + options: [], + onUpdateValue: (e: any) => { + console.log(e); + }, + }, + }, + { + field: 'createdAt', + component: 'NDatePicker', + label: '创建时间', + componentProps: { + type: 'datetimerange', + clearable: true, + shortcuts: defRangeShortcuts(), + onUpdateValue: (e: any) => { + console.log(e); + }, + }, + }, + { + field: 'testCategoryName', + component: 'NInput', + label: '分类名称', + componentProps: { + placeholder: '请输入分类名称', + onUpdateValue: (e: any) => { + console.log(e); + }, + }, + }, +]); + +export const columns = [ + { + title: 'ID', + key: 'id', + }, + { + title: '分类ID', + key: 'categoryId', + }, + { + title: '标题', + key: 'title', + }, + { + title: '描述', + key: 'description', + }, + { + title: '单图', + key: 'image', + render(row) { + return h(NImage, { + width: 32, + height: 32, + src: row.image, + style: { + width: '32px', + height: '32px', + 'max-width': '100%', + 'max-height': '100%', + }, + }); + }, + }, + { + title: '附件', + key: 'attachfile', + render(row) { + if (row.attachfile === '') { + return ``; + } + return h( + NAvatar, + { + size: 'small', + }, + { + default: () => getFileExt(row.attachfile), + } + ); + }, + }, + { + title: '显示开关', + key: 'switch', + width: 100, + render(row) { + return h(NSwitch, { + value: row.switch === 1, + checked: '开启', + unchecked: '关闭', + disabled: !hasPermission(['/curdDemo/switch']), + onUpdateValue: function (e) { + console.log('onUpdateValue e:' + JSON.stringify(e)); + row.switch = e ? 1 : 2; + Switch({ id: row.id, key: 'switch', value: row.switch }).then((_res) => { + $message.success('操作成功'); + }); + }, + }); + }, + }, + { + title: '排序', + key: 'sort', + }, + { + title: '状态', + key: 'status', + render(row) { + if (isNullObject(row.status)) { + return ``; + } + return h( + NTag, + { + style: { + marginRight: '6px', + }, + type: getOptionTag(options.value.sys_normal_disable, row.status), + bordered: false, + }, + { + default: () => getOptionLabel(options.value.sys_normal_disable, row.status), + } + ); + }, + }, + { + title: '创建时间', + key: 'createdAt', + }, + { + title: '分类名称', + key: 'testCategoryName', + }, +]; + +async function loadOptions() { + options.value = await Dicts({ + types: [ + 'sys_normal_disable', + ], + }); + for (const item of schemas.value) { + switch (item.field) { + case 'status': + item.componentProps.options = options.value.sys_normal_disable; + break; + } + } +} + +await loadOptions(); \ No newline at end of file diff --git a/web/src/views/curdDemo/view.vue b/web/src/views/curdDemo/view.vue new file mode 100644 index 0000000..aebe601 --- /dev/null +++ b/web/src/views/curdDemo/view.vue @@ -0,0 +1,108 @@ + + + + + \ No newline at end of file diff --git a/web/src/views/develop/code/components/BaseInfo.vue b/web/src/views/develop/code/components/BaseInfo.vue new file mode 100644 index 0000000..be80d20 --- /dev/null +++ b/web/src/views/develop/code/components/BaseInfo.vue @@ -0,0 +1,509 @@ + + + + + diff --git a/web/src/views/develop/code/components/EditMasterCell.vue b/web/src/views/develop/code/components/EditMasterCell.vue new file mode 100644 index 0000000..da0f351 --- /dev/null +++ b/web/src/views/develop/code/components/EditMasterCell.vue @@ -0,0 +1,357 @@ + + + + + diff --git a/web/src/views/develop/code/components/EditSlaveCell.vue b/web/src/views/develop/code/components/EditSlaveCell.vue new file mode 100644 index 0000000..e0130f1 --- /dev/null +++ b/web/src/views/develop/code/components/EditSlaveCell.vue @@ -0,0 +1,243 @@ + + + + + diff --git a/web/src/views/develop/code/components/PreviewTab.vue b/web/src/views/develop/code/components/PreviewTab.vue new file mode 100644 index 0000000..2b92574 --- /dev/null +++ b/web/src/views/develop/code/components/PreviewTab.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/web/src/views/develop/code/components/model.ts b/web/src/views/develop/code/components/model.ts new file mode 100644 index 0000000..85591a0 --- /dev/null +++ b/web/src/views/develop/code/components/model.ts @@ -0,0 +1,62 @@ +import { cloneDeep } from 'lodash-es'; + +export const genFileObj = { + meth: 1, + content: '', + path: '', + required: true, +}; + +export interface joinAttr { + uuid: string; + linkTable: string; + alias: string; + linkMode: number; + field: string; + masterField: string; + columns: any; +} + +export const genInfoObj = { + id: 0, + genType: 10, + varName: '', + options: { + headOps: ['add', 'batchDel', 'export'], + columnOps: ['edit', 'del', 'view', 'status', 'switch', 'check'], + autoOps: ['genMenuPermissions', 'runDao', 'runService'], + join: [], + menu: { + pid: 0, + icon: 'MenuOutlined', + sort: 0, + }, + }, + dbName: '', + tableName: '', + tableComment: '', + daoName: '', + masterColumns: [], + status: 2, + createdAt: '', + updatedAt: '', +}; + +export const selectListObj = { + db: [], + genType: [], + status: [], + tables: [], + formMode: [], + formRole: [], + dictMode: [], + whereMode: [], + buildMeth: [], +}; + +export function newState(state) { + if (state !== null) { + return cloneDeep(state); + } + return cloneDeep(genInfoObj); +} diff --git a/web/src/views/develop/code/deploy.vue b/web/src/views/develop/code/deploy.vue new file mode 100644 index 0000000..0e33085 --- /dev/null +++ b/web/src/views/develop/code/deploy.vue @@ -0,0 +1,264 @@ + + + + + + diff --git a/web/src/views/develop/code/index.vue b/web/src/views/develop/code/index.vue index b409123..b85f480 100644 --- a/web/src/views/develop/code/index.vue +++ b/web/src/views/develop/code/index.vue @@ -1,39 +1,452 @@ - + diff --git a/web/src/views/log/cron-log/index.vue b/web/src/views/log/cron-log/index.vue index 465a552..1dd0ee4 100644 --- a/web/src/views/log/cron-log/index.vue +++ b/web/src/views/log/cron-log/index.vue @@ -7,6 +7,7 @@ { Delete(record) .then((_res) => { @@ -236,7 +237,7 @@ }); }, onNegativeClick: () => { - // message.error('不确定'); + // message.error('取消'); }, }); } @@ -246,7 +247,7 @@ title: '警告', content: '你确定要删除?', positiveText: '确定', - negativeText: '不确定', + negativeText: '取消', onPositiveClick: () => { Delete({ id: checkedIds.value }) .then((_res) => { @@ -259,7 +260,7 @@ }); }, onNegativeClick: () => { - // message.error('不确定'); + // message.error('取消'); }, }); } diff --git a/web/src/views/log/ems-log/index.vue b/web/src/views/log/ems-log/index.vue index 025e11f..bad7a2d 100644 --- a/web/src/views/log/ems-log/index.vue +++ b/web/src/views/log/ems-log/index.vue @@ -7,6 +7,7 @@ { Delete(record) .then((_res) => { @@ -236,7 +237,7 @@ }); }, onNegativeClick: () => { - // message.error('不确定'); + // message.error('取消'); }, }); } @@ -246,7 +247,7 @@ title: '警告', content: '你确定要删除?', positiveText: '确定', - negativeText: '不确定', + negativeText: '取消', onPositiveClick: () => { Delete({ id: checkedIds.value }) .then((_res) => { @@ -259,7 +260,7 @@ }); }, onNegativeClick: () => { - // message.error('不确定'); + // message.error('取消'); }, }); } diff --git a/web/src/views/log/log/index.vue b/web/src/views/log/log/index.vue index 036c242..154c3c9 100644 --- a/web/src/views/log/log/index.vue +++ b/web/src/views/log/log/index.vue @@ -7,6 +7,7 @@ { - Delete(record) - .then((_res) => { - console.log('_res:' + JSON.stringify(_res)); - message.success('操作成功'); - reloadTable(); - }) - .catch((e: Error) => { - // message.error(e.message ?? '操作失败'); - }); + Delete(record).then((_res) => { + message.success('操作成功'); + reloadTable(); + }); }, onNegativeClick: () => { - // message.error('不确定'); + // message.error('取消'); }, }); } @@ -246,20 +240,15 @@ title: '警告', content: '你确定要删除?', positiveText: '确定', - negativeText: '不确定', + negativeText: '取消', onPositiveClick: () => { - Delete({ id: checkedIds.value }) - .then((_res) => { - console.log('_res:' + JSON.stringify(_res)); - message.success('操作成功'); - reloadTable(); - }) - .catch((e: Error) => { - message.error(e.message ?? '操作失败'); - }); + Delete({ id: checkedIds.value }).then((_res) => { + message.success('操作成功'); + reloadTable(); + }); }, onNegativeClick: () => { - // message.error('不确定'); + // message.error('取消'); }, }); } @@ -273,18 +262,15 @@ } function handleEdit(record: Recordable) { - console.log('点击了编辑', record); router.push({ name: 'log_view', params: { id: record.id } }); } function handleSubmit(values: Recordable) { - console.log(values); formParams.value = values; reloadTable(); } function handleReset(values: Recordable) { - console.log(values); formParams.value = {}; reloadTable(); } diff --git a/web/src/views/log/login-log/index.vue b/web/src/views/log/login-log/index.vue index 2761096..f522d36 100644 --- a/web/src/views/log/login-log/index.vue +++ b/web/src/views/log/login-log/index.vue @@ -7,6 +7,7 @@ { Delete(record) .then((_res) => { @@ -236,7 +237,7 @@ }); }, onNegativeClick: () => { - // message.error('不确定'); + // message.error('取消'); }, }); } @@ -246,7 +247,7 @@ title: '警告', content: '你确定要删除?', positiveText: '确定', - negativeText: '不确定', + negativeText: '取消', onPositiveClick: () => { Delete({ id: checkedIds.value }) .then((_res) => { @@ -259,7 +260,7 @@ }); }, onNegativeClick: () => { - // message.error('不确定'); + // message.error('取消'); }, }); } diff --git a/web/src/views/log/sms-log/index.vue b/web/src/views/log/sms-log/index.vue index d523d1e..910a990 100644 --- a/web/src/views/log/sms-log/index.vue +++ b/web/src/views/log/sms-log/index.vue @@ -7,6 +7,7 @@ 0) { batchDeleteDisabled.value = false; } else { @@ -218,25 +217,19 @@ } function handleDelete(record: Recordable) { - console.log('点击了删除', record); dialog.warning({ title: '警告', content: '你确定要删除?', positiveText: '确定', - negativeText: '不确定', + negativeText: '取消', onPositiveClick: () => { - Delete(record) - .then((_res) => { - console.log('_res:' + JSON.stringify(_res)); - message.success('操作成功'); - reloadTable(); - }) - .catch((e: Error) => { - // message.error(e.message ?? '操作失败'); - }); + Delete(record).then((_res) => { + message.success('操作成功'); + reloadTable(); + }); }, onNegativeClick: () => { - // message.error('不确定'); + // message.error('取消'); }, }); } @@ -246,11 +239,10 @@ title: '警告', content: '你确定要删除?', positiveText: '确定', - negativeText: '不确定', + negativeText: '取消', onPositiveClick: () => { Delete({ id: checkedIds.value }) .then((_res) => { - console.log('_res:' + JSON.stringify(_res)); message.success('操作成功'); reloadTable(); }) @@ -259,7 +251,7 @@ }); }, onNegativeClick: () => { - // message.error('不确定'); + // message.error('取消'); }, }); } @@ -273,12 +265,10 @@ } function handleEdit(record: Recordable) { - console.log('点击了编辑', record); router.push({ name: 'sms_view', params: { id: record.id } }); } function handleSubmit(values: Recordable) { - console.log(values); formParams.value = values; reloadTable(); } diff --git a/web/src/views/login/index.vue b/web/src/views/login/index.vue index 802a30f..e165812 100644 --- a/web/src/views/login/index.vue +++ b/web/src/views/login/index.vue @@ -17,7 +17,11 @@ :rules="rules" > - + - 新建 + 新建部门 @@ -30,11 +30,15 @@ :row-key="rowKey" :loading="loading" default-expand-all - /> - + ([]); + const optionsDefaultValue = ref(null); const loading = ref(false); const formRef: any = ref(null); const message = useMessage(); @@ -165,7 +172,7 @@ const showModal = ref(false); const formBtnLoading = ref(false); - let resetFormParams = { + const defaultState = { id: 0, pid: 0, name: '', @@ -176,17 +183,14 @@ email: '', sort: 0, status: 1, - created_at: '', - updated_at: '', + createdAt: '', + updatedAt: '', }; - let formParams = ref(resetFormParams); - - const params = ref({ - pageSize: 5, - name: 'xiaoMa', - }); + let formParams = ref(); type RowData = { + createdAt: string; + status: number; name: string; index: string; children?: RowData[]; @@ -253,10 +257,10 @@ }, { title: '创建时间', - key: 'created_at', + key: 'createdAt', width: 200, render: (rows, _) => { - return rows.created_at; //timestampToTime(); + return rows.createdAt; //timestampToTime(); }, }, { @@ -264,7 +268,7 @@ key: 'actions', width: 220, // fixed: 'right', - render(record) { + render(record: any) { return h(TableAction as any, { style: 'button', actions: [ @@ -279,9 +283,6 @@ ], dropDownActions: statusActions, select: (key) => { - // console.log('select record:' + JSON.stringify(record)); - // message.info(`您点击了,${key} 按钮`); - updateStatus(record.id, key); }, }); @@ -293,13 +294,11 @@ function addTable() { showModal.value = true; - formParams.value = resetFormParams; - console.log('addTable formParams:' + JSON.stringify(formParams.value)); + formParams.value = cloneDeep(defaultState); optionsDefaultValue.value = null; } function handleEdit(record: Recordable) { - console.log('点击了编辑', record); showModal.value = true; formParams.value = record; formParams.value.children = null; @@ -307,16 +306,14 @@ } function handleDelete(record: Recordable) { - console.log('点击了删除', record); dialog.warning({ title: '警告', content: '你确定要删除?', positiveText: '确定', - negativeText: '不确定', + negativeText: '取消', onPositiveClick: () => { Delete(record) .then((_res) => { - console.log('_res:' + JSON.stringify(_res)); message.success('操作成功'); loadDataTable({}); }) @@ -325,7 +322,7 @@ }); }, onNegativeClick: () => { - // message.error('不确定'); + // message.error('取消'); }, }); } @@ -333,7 +330,6 @@ function updateStatus(id, status) { Status({ id: id, status: status }) .then((_res) => { - console.log('_res:' + JSON.stringify(_res)); message.success('操作成功'); setTimeout(() => { loadDataTable({}); @@ -349,19 +345,13 @@ formBtnLoading.value = true; formRef.value.validate((errors) => { if (!errors) { - console.log('formParams:' + JSON.stringify(formParams.value)); - Edit(formParams.value) - .then((_res) => { - console.log('_res:' + JSON.stringify(_res)); - message.success('操作成功'); - setTimeout(() => { - showModal.value = false; - loadDataTable({}); - }); - }) - .catch((e: Error) => { - message.error(e.message ?? '操作失败'); + Edit(formParams.value).then((_res) => { + message.success('操作成功'); + setTimeout(() => { + showModal.value = false; + loadDataTable({}); }); + }); } else { message.error('请填写完整信息'); } @@ -370,14 +360,11 @@ } async function handleSubmit(values: Recordable) { - console.log('handleSubmit valuesL:' + JSON.stringify(values)); // reloadTable(); await loadDataTable(values); } - function handleReset(values: Recordable) { - console.log(values); - } + function handleReset(_values: Recordable) {} const loadDataTable = async (res) => { loading.value = true; @@ -404,14 +391,8 @@ function handleUpdateValue( value: string | number | Array | null, - option: TreeSelectOption | null | Array + _option: TreeSelectOption | null | Array ) { - console.log(value, option); - formParams.value.pid = value; } - - const options = ref([]); - - const optionsDefaultValue = ref(null); diff --git a/web/src/views/org/post/post.vue b/web/src/views/org/post/post.vue index bd1b893..3f689f2 100644 --- a/web/src/views/org/post/post.vue +++ b/web/src/views/org/post/post.vue @@ -14,6 +14,7 @@ - 新建 + 新建岗位   @@ -43,7 +44,12 @@ - + ({ pageSize: 10, name: '', code: '', @@ -160,8 +166,8 @@ const dialog = useDialog(); const showModal = ref(false); const formBtnLoading = ref(false); - const searchFormRef = ref({}); - const formRef = ref({}); + const searchFormRef = ref({}); + const formRef = ref({}); const batchDeleteDisabled = ref(true); const checkedIds = ref([]); @@ -179,7 +185,7 @@ created_at: '', updated_at: '', }; - let formParams = ref(resetFormParams); + let formParams = ref(resetFormParams); const actionColumn = reactive({ width: 220, @@ -219,16 +225,12 @@ } const loadDataTable = async (res) => { - return await getPostList({ ...params.value, ...res, ...searchFormRef.value.formModel }); + return await getPostList({ ...params.value, ...res, ...searchFormRef.value?.formModel }); }; function onCheckedRow(rowKeys) { console.log(rowKeys); - if (rowKeys.length > 0) { - batchDeleteDisabled.value = false; - } else { - batchDeleteDisabled.value = true; - } + batchDeleteDisabled.value = rowKeys.length <= 0; checkedIds.value = rowKeys; } @@ -242,10 +244,8 @@ formBtnLoading.value = true; formRef.value.validate((errors) => { if (!errors) { - console.log('formParams:' + JSON.stringify(formParams.value)); Edit(formParams.value) .then((_res) => { - console.log('_res:' + JSON.stringify(_res)); message.success('操作成功'); setTimeout(() => { showModal.value = false; @@ -264,31 +264,24 @@ } function handleEdit(record: Recordable) { - console.log('点击了编辑', record); showModal.value = true; formParams.value = record; } function handleDelete(record: Recordable) { - console.log('点击了删除', record); dialog.warning({ title: '警告', content: '你确定要删除?', positiveText: '确定', - negativeText: '不确定', + negativeText: '取消', onPositiveClick: () => { - Delete(record) - .then((_res) => { - console.log('_res:' + JSON.stringify(_res)); - message.success('操作成功'); - reloadTable(); - }) - .catch((e: Error) => { - // message.error(e.message ?? '操作失败'); - }); + Delete(record).then((_res) => { + message.success('操作成功'); + reloadTable(); + }); }, onNegativeClick: () => { - // message.error('不确定'); + // message.error('取消'); }, }); } @@ -298,7 +291,7 @@ title: '警告', content: '你确定要删除?', positiveText: '确定', - negativeText: '不确定', + negativeText: '取消', onPositiveClick: () => { Delete({ id: checkedIds.value }) .then((_res) => { @@ -311,7 +304,7 @@ }); }, onNegativeClick: () => { - // message.error('不确定'); + // message.error('取消'); }, }); } @@ -328,17 +321,12 @@ } function updateStatus(id, status) { - Status({ id: id, status: status }) - .then((_res) => { - console.log('_res:' + JSON.stringify(_res)); - message.success('操作成功'); - setTimeout(() => { - reloadTable({}); - }); - }) - .catch((e: Error) => { - message.error(e.message ?? '操作失败'); + Status({ id: id, status: status }).then((_res) => { + message.success('操作成功'); + setTimeout(() => { + reloadTable(); }); + }); } diff --git a/web/src/views/org/user/columns.ts b/web/src/views/org/user/columns.ts index 1bc9ebe..1a97797 100644 --- a/web/src/views/org/user/columns.ts +++ b/web/src/views/org/user/columns.ts @@ -5,7 +5,7 @@ export const columns = [ { title: 'ID', key: 'id', - width: 50, + width: 60, }, { title: '用户名', @@ -14,7 +14,7 @@ export const columns = [ }, { title: '姓名', - key: 'realname', + key: 'realName', width: 100, }, { @@ -37,7 +37,7 @@ export const columns = [ }, { default: () => - row.realname !== '' ? row.realname.substring(0, 1) : row.username.substring(0, 2), + row.realName !== '' ? row.realName.substring(0, 1) : row.username.substring(0, 2), } ); } @@ -45,7 +45,7 @@ export const columns = [ }, { title: '绑定角色', - key: 'role_name', + key: 'roleName', width: 100, render(row) { return h( @@ -58,14 +58,14 @@ export const columns = [ bordered: false, }, { - default: () => row.role_name, + default: () => row.roleName, } ); }, }, { title: '所属部门', - key: 'dept_name', + key: 'deptName', width: 100, render(row) { return h( @@ -78,7 +78,7 @@ export const columns = [ bordered: false, }, { - default: () => row.dept_name, + default: () => row.deptName, } ); }, @@ -86,7 +86,7 @@ export const columns = [ { title: '状态', key: 'status', - width: 50, + width: 80, render(row) { return h( NTag, @@ -106,12 +106,12 @@ export const columns = [ { title: '访问次数', key: 'visitCount', - width: 80, + width: 100, }, { title: '创建时间', key: 'createdAt', - width: 100, + width: 150, render: (rows, _) => { return rows.createdAt; }, diff --git a/web/src/views/org/user/user.vue b/web/src/views/org/user/user.vue index 32834d0..e75d119 100644 --- a/web/src/views/org/user/user.vue +++ b/web/src/views/org/user/user.vue @@ -14,6 +14,7 @@ @@ -38,7 +52,7 @@ v-model:show="showModal" :show-icon="false" preset="dialog" - title="新建" + :title="formParams?.id > 0 ? '编辑用户 #' + formParams?.id : '新建用户'" :style="{ width: dialogWidth, }" @@ -53,12 +67,12 @@ > - - + + - + @@ -66,19 +80,19 @@ - + - + @@ -169,15 +183,19 @@ import { SelectOption, TreeSelectOption, useDialog, useMessage } from 'naive-ui'; import { BasicTable, TableAction } from '@/components/Table'; import { BasicForm, FormSchema, useForm } from '@/components/Form/index'; - import { Delete, Edit, List, Status } from '@/api/org/user'; + import { Delete, Edit, List, Status, ResetPwd } from '@/api/org/user'; import { columns } from './columns'; - import { PlusOutlined } from '@vicons/antd'; - import { sexOptions, statusActions, statusOptions } from '@/enums/optionsiEnum'; + import { PlusOutlined, DeleteOutlined } from '@vicons/antd'; + import { sexOptions, statusOptions } from '@/enums/optionsiEnum'; import { getDeptList } from '@/api/org/dept'; import { getRoleList } from '@/api/system/role'; import { getPostList } from '@/api/org/post'; + import { adaModalWidth } from '@/utils/hotgo'; + import { getRandomString } from '@/utils/charset'; + import { cloneDeep } from 'lodash-es'; + import { defRangeShortcuts } from '@/utils/dateUtil'; - const params = ref({ + const params = ref({ pageSize: 10, name: '', code: '', @@ -185,10 +203,10 @@ }); const rules = { - name: { - // required: true, + username: { + required: true, trigger: ['blur', 'input'], - message: '请输入名称', + message: '请输入用户名', }, }; @@ -206,7 +224,7 @@ rules: [{ message: '请输入用户名', trigger: ['blur'] }], }, { - field: 'realname', + field: 'realName', component: 'NInput', label: '姓名', componentProps: { @@ -220,7 +238,7 @@ { field: 'mobile', component: 'NInputNumber', - label: '手机', + label: '手机号', componentProps: { placeholder: '请输入手机号码', showButton: false, @@ -229,6 +247,17 @@ }, }, }, + { + field: 'email', + component: 'NInput', + label: '邮箱', + componentProps: { + placeholder: '请输入邮箱地址', + onInput: (e: any) => { + console.log(e); + }, + }, + }, { field: 'status', component: 'NSelect', @@ -249,7 +278,7 @@ componentProps: { type: 'datetimerange', clearable: true, - // defaultValue: [new Date() - 86400000 * 30, new Date()], + shortcuts: defRangeShortcuts(), onUpdateValue: (e: any) => { console.log(e); }, @@ -262,21 +291,21 @@ const dialog = useDialog(); const showModal = ref(false); const formBtnLoading = ref(false); - const searchFormRef = ref({}); - const formRef = ref({}); + const searchFormRef = ref({}); + const formRef = ref({}); const batchDeleteDisabled = ref(true); const checkedIds = ref([]); - const deptList = ref([]); - const roleList = ref([]); - const postList = ref([]); - - const resetFormParams = { + const deptList = ref([]); + const roleList = ref([]); + const postList = ref([]); + const dialogWidth = ref('50%'); + const defaultState = { id: 0, - role: null, - realname: '', + roleId: null, + realName: '', username: '', password: '', - dept_id: null, + deptId: null, postIds: null, mobile: '', email: '', @@ -285,10 +314,11 @@ phone: '', sort: 0, status: 1, - created_at: '', - updated_at: '', + createdAt: '', + updatedAt: '', }; - let formParams = ref(resetFormParams); + + let formParams = ref(); const actionColumn = reactive({ width: 220, @@ -308,9 +338,27 @@ onClick: handleDelete.bind(null, record), }, ], - dropDownActions: statusActions, + dropDownActions: [ + { + label: '重置密码', + key: 0, + }, + { + label: '设为启用', + key: 1, + }, + { + label: '设为禁用', + key: 2, + }, + ], select: (key) => { - updateStatus(record.id, key); + if (key === 0) { + return handleResetPwd(record); + } + if (key === 1 || key === 2) { + return updateStatus(record.id, key); + } }, }); }, @@ -324,18 +372,18 @@ function addTable() { showModal.value = true; - formParams.value = resetFormParams; + formParams.value = cloneDeep(defaultState); } const loadDataTable = async (res) => { - mapWidth(); + adaModalWidth(dialogWidth); deptList.value = await getDeptList({}); if (deptList.value === undefined || deptList.value === null) { deptList.value = []; } roleList.value = []; - let roleLists = await getRoleList(); + let roleLists = await getRoleList({ pageSize: 100 }); if (roleLists.list === undefined || roleLists.list === null) { roleLists = []; } else { @@ -363,19 +411,12 @@ postList.value[i].value = postLists[i].id; } } - console.log('post.value:' + JSON.stringify(postList.value)); - return await List({ ...params.value, ...res, ...searchFormRef.value.formModel }); + return await List({ ...params.value, ...res, ...searchFormRef.value?.formModel }); }; function onCheckedRow(rowKeys) { - console.log(rowKeys); - if (rowKeys.length > 0) { - batchDeleteDisabled.value = false; - } else { - batchDeleteDisabled.value = true; - } - + batchDeleteDisabled.value = rowKeys.length <= 0; checkedIds.value = rowKeys; } @@ -388,20 +429,13 @@ formBtnLoading.value = true; formRef.value.validate((errors) => { if (!errors) { - console.log('formParams:' + JSON.stringify(formParams.value)); - Edit(formParams.value) - .then((_res) => { - console.log('_res:' + JSON.stringify(_res)); - message.success('操作成功'); - setTimeout(() => { - showModal.value = false; - reloadTable(); - formParams.value = ref(resetFormParams); - }); - }) - .catch((e: Error) => { - // message.error(e.message ?? '操作失败'); + Edit(formParams.value).then((_res) => { + message.success('操作成功'); + setTimeout(() => { + showModal.value = false; + reloadTable(); }); + }); } else { message.error('请填写完整信息'); } @@ -410,31 +444,61 @@ } function handleEdit(record: Recordable) { - console.log('点击了编辑', record); showModal.value = true; - formParams.value = record; + formParams.value = cloneDeep(record); + } + + function handleResetPwd(record: Recordable) { + record.password = getRandomString(12); + dialog.warning({ + title: '警告', + content: '你确定要重置密码?\r\n重置成功后密码为:' + record.password + '\r\n 请先保存', + positiveText: '确定', + negativeText: '取消', + onPositiveClick: () => { + ResetPwd(record).then((_res) => { + message.success('操作成功'); + reloadTable(); + }); + }, + onNegativeClick: () => { + // message.error('取消'); + }, + }); } function handleDelete(record: Recordable) { - console.log('点击了删除', record); dialog.warning({ title: '警告', content: '你确定要删除?', positiveText: '确定', - negativeText: '不确定', + negativeText: '取消', onPositiveClick: () => { - Delete(record) - .then((_res) => { - console.log('_res:' + JSON.stringify(_res)); - message.success('操作成功'); - reloadTable(); - }) - .catch((_e: Error) => { - // message.error(_e.message ?? '操作失败'); - }); + Delete(record).then((_res) => { + message.success('操作成功'); + reloadTable(); + }); }, onNegativeClick: () => { - // message.error('不确定'); + // message.error('取消'); + }, + }); + } + + function batchDelete() { + dialog.warning({ + title: '警告', + content: '你确定要删除?', + positiveText: '确定', + negativeText: '取消', + onPositiveClick: () => { + Delete({ id: checkedIds.value }).then((_res) => { + message.success('操作成功'); + reloadTable(); + }); + }, + onNegativeClick: () => { + // message.error('取消'); }, }); } @@ -451,57 +515,32 @@ } function updateStatus(id, status) { - Status({ id: id, status: status }) - .then((_res) => { - console.log('_res:' + JSON.stringify(_res)); - message.success('操作成功'); - setTimeout(() => { - reloadTable(); - }); - }) - .catch((e: Error) => { - message.error(e.message ?? '操作失败'); + Status({ id: id, status: status }).then((_res) => { + message.success('操作成功'); + setTimeout(() => { + reloadTable(); }); - } - - const dialogWidth = ref('50%'); - - function mapWidth() { - let val = document.body.clientWidth; - const def = 720; // 默认宽度 - if (val < def) { - dialogWidth.value = '100%'; - } else { - dialogWidth.value = def + 'px'; - } - - return dialogWidth.value; + }); } function handleUpdateDeptValue( value: string | number | Array | null, - option: TreeSelectOption | null | Array + _option: TreeSelectOption | null | Array ) { - console.log(value, option); - - formParams.value.dept_id = value; + formParams.value.deptId = value; } function handleUpdateRoleValue( value: string | number | Array | null, - option: SelectOption | null | Array + _option: SelectOption | null | Array ) { - console.log(value, option); - - formParams.value.role = value; + formParams.value.roleId = value; } function handleUpdatePostValue( value: string | number | Array | null, - option: SelectOption | null | Array + _option: SelectOption | null | Array ) { - console.log(value, option); - formParams.value.postIds = value; } diff --git a/web/src/views/permission/menu/CreateDrawer.vue b/web/src/views/permission/menu/CreateDrawer.vue index 39dfd8e..041db47 100644 --- a/web/src/views/permission/menu/CreateDrawer.vue +++ b/web/src/views/permission/menu/CreateDrawer.vue @@ -1,5 +1,5 @@ + + + + + + + + + + + + +
- 查看预览地址 + 查看预览地址
diff --git a/web/src/views/setting/system/RevealSetting.vue b/web/src/views/setting/system/RevealSetting.vue index c06db30..eb8d659 100644 --- a/web/src/views/setting/system/RevealSetting.vue +++ b/web/src/views/setting/system/RevealSetting.vue @@ -90,7 +90,7 @@ diff --git a/web/src/views/system/config/BasicSetting.vue b/web/src/views/system/config/BasicSetting.vue index 4c92974..abd75a2 100644 --- a/web/src/views/system/config/BasicSetting.vue +++ b/web/src/views/system/config/BasicSetting.vue @@ -169,10 +169,6 @@ }); } - function resetForm() { - formRef.value.restoreValidation(); - } - function uploadChange(list: string[]) { // 单图模式,只需要第一个索引 if (list.length > 0) { diff --git a/web/src/views/system/config/EmailSetting.vue b/web/src/views/system/config/EmailSetting.vue index 44f0ecc..8dd739b 100644 --- a/web/src/views/system/config/EmailSetting.vue +++ b/web/src/views/system/config/EmailSetting.vue @@ -10,7 +10,11 @@ - + @@ -19,7 +23,7 @@ - + @@ -117,13 +121,9 @@ console.log('formParams:' + JSON.stringify(formParams.value)); showModal.value = false; - sendTestEmail(formParams.value) - .then((_res) => { - message.success('发送成功'); - }) - .catch((error) => { - // message.error(error.toString()); - }); + sendTestEmail(formParams.value).then((_res) => { + message.success('发送成功'); + }); } else { message.error('请填写完整信息'); } diff --git a/web/src/views/system/config/GeoSetting.vue b/web/src/views/system/config/GeoSetting.vue new file mode 100644 index 0000000..eac2bb4 --- /dev/null +++ b/web/src/views/system/config/GeoSetting.vue @@ -0,0 +1,87 @@ + + + diff --git a/web/src/views/system/config/RevealSetting.vue b/web/src/views/system/config/RevealSetting.vue index c06db30..eb8d659 100644 --- a/web/src/views/system/config/RevealSetting.vue +++ b/web/src/views/system/config/RevealSetting.vue @@ -90,7 +90,7 @@ diff --git a/web/src/views/system/config/UploadSetting.vue b/web/src/views/system/config/UploadSetting.vue new file mode 100644 index 0000000..a713853 --- /dev/null +++ b/web/src/views/system/config/UploadSetting.vue @@ -0,0 +1,177 @@ + + + diff --git a/web/src/views/system/config/system.vue b/web/src/views/system/config/system.vue index ee674b5..e3027e9 100644 --- a/web/src/views/system/config/system.vue +++ b/web/src/views/system/config/system.vue @@ -21,6 +21,9 @@ + + + @@ -32,7 +35,9 @@ import RevealSetting from './RevealSetting.vue'; import EmailSetting from './EmailSetting.vue'; import ThemeSetting from './ThemeSetting.vue'; - + import UploadSetting from './UploadSetting.vue'; + import GeoSetting from './GeoSetting.vue'; + import SmsSetting from './SmsSetting.vue'; const typeTabList = [ { name: '基本设置', @@ -54,9 +59,47 @@ desc: '系统邮件设置', key: 4, }, + // { + // name: '客服设置', + // desc: '系统客服设置', + // key: 5, + // }, + // { + // name: '下游配置', + // desc: '默认设置和权限屏蔽', + // key: 6, + // }, + // { + // name: '提现配置', + // desc: '提现规则配置', + // key: 7, + // }, + { + name: '云存储', + desc: '配置上传文件驱动', + key: 8, + }, + { + name: '地理位置', + desc: '配置地理位置工具', + key: 9, + }, + { + name: '短信配置', + desc: '短信验证码平台', + key: 10, + }, ]; export default defineComponent({ - components: { BasicSetting, RevealSetting, EmailSetting, ThemeSetting }, + components: { + BasicSetting, + RevealSetting, + EmailSetting, + ThemeSetting, + UploadSetting, + GeoSetting, + SmsSetting, + }, setup() { const state = reactive({ type: 1, diff --git a/web/src/views/system/cron/index.vue b/web/src/views/system/cron/index.vue index d75a009..dccd038 100644 --- a/web/src/views/system/cron/index.vue +++ b/web/src/views/system/cron/index.vue @@ -14,6 +14,7 @@ diff --git a/web/src/views/system/cron/modal/index.vue b/web/src/views/system/cron/modal/index.vue index 3e05278..74cd7b5 100644 --- a/web/src/views/system/cron/modal/index.vue +++ b/web/src/views/system/cron/modal/index.vue @@ -78,12 +78,12 @@ diff --git a/web/src/views/system/dict/CreateDrawer.vue b/web/src/views/system/dict/CreateDrawer.vue index 9dc3d5b..44b8c5e 100644 --- a/web/src/views/system/dict/CreateDrawer.vue +++ b/web/src/views/system/dict/CreateDrawer.vue @@ -87,8 +87,7 @@ default: '添加顶级菜单', }, optionTreeData: { - type: Object, - // eslint-disable-next-line vue/require-valid-default-prop + type: Object || Array, default: [], }, }, @@ -106,7 +105,7 @@ sort: 10, }); - const state = reactive({ + const state = reactive({ width: 500, isDrawer: false, subLoading: false, @@ -122,7 +121,6 @@ state.width = document.body.clientWidth; } state.isDrawer = true; - console.log('form:' + JSON.stringify(form)); state.formParams = Object.assign(state.formParams, form); } @@ -133,18 +131,12 @@ function formSubmit() { formRef.value.validate((errors) => { if (!errors) { - console.log('state.formParams:' + JSON.stringify(state.formParams)); - EditDict({ ...state.formParams }) - .then(async (_res) => { - console.log('_res:' + JSON.stringify(_res)); - message.success('操作成功'); - handleReset(); - await context.emit('loadData'); - closeDrawer(); - }) - .catch((e: Error) => { - message.error(e.message ?? '操作失败'); - }); + EditDict({ ...state.formParams }).then(async (_res) => { + message.success('操作成功'); + handleReset(); + await context.emit('loadData'); + closeDrawer(); + }); } else { message.error('请填写完整信息'); } @@ -159,9 +151,8 @@ // 处理选项更新 function handleUpdateValue( value: string | number | Array | null, - option: TreeSelectOption | null | Array + _option: TreeSelectOption | null | Array ) { - console.log(value, option); state.formParams.pid = value; } diff --git a/web/src/views/system/dict/columns.ts b/web/src/views/system/dict/columns.ts index 65887d5..21bd754 100644 --- a/web/src/views/system/dict/columns.ts +++ b/web/src/views/system/dict/columns.ts @@ -12,17 +12,46 @@ export const columns = [ }, { title: '字典标签', - key: 'label', + key: 'type', + render(row) { + return h( + NTag, + { + style: { + marginRight: '6px', + }, + type: row.listClass, + bordered: false, + }, + { + default: () => row.label, + } + ); + }, }, { title: '字典键值', key: 'value', }, - - // { - // title: '备注', - // key: 'remark', - // }, + { + title: '键值类型', + key: 'valueType', + render(row) { + return h( + NTag, + { + style: { + marginRight: '6px', + }, + type: 'default', + bordered: false, + }, + { + default: () => row.valueType, + } + ); + }, + }, { title: '状态', key: 'status', @@ -42,9 +71,4 @@ export const columns = [ ); }, }, - // { - // title: '创建时间', - // key: 'createdAt', - // width: 100, - // }, ]; diff --git a/web/src/views/system/dict/list.vue b/web/src/views/system/dict/list.vue index 6dfbddf..373be7b 100644 --- a/web/src/views/system/dict/list.vue +++ b/web/src/views/system/dict/list.vue @@ -28,7 +28,12 @@ - + - - + + + + + - + @@ -91,8 +99,10 @@ import { getDataList, getDictSelect, EditData, DeleteData } from '@/api/dict/dict'; import { columns } from './columns'; import { PlusOutlined } from '@vicons/antd'; - import { statusOptions } from '@/enums/optionsiEnum'; - + import { statusOptions, tagOptions } from '@/enums/optionsiEnum'; + import { TypeSelect } from '@/api/sys/config'; + import { Option } from '@/utils/hotgo'; + const options = ref